为什么tsCV适合用于模型选择算法,如etsauto.arima?

问题描述 投票:1回答:1

在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
        }
    }

所以这意味着在预测交叉验证的每一次迭代中 都会有一个新的etsauto. arima被估计出来。在我看来,我看不出这是在评估特定ARIMA或平滑模型的预测精度,因为在时间(t-1)估计的模型将与时间t的最终模型选择不同,谁能解释一下为什么这样可以?

r cross-validation arima forecast
1个回答
0
投票

在我的使用案例中,我有一些日常数据,并且在每个周四我想预测下一周的数据,这意味着我想每周只训练一次我的Arima模型,这在默认的tsCV行为下是不可能的(faik,我在R中还很陌生...)。

幸运的是,tsCV允许你传递一个自定义函数。在这个函数中,我只在周四的时候训练一个新的模型。如果是另一天,那么我就重新使用上个周四计算的模型。

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

© www.soinside.com 2019 - 2024. All rights reserved.