在 Rob Hyndman 的书中,Rob 描述了使用 tsCV 来评估 auto.arima 和 ets 返回的模型的预测准确性。
这更像是一个概念性问题,但我查看了 tsCV 的底层代码并看到了这一点:
for (i in seq_len(n - 1)) {
fc <- try(suppressWarnings(forecastfunction(subset(y,
start = ifelse(is.null(window), 1L, ifelse(i - window >=
0L, i - window + 1L, stop("small window"))),
end = i), h = h, ...)), silent = TRUE)
if (!is.element("try-error", class(fc))) {
e[i, ] <- y[i + (1:h)] - fc$mean
}
}
所以这意味着对于预测交叉验证中的每次迭代,都会估计一个新的 ets/auto.arima。在我看来,我没有看到这是如何评估特定 ARIMA 或平滑模型的预测准确性的,因为在时间 (t-1) 估计的模型将不同于在时间 t 选择的最终模型。有人可以解释为什么这样可以吗?