2

在 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 选择的最终模型。有人可以解释为什么这样可以吗?

4

1 回答 1

0

尝试使用 tsCV 评估 Arima(2,1,0) 时,我遇到了类似的问题。在我的用例中,我有一些每日数据,并且每个星期四我想预测下一周的数据。这意味着我只想每周训练一次我的 Arima 模型,这是不可能的(afaik,我在 R 中还是很新的......)使用默认的 tsCV 行为。

幸运的是,tsCV 允许您传递自定义函数。在其中,我只在星期四训练一个新模型。如果是另一天,那么我会重用上周四计算的模型。

也许你可以做一些类似的事情来拥有一个“修复”模型?

于 2020-06-08T09:22:49.113 回答