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()