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也有一些關於這個問題的文章。 –