こんにちは、ミナピピン(@python_mllover)です。今日はPythonで時系列モデルの一種であるARIMAモデルを実装して時系列データ予測をしてみたいと思います。
使用するデータ
今回使用するデータはお馴染みの航空機の乗客データです。アイスクリームの売上データと同じで周期性が明確なのでサンプルにはうってつけです。
# ライブラリをインストールする $ pip install pydse
# ライブラリの読み込み import numpy as np from pydse import data import matplotlib.pyplot as plt %matplotlib inline df = data.airline_passengers() df.plot()
SARIMAのモデルの概要と特徴
SARIMAモデルは、ARIMAモデルに季節変動の要因を組み込んだ時系列モデルです。このSARIMAモデルもARIMAモデルと同様に定常過程でないデータに対しても当てはめることが可能です。
SARIMAモデルで時系列分析する
まずは残差をプロットしてみます。
import statsmodels.api as sm # モデルをデータに当てはめる sarima_model = sm.tsa.SARIMAX(df['Passengers'], order=(3,1,2), seasonal_order=(1,1,1,12)).fit() # 残差をプロット plt.plot(sarima_model.resid)
SARIMAモデルでの時系列予測
一応SARIMAモデルでの予測もやってみましょう。
predict = sarima_model.predict('1960-01-01', '1962-12-01') # 元データと予測データをプロット plt.plot(df['Passengers']) plt.plot(predict)
季節成分を考慮したモデルであるためARIMAモデルよりもいい感じの予測できていますね。
⇒ 【Python】MAモデルによる時系列予測をやってみる
⇒ 【Python】VARモデルによる時系列予測をやってみる
⇒ 【Python】ARIMAモデルによる時系列予測をやってみる
コメント