古典的な時系列解析フレームワークであるBox-jenkins法を、時系列解析の数学的な準備をした後、実装を通して説明します。
古典的な時系列解析フレームワークの理論 とその実装369_ru(さぶろく)
View Slide
時系列解析とは何か時系列解析とは、時系列データを取り扱う際に用いられる分析(手法)のことです。時系列データは時系列データではないデータ(トランザクションデータ)とは異なり、従来の統計的な手法で分析することはできません。従って、時系列データを扱う際は、トランザクションデータと区別して分析する必要があります。
時系列解析におけるフレームワークについて時系列解析のフレームワークには、Box-Jenkins法と状態空間モデルがあります。Box-Jenkins法は古典的な手法ではあるのですが、分析をするための手順・規則が整備されているので、自動化しやすいとといった利点があります。状態空間モデルは、非常に表現の幅が広く、人間の直感をそのままモデル化できるといった利点があります。今回は、タイトルの通り、古典的なフレームワークであるBox-Jenkins法の理論と実装について話します。分析
理論に入る前の準備「それでは、Box-Jenkins法について紹介していきましょう!」と言いたいところなのですが、理論をある程度理解するための準備をします。具体的には、・定常性・MAモデル, ARモデル, ARMAモデルやそれに準ずるモデル・単位根過程, 和分過程について話します。
定常性・定義:(弱)定常性 時系列データがこのような性質を持つと平均と自己共分散が時間(t)に依存しないので、複数時点のデータを取ってきて、そのデータの平均や自己共分散を求めれば、特定時点での平均や特定時点間の自己共分散を求めることができるようになります。
MAモデル・定義:MA(q)モデルこのようなモデル式を持つモデルをMA(q)モデルと言い、y_tはq時点前までの誤差項で説明された式になっています。ここで、誤差項ε_tは定常性を持つので、MA(q)モデルは定常性をもったモデルになります。
ARモデル・定義:AR(p)モデルこのようなモデル式を持つモデルをAR(p)モデルと言います。p時点前までのデータで説明された式になっていて、ARモデルはMAモデルとは異なり定常であるとは限りません。そこで、ARモデルが定常性を持つ条件を次のページで紹介します。
ARモデルの定常条件AR(p)モデルが定常性を持つ条件は、次のAR特性方程式のzに関するすべての解の絶対値が1より大きくなることです。・AR特性方程式例えば、AR(1)モデルだと解の絶対値が1より大きくなる時、係数の絶対値は1より小さくなるので、係数の絶対値が1より小さくなるとき、定常であると言えるでしょう。
ARMAモデル・定義:ARMA(p, q)モデルこのようなモデル式を持つモデルをARMA(p, q)モデルと言います。これは、AR(p)モデルとMA(q)モデルを組み合わせたモデルになっています。ARMA(p, q)が定常性を持つかどうかは、AR(p)の項について定常条件を満たすかどうか確かめれば良いです。
単位根過程・定義: 単位根過程単位根過程をそのまま分析することもできるのですが、この資料内においては、単位根過程の差分を取って定常過程に直してから、時系列モデルを当てはめます。
和分過程・定義:和分過程I(d)過程にARMA(p, q)モデルを当てはめる時、そのようなモデルをARIMA(p,d,q)モデルと言います。また、このような過程を単位根を持つ過程と呼ぶこともあります。
季節性ARIMAモデル(SARIMAモデル)時系列データには気温など、季節に依存するデータもあります。例えば、「先月は寒かったから、今月もある程度寒くなるだろう。」や「去年の〇月は暑かったから、今年の〇月も暑いだろう。」など、先月と今月や、去年と今年などで相関関係をモデル化することができます。このように、ARIMAモデルに季節成分を取り入れたモデルをSARIMAモデルと言います。一周期がsであるデータにおいて、ARIMAの次数(p, d, q)と、季節性の次数(P, D, Q)を合わせてSARIMA(p, d, q)(P, D, Q)[s]と表記します。
単位根検定時系列データが定常である方が分析がしやすいです。データが定常であるということは、データが単位根を持たないとも捉えられます。そこで、帰無仮説、対立仮説を単位根を持つ・持たないとした検定を考えます。この検定において、単位根過程を持つという仮説が採択されなければ、データは定常であるということになります。このような検定を単位根検定と言います。今回はADF検定といった単位根検定について説明します。
ADF検定ADF検定は拡張DF検定と呼ばれることもあります。DF検定はAR(1)モデルに対して、単位根を持つかどうか判断するための検定です。これをAR(p)モデルに拡張したモデルがADF検定になります。今回は簡単にDF検定を説明します。この検定において、帰無仮説が棄却されたとき、単位根を持つと言えるわけです。棄却域を求めるためには更に準備が必要なので、今回は省略します。
Box-Jenkins法の流れ1.データを分析しやすい形に変換2.データにARIMAモデルやそれに準ずるモデルの適用3.推定されたモデルを評価4.推定されたモデルを用いて予測このようなステップを踏むことで、信用できる時系列モデルを作ることができます。これらを実装を通して見ていきましょう。
例:イギリスの交通事故死傷者数のモデル化使用するデータは、馬場(2018)で使用しているイギリスの交通事故負傷者数のデータSeatbeltsを使用します。変数は・front: 前席における死傷者数・PetrolPrice: ガソリンの値段・law: 前席においてシートベルトを装着することをです。また、実行環境はR:version 4.2.1RStudio: Version 2022.07.1+554 です。
1.データを分析しやすい形に変換データの差分をとって定常にしましょう。まず、データが定常かどうかを確かめるために、単位根検定を行います。ADF検定を行うためのコードと結果の一部は以下です。有意水準が1,5,10%のいずれでも単位根を持つという帰無仮説は棄却されないことがわかります。
差分を取る回数データが単位根を持つということはわかりましたが、何回差分を取れば定常になるかどうかはわかりません。そこで以下のコードを書けば、差分を取る回数がわかります。定常にするために必要な差分を取る回数は1回なので、このデータは単位根過程であることがわかります。
また、データの対数をとると、分析をする際にうまくいくことがあります。データの対数を取るコードは以下です。そして、このデータに対して差分を取りましょう。対数を取ったデータに対して差分を取るコードは以下です。対数変換
季節成分があるか調べる1年単位での自己相関があるか調べてみましょう。対数系列の月ごとのグラフは右図です。グラフを見てみると、12月が最も交通事故死傷者数が多いことがわかります。したがって、このデータは季節成分を持つので、SARIMAモデルを採択するのが良さそうです。
訓練データとテストデータに分ける予測性能の評価のためにデータを訓練データとテストデータに分割します。分割するコードは以下です。Seatbelts_logはSeatbeltsの”front”と”PetrolPrice”を対数変換したデータになっています。また、予測性能の評価のために説明変数だけ切り出しておきます。
2.データにARMAモデルやそれに準ずるモデルの適用先ほどまでのデータ変換において、季節成分を含めたモデルになるので、データにはSARIMAモデルを当てはめることになります。その際、SARIMA(p, d, q)(P, D, Q)の次数を決める必要がありますが、データに適した次数を持つモデルを選びたいです。その際、モデルを選ぶための規準を情報量規準と言い、モデルを選ぶための操作をモデル選択と言います。
モデル選択今回、モデル選択のために使う情報量規準はAICです。モデルの次数をひたすら変えて、その度にAICを計算してモデルを比較するわけですが、それは面倒です。そこで、Rのforecastパッケージのauto.arima関数を使いましょう。コードは右のようになります。今回はSARIMA(2, 1, 3)(2, 0, 0)[12]が選ばれました。
3.推定されたモデルの評価作ったモデルの評価をしましょう。その際に確認することは、・モデルが定常条件を満たすか・残差は自己相関がないかどうか・残差が正規分布に従うかどうかの3つになります。
定常性のチェックauto.arima関数を使う際に、定常性のチェックはできているのですが、一応選ばれたモデルが定常性を持つかどうかAR特性方程式を解くことで確かめましょう。コードは以下のようになり、解の絶対値がすべて1より大きいので定常性を持つことがわかります。
残差の自己相関のチェック残差に自己相関がある場合は、まだ自己相関構造を作れる余地があるということなので、正しくモデルが作れていません。そこで、残差に自己相関があるかどうかを確かめる検定であるLjung-Boxの検定を行います。コードと結果は右のようになります。Ljung-Box検定の帰無仮説は「自己相関を持たない」なので、p-value > 0.05より有意な自己相関はみられないという結果が得られます。
残差の正規性チェック残差が正規分布に従っている仮定でモデルを組んでいたので、当てはめ残差が正規分布に従うことも確認します。正規性の検定として、Jarque-Bera検定を行います。この検定において、帰無仮説は「正規分布に従う」です。コードと結果は以下になっていて、これも有意に正規性を持たないとは言えないことがわかります。
4.推定されたモデルを用いて予測それでは、先ほど用意した説明変数を切り出したテストデータに対して、作ったモデルを使って予測をします。コードと予測結果の図は下のようになります。
ナイーブ予測との比較最後にナイーブ予測と同定されたモデルのRMSEを用いた精度の比較を行います。ナイーブ予測とは、「複雑な技術を使わずに出すことができる予測」です。例えば、・過去の平均値を予測値として出す・前時点の値を予測値として出す作ったモデルがこのナイーブ予測よりも精度が上回ることを確認します。もし、下回る、または同等であった場合、モデルを作る意味がなかったということになります。このようなことはしばしば起こるので予測精度を出す際に必ず比較しましょう。
RMSE・定義:RMSE(Root Mean Square Error)RMSEが小さいほど、予測精度が高いモデルと言えます。この指標を使って予測精度の比較を行いましょう。
予測精度の比較forecastパッケージのaccuracy関数を使うことでRMSEなどを自動で計算してくれます。作ったモデルとナイーブ予測との比較は以下で、ナイーブ予測より優れていることが確認できます。
最後にナイーブ予測との比較まで行って、時系列解析におけるモデルの作成は終了です。データを定常にするために、差分を取っていますが、取りすぎるとデータの重要な部分が抜け落ちしてしまうので、取りすぎには注意が必要です。今回のスライドでは、一部の数理的な説明や省略した作業もあります。詳しく知りたい方やこの分野に興味を持った方は、参考文献に載せた書籍を参照してください。
参考文献・馬場真哉(2018)『時系列分析と状態空間モデルの基礎 RとStanで学ぶ理論と実装』プレアデス出版・沖本竜義(2010)『経済・ファイナンスデータの計量時系列分析』朝倉書店・Hamilton, J.(1994)『Time Series Analysis』Princeton University Press.