ARIMAXの使い方
モチベーション
職場でいきなり時系列モデルのPOCをやることになり、時系列分析初心者だったので大変な思いをした。exogenousやら外生変数やら何だかおどろおどろしい用語が出てきて怖気付きそうだったがPythonなら一発だった。Python愛がここでも深まった。
時系列モデルのデファクトスタンダード、ARIMAに外生変数を追加して精度の向上を目指すARIMAXモデルの直感的解説と使い方を下記Kaggleカーネルをベースにまとめます。
ARIMA + X = ARIMAX
機械学習常習者的直感的解釈
X = exogenous variable (外生変数)
イメージとしては教師ラベルとしてのyを入力するだけのものはARIMA, yに並行して説明変数としてのXも同時入力するものはARIMAXということになる。機械学習に慣れた親しんできた者(機械学習常習者)から見ると、教師ラベルだけで学習を進めようとするARIMAはかなりエキセントリックなことをやっているように見え、むしろARIMAXの方が普通(スタンダード)に見える。
そもそも時系列モデルの数式ではXがなかなか出てこない。これはYのYによるYのための自己回帰モデルだからだが、機械学習常習者から見るとどこか落ち着かない。
Pythonによる実装
arima = sm.tsa.statespace.SARIMAX(y, order=(7,1,7), seasonal_order=(0,0,0,0), enforce_stationarity=False, enforce_invertibility=False).fit() arimax = sm.tsa.statespace.SARIMAX(y, order=(7,1,7), seasonal_order=(0,0,0,0), exog = X, enforce_stationarity=False, enforce_invertibility=False).fit()
ちなみにXはpandas.DataFrameでもnumpy.ndarrayでもOK。 ちなみに実際にはXはX_trainとX_testに分割し、fitの段ではX_trainを、predictの段ではX_testをそれぞれ入力データとしてモデルに与えてやる必要あり。
参考になった書籍
経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)
- 作者: 沖本竜義
- 出版社/メーカー: 朝倉書店
- 発売日: 2010/02/01
- メディア: 単行本
- 購入: 4人 クリック: 101回
- この商品を含むブログ (6件) を見る
- 作者: 北川源四郎
- 出版社/メーカー: 岩波書店
- 発売日: 2005/02/24
- メディア: 単行本
- 購入: 6人 クリック: 94回
- この商品を含むブログ (9件) を見る