R 中的一步预测

One-step ahead forecasts in R

我在 R 中使用 forecast 函数多次循环(12 个月) for 但我想使用准确性来比较水平时间 =12 和提前一步的预测。我的问题是如何存储 12 次的结果以准确使用它。

for (i in 1:12) { 
  demfit <- ets(Dem2) 
  f <- forecast(demfit, 1) 
  Dem2[length(Dem2)+1] <- f$mean[1] 
} 
accuracy(f,Test)

它只计算最后一点预测的准确度 12

但是,我正在为 12 个预测寻找这个:

fit <- ets(Dem2) 
f1 <- forecast(fit, 12) 
accuracy(f1, Test)

我想你想要做的基本上是在 f 列表中存储 12 个值,当循环完成时也在 accuracy 列表中存储。

方法如下(将其保存在列表中):

f     <- list()
for (i in 1:12) { 
  demfit <- ets(Dem2) 
  f[[i]] <- forecast(demfit, 1)  #start filling the f list with values
  Dem2[length(Dem2)+1] <- f$mean[1]
} 
f <- unlist(f)
accuracy(f,Test)

f 本质上是一个包含 12 个值的列表,每次迭代一个值。 myacc.

相同