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 が推定されることを意味します。私の考えでは、時間 (t-1) で推定されたモデルは時間 t で選択された最終的なモデルとは異なるため、これが特定の ARIMA または平滑化モデルの予測精度をどのように評価しているかはわかりません。誰かがなぜこれが大丈夫なのか説明できますか?