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

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

スポンサーリンク

スポンサーリンク

最近やっているPythonのデータ分析に関する勉強のことをブログに備忘録として載せていきます。

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

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

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

時系列分析

説明変数は過去のそのデータ(独立変数)そのもの。

こうしたモデルは自己回帰モデルといわれる。

数式にすると、yt = a1・ y t-1 +a2・yt-2 + ・・・+an・yt-n+b

そうでないものは

yt = a1x1+a2x2 + ・・・+anxn+b

このような単回帰・重回帰分析とは考え方が異なります。

データ

https://www.data.jma.go.jp/gmd/risk/obsdl/index.php

気象庁のデータベースから

18年分(2001~2018年)の平均気温のデータを取得

2001~2017年のデータをモデルに適用し、2018年の平均気温を予測する

平均気温のデータは旬別(10日ごと)の平均気温を取得

日付の扱い方がイレギュラーなのでインデックスの適用など扱いがやや難

今回扱う気温のデータは、単調増加・現象がなく、データの変化がみてわかるように繰り返している性質(定常性)がある。

そのため今回扱うAR,MAといったモデルを採用する条件を満たしていると言える。

モデル

AR

上で少し触れたAutoRegressive(自己回帰)モデルがこれ。

当期のデータを縦軸、p期前のデータを横軸に取り相関を考えるモデル

yt = φ0+φ1 y1 + …+φt-p ・yt -p

t期前の値の自己回帰係数:φt

t期前の値がどの程度t期の値に影響があるのかを示す。

誤差項:ε

平均が0、母分散がσ2

MA

Moving Average(移動平均)を示すモデル

たとえば2期前まで移動平均をとるモデルでは

1期のデータ = (2+3+5)/3

2期のデータ = (3+5+4)/3

3期のデータ = (5+4+7)/3

と合算して値をとり、説明変数として考慮するモデル

yt = μ+εt1 ε1 + …+θt-q εt -q

θ:ホワイトノイズ(統計的なばらつき)

ARMA

ARMA(p,q)

AR(p)自己回帰モデル

MA(q)移動平均モデル

yt = φ01 y1 + …+φt-p yt -p+μ+εt1 ε1 + …+θt-p εt -p

ARIMA

ARMA(p,d,q)

dは何期の差分をとるか、1を設定するのが慣例

データの差分に対してARMAモデルを適用する。

予測で算出される値は一期前からの差分値

SARIMA

ARIMAに対して、dという季節調整値のパラメータを追加したモデル。

トレンドの強いモデルに対して有効な分析手段

今回は触れないのですが、そのうちやりたい・・・

実際に分析してみた結果

Pythonで各モデルについて実際に予測を行ってみました。

スポンサーリンク

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

フォローする

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

おすすめ特集!




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

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

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