3
我试图使用HoltWinters函数在R中进行大量的时间序列预测。 为此,我使用了for循环,并在里面调用函数,并将预测保存在data.frame中。避免for循环中的“优化失败”R
的问题是,HoltWinters函数的一些结果给出了错误,特别是优化错误:
Error en HoltWinters(TS[[i]]) : optimization failure
此错误打破循环。
所以我需要的东西就像“尝试”:如果它可以使HoltWinters功能,它保存预测,否则保存错误。
下面的代码复制问题:
data <- list()
data[[1]] <- rnorm(36)
data[[2]] <-
c(
24,24,28,24,28,22,18,20,19,22,28,28,28,26,24,
20,24,20,18,17,21,21,21,28,26,32,26,22,20,20,
20,22,24,24,20,26
)
data[[3]] <- rnorm(36)
TS <- list()
Outputs <- list()
for (i in 1:3) {
TS[[i]] <- ts(data[[i]], start = 1, frequency = 12)
Function <- HoltWinters(TS[[i]])
TSpredict <- predict(Function, n.ahead = 1)[1]
Outputs[[i]] <-
data.frame(LastReal = TS[[i]][length(TS[[i]])], Forecast = TSpredict)
}
其中i < - 产生2的问题。
我需要的是,在这个例子中,“输出”名单如下:提前
> Outputs
[[1]]
LastReal Forecast
1 0.5657129 -2.274507
[[2]]
LastReal Forecast
1 error error
[[3]]
LastReal Forecast
1 0.4039783 -0.9556881
感谢。
将'HoltWinters'函数调用包装到'tryCatch'中。请参阅该函数的帮助文件中的示例。 SO也有一些关于这个问题的文章。 –