1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶ時系列解析

Connected

演習

冬のコートはまだ手放さないで

最後に、ARMA(1,1) モデルを使って今後30年間の気温を予測し、その推定値の信頼帯も示します。長期予測では、ドリフトの推定値が ARMA パラメータよりもはるかに大きな影響を与える点にご注意ください。

これまでに、気温データがランダムウォークに従うことを確認し、一次差分をとることを見てきました。本演習では、差分前の気温データに対して ARIMA モジュールを用います。これは、気温の「変化」に ARMA モジュールを適用し、その変化の累積和をとって気温の予測を得るのと同じことです。

気温は時間とともに上昇傾向にあるため、ARIMA モデルを定義する際にトレンド項も追加する必要があります。演習では、引数 trend='t' を指定して時間に対する線形トレンドを使用します。予測がどう変わるかを見るために、他のトレンドモデルを試すこともできます。例えば、二次トレンド \(\small a+ bt + ct^2\) の場合は、モデルに線形項 \(\small bt\) と二次項 \(\small ct^2\) の両方を含めるように trend=[0,1,1] を設定します。

データは temp_NY という DataFrame にあらかじめ読み込まれています。

指示

100 XP
  • 積分付きの ARMA(1,1)、つまり ARIMA(1,1,1) モデル用に、ARIMA クラスのインスタンス mod を作成します
    • order(p,d,q) の d は一次差分を1回とったので 1 です
    • .fit() メソッドで mod を当てはめ、結果を res と呼びます
  • res の plot_predict() メソッドで系列を予測してプロットします
    • 開始日は 1872、終了日は 2046 にします