私は R を初めて使用し、このサイトが非常に役立つことを発見したので、ここに私の最初の投稿された質問があります。私はあなたの支援に感謝し、このサイトの知恵を認めます.
背景: 5 年間の毎週の売上データから始めて、非常に強い年の季節性を伴う毎週の売上に基づいて、将来の生産の予測を作成します。次の方法で開始点を決定しました。
auto.fit <- auto.arima(arima.ts, stepwise=FALSE, parallel=TRUE, num.cores=6, trace=TRUE )
> ARIMA(2,1,2)(0,0,1)[52] with drift.
ここで、複数の「ウィンドウ」をデータに視覚的にプロットして精度を証明し、実際の値と比較したいと思います。(これには、AIC 値のログ記録が含まれます。) 言い換えれば、関数は、プログラムされた間隔でデータをループし、同じプロットに予測を再計算/プロットします。私のウィンドウがデータの先頭から始まると、正しくプロットされました。今、私は 104 週の移動ウィンドウを見ており、結果はすべて 104 番目の観察からオーバーレイされています。
require(forecast) ##[EDITED for simplified clarity]
data <- rep(cos(1:52*(3.1416/26)),5)*100+1000+c(1:26,25:0)
# Create the current fit on data and predict one year out
plot(data, type="l", xlab="weeks", ylab="counts",main="Overlay forecasts & actuals",
sub="green=FIT(1-105,by 16) wks back & PREDICT(26) wks, blue=52 wks")
result <- tryCatch({
arima.fit <- auto.arima(tail(data,156))
arima.pred <- predict(arima.fit, n.ahead=52)
lines(arima.pred$pred, col="blue")
lines(arima.pred$pred+2*arima.pred$se, col="red")
lines(arima.pred$pred-2*arima.pred$se, col="red")
}, error = function(e) {return(e$message)} ) ## Trap error
# Loop and perform comparison plotting of forecast to actuals
for (j in seq(1,105,by=16)) {
result <- tryCatch({
############## This plotted correctly as "Arima(head(data,-j),..."
arima1.fit <- auto.arima(head(tail(data,-j),156))
arima1.pred <- predict(arima1.fit, n.ahead=52)
lines(arima1.pred$pred, col="green", lty=(numtests %% 6) + 1 )
}, error = function(e) {return(e$message)}) ## Trap errors
}
すべての予測にファイルの先頭が含まれている場合、プロットは正確でしたが、サンプル サイズが縮小し続けたため、AIC は予測ウィンドウ間で比較できませんでした。
質問: 3 年間のローリング ウィンドウ (156 回の観測) から計算された、プログラムされた間隔での 5 年間の販売データとオーバーレイ予測を完全に表示するにはどうすればよいですか?
ログに記録された AIC 値は、ローリング ウィンドウ アプローチを使用して比較できますが、観測 157 から始まるすべての予測がオーバーレイされます。であるため、表示されませんでした。