始める無料で始める

ARモデルでの予測

前の演習で行ったモデルのパラメータ推定に加えて、statsmodels を使うとインサンプルおよびアウトオブサンプルの予測も行えます。インサンプル予測は、その時点までのデータを使って次のデータ点を予測すること、アウトオブサンプル予測は将来の任意個のデータ点を予測することを指します。予測結果は plot_predict() 関数でプロットできます。予測の開始点と終了点を指定し、終了点はデータセットの末尾より先の任意の点にできます。

DataFrame simulated_data_1 のシミュレーションデータ($\small \phi=0.9$)について、アウトオブサンプル予測とその予測区間をプロットします。

この演習はコースの一部です

Pythonで学ぶ時系列解析

コースを見る

演習の手順

  • クラス ARIMA をインポートし、関数 plot_predict もインポートします
  • DataFrame simulated_data_1 のシミュレーションデータを使い、モデルの次数 (p,d,q) が(この場合は AR(1) のため)order=(1,0,0) となるように、ARIMA クラスのインスタンス mod を作成します
  • モデル mod.fit() メソッドで当てはめ、結果オブジェクトを res という名前で保存します
  • データ点 950 からインサンプルのデータをプロットします
  • plot_predict() 関数を使って、データが終了する 1000 番目の点から開始し、予測の終了点を 1010 番目にして、アウトオブサンプルの予測と予測区間をプロットします

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import the ARIMA and plot_predict from statsmodels
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.graphics.tsaplots import plot_predict

# Forecast the first AR(1) model
mod = ARIMA(___, order=___)
res = mod.fit()

# Plot the data and the forecast
fig, ax = plt.subplots()
simulated_data_1.loc[950:].plot(ax=ax)
plot_predict(res, start=___, end=___, ax=ax)
plt.show()
コードを編集して実行