平均気温の時系列データをARMAモデルで予測する

▼この記事をSNSでシェアする▼

スポンサーリンク

スポンサーリンク

拙いところが多々ありますが、少しでも参考になったり、ご指摘等いただけたら幸いです。

理解進んだら随時更新します。

トンビ
PythonのARIMAモデルの話ネットに少ないですね・・・

各モデルやデータ分析の概要についてはこちらにまとめています。

時系列分析のAR,ARMA,ARIMAモデルを気温データにて適用させてみる

今回はARモデルの自己回帰に移動平均を追加考慮するモデルで予測を行います。

データ準備

ヘッダー整形

学習データとテストデータの分割

2001-2017年までのデータ(〜611行)と2018年までのデータ(612行目〜)に分割して、平均気温のデータを整形しています。

今回10日ごとのデータで日付をインデックスにすると、うまくモデルに適用できないので、reset_indexで0からインデックスを数字で割り振り、グラフにプロットする際に10日おきの日付をx軸に設定しています。

自己相関係数

自己相関係数の出し方

rk=∑(T期のデータと平均値の差)*(T期からK期前のデータと平均値の差)/(T期のデータと平均値の差)の2乗

共分散の算出法をK期前のデータに適用する形になります。

青い領域は95%の信頼区間でその範囲は統計的に優位と言える。

自己相関係数は、指定のラグ以降の自己相関係数を考慮するが、偏自己相関は指定のラグ以降の自己相関係数を考慮しない。

モデルの選択

{‘aic’: 0 1 2
0 NaN 4558.096971 4054.149230
1 2729.275416 2728.529156 2685.828856
2 2726.870585 2732.750112 2594.806301
3 2667.117558 NaN NaN
4 2628.275169 2607.891710 NaN, ‘aic_min_order’: (2, 2)}

aicが最小であるAR(2),MA(2)のパターンが最適であるらしい。

AICは赤池情報量基準といわれるもので、理想のモデルとの差を表すパラメータ。

  • 回帰式に定数項がある場合

AIC = n(log (2π Se/ n) + 1 ) + 2 (p +1)

  • 回帰式に定数項がない場合

AIC = n(log (2π Se/ n) + 1 ) + 2 (p +2)

※変数

p:説明変数の数、n:サンプルの数、Se:残差平方和

ARMAモデルの実行

予測

レポート

他のモデルでの実行結果

他のモデルでも分析・予測を行ってみました。

スポンサーリンク

▼この記事をSNSでシェアする▼

フォローする

メニュー・主な記事カテゴリ

おすすめ特集!




「ゆとり鳥日記」について
ITを中心に関心の赴くままに好きなように書いていく雑記ブログ!管理人が二人います。
◆フクロウ(19卒就活生)
◆トンビ(社会人1年目SE)

詳しいプロフィール
お仕事の依頼・ご要望

ゆとり鳥日記をBTCで応援する