推定したMAモデルからのシンプルな予測
Nile データで MA モデルを推定できたので、次はそのモデルを使って簡単な予測を行います。他の種類のモデルと同様に、推定した MA モデルから単純な予測を作るには predict() 関数を使います。予測値は $pred、その予測に対応する標準誤差は $se に格納され、いずれも当てはめた MA モデルに基づきます。
最後の観測以降の複数期間について予測したい場合は、predict() の呼び出しで n.ahead = h 引数を使います。予測は、観測時系列の末尾から1期先からh期先まで、逐次的に行われます。ただし、1期先予測を除き、MAモデルからのすべての予測は推定された平均(intercept)と等しくなる点に注意してください。
この演習では、Nile データから得た MA モデルを使って、今後のナイル川流量を簡単に予測します。前の演習で作成した MA モデルは環境に用意されています。
この演習はコースの一部です
Rで学ぶ時系列分析
演習の手順
predict()を使って、1971年のナイル川流量を予測し、結果をpredict_MAに保存します。predict_MAの$pred[1]を用いて 1 期先予測を取得します。- もう一度
predict()を呼び出し、1971年から1980年までの予測を作成します。その際、n.ahead引数を10に設定します。 - 用意されたコードを実行して、
Nileの時系列に予測値と 95% 予測区間を重ねてプロットします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Make a 1-step forecast based on MA
predict_MA <-
# Obtain the 1-step forecast using $pred[1]
# Make a 1-step through 10-step forecast based on MA
# Plot the Nile series plus the forecast and 95% prediction intervals
ts.plot(Nile, xlim = c(1871, 1980))
MA_forecasts <- predict(MA, n.ahead = 10)$pred
MA_forecast_se <- predict(MA, n.ahead = 10)$se
points(MA_forecasts, type = "l", col = 2)
points(MA_forecasts - 2*MA_forecast_se, type = "l", col = 2, lty = 2)
points(MA_forecasts + 2*MA_forecast_se, type = "l", col = 2, lty = 2)