スポンサーリンク
スポンサーリンク

モデルを合成して新しく作る(ARMAモデル)

時系列 時系列分析

この記事では、ARモデルをMAモデルで表したり、MAモデルをARモデルで表したり、組み合わせて新しくモデルを作ります。ARモデルでMAモデルを表すことが出来る気もしますが、そうでもありません。MAモデルの方が、多くの定常過程を表現できる事が分かります。1

スポンサーリンク

AR→MA

ARモデルをMRモデルに書き換える為の条件を考えます。
ARモデルについては解説記事を描いているので、読んでみてください。

ARモデルの定常/非定常性の判定方法
定常確率過程にも、非定常確率過程にもなるARモデルを紹介します。簡単な性質を紹介した後、定常/非定常となる条件を計算します。最後に、pythonで色々グラフを描いてAR過程の特徴を捉えます。

ARモデルは、特性多項式の解が単位円の外側にあるとき、定常過程になりました。AR(1)過程の場合を考えましょう。2
$$\begin{eqnarray}
y_t &=& \phi y_{t-1} + \epsilon _t \\
\epsilon _t &\sim &{\rm W.N. } (\sigma ^2 )
\end{eqnarray}$$
特性方程式は以下の式です。
$$\begin{eqnarray}
1- \phi \lambda =0
\end{eqnarray}$$
これから、定常過程になるためには、\( | \phi | <1 \)が必要です。
\(y_{t-1} = \phi y_{t-2} +\epsilon _{t-1} \)に注意すると、ARモデルをMAモデルっぽい式に書き換える事が出来ます。\( m \geq 1 \)に対して、以下の式が成り立ちます。
$$\begin{eqnarray}
y_t = \phi ^m y_{t-m} + \sum_{i=0}^{m-1} \phi ^i \epsilon _{t-i} \\
\end{eqnarray}$$
\( |\phi | <1 \)の時、つまり、AR(1)が定常過程の時、\( m \rightarrow \infty \)の極限で第一項は0になります。
$$\begin{eqnarray}
y_t =\epsilon _t + \sum_{i=1}^{\infty} \phi ^i \epsilon _{t-i} \\
\end{eqnarray}$$
これは、\(MA(\infty ) \)ともいえるモデルです。
この事から、AR(1)モデルの時、ARモデルをMAモデルで書き換えられる事と、ARモデルが定常過程である事は同値です。
AR(p)でも同じことが言えます。AR(p)モデルがAR(1)モデルみたいに書き換えれた事を思い出しましょう。
\(
\left(
\begin{array}{c}
y_t \\
y_{t-1}\\
\cdots \\
y_{t-p+1}
\end{array}
\right)
=
\left(
\begin{array}{cccc}
\phi _1 & \phi _2 & \cdots & \phi _p \\
1& 0 & \cdots &0 \\
0& 1 & \cdots &0 \\
0 & \cdots &0 &1
\end{array}
\right)
\left(
\begin{array}{c}
y_{t-1} \\
y_{t-2}\\
\vdots \\
y_{t-p}
\end{array}
\right)
+ \left(
\begin{array}{c}
\epsilon _t \\
0\\
\vdots \\
0
\end{array}
\right)
+ \left(
\begin{array}{c}
c \\
0\\
\vdots \\
0
\end{array}
\right)
\)
このベクトルと行列からなる方程式を
$$\begin{eqnarray}
\xi _t =F \xi _{t-1} +\epsilon _t
\end{eqnarray}$$
と書けば、形は\( AR(1) \)です。Fが対角行列に変換できる事を考えると、特性方程式の解が単位円の外にある時に、\(MA(\infty )\)で書けることが分かります。3
凄い事に、ARモデルが定常過程になる時は、MAモデルで近似出来てしまう事が分かりました。このようなARモデルの性質を、反転可能といいます。

MA→AR

MA(q)モデルをARモデルに書き換える簡単な説明は見つかりませんでした。4なので、MA(1)をARに書き換えれる条件を考えましょう。 5
MA(1)モデルは以下の式です。
$$\begin{eqnarray}
y_t &=& \theta \epsilon _{t-1} + \epsilon _t \\
\epsilon _t &\sim & {\rm W.N. } (\sigma ^2 )
\end{eqnarray}$$
\( \epsilon _{t} = y_{t} – \theta \epsilon _{t-1} \)が従う事に注意すると、任意の\( m \geq 1 \)に対して以下の式が成り立ちます。
$$\begin{eqnarray}
\epsilon _t = (-\theta )^m \epsilon _{t-m} +\sum_{i=0} ^{m-1} (-\theta )^i y_{t-i}
\end{eqnarray}$$
\( | \theta | <1 \)の時、 \( m \rightarrow \infty \)の極限で右辺の第一項が0に収束します。よって、
$$\begin{eqnarray}
\epsilon _t = (-\theta )^m \epsilon _{t-m} +\sum_{i=0} ^{m-1} (-\theta )^i y_{t-i}
\end{eqnarray}$$
となるので、\( MA(1) \)の式で、\( \epsilon _{t-1} \)に代入すると、
$$\begin{eqnarray}
y _t = -\sum_{i=1} ^{\infty} (-\theta )^i y_{t-i} +\epsilon _t
\end{eqnarray}$$
となり、\( AR(\infty ) \)で表すことが出来ました。このようなMAモデルを反転可能と言います。
大事なのは、\( |\theta | <1 \)の条件が無いと\( AR( \infty ) \)に書き直せないことです。
ARは定常ならMAになりましたが、MAは条件が無いとARにならないのです。6定常過程を表す事に限定すると、ARよりMAの方が表現力があるという事です。
そのせいか、平均や分散、自己相関係数が同じMAモデルがいくつかあります。
例えば、
$$\begin{eqnarray}
y_t &=& \theta \epsilon _{t-1} + \epsilon _t \\
\epsilon _t &\sim & {\rm W.N. } (\sigma ^2 )
\end{eqnarray}$$

$$\begin{eqnarray}
y_t &=& \frac{1}{\theta} \epsilon _{t-1} + \epsilon _t \\
\epsilon _t &\sim & {\rm W.N. } (\theta \sigma ^2 )
\end{eqnarray}$$
は同じ平均などを与えます。数あるMAモデルの中から、モデルを選択する基準として反転可能性を使う事が出来ます。反転可能でない時は、未来のデータを使ったARモデルになってしまうからです。7
未来のデータから現在のデータを説明するモデルを使って、過去のデータから未来を予測するのは流石に無理です。

AR+MA

期待値と分散の線形性から、定常過程を足し合わせても定常過程です。同様に、定常過程+非定常過程は非定常過程です。
AR(p)モデルとMA(q)モデルを足し合わせたモデルをARMA(p,q)8モデルと呼びます。
$$\begin{eqnarray}
y_t &=& c+ \sum_{i=1}^p \phi _i y_{t-i} +\epsilon _t +\sum _{j=1}^q \theta _j \epsilon _{t-j}\\
\epsilon _t & \sim & {\rm W.N. } (\sigma ^2 )
\end{eqnarray}$$
直前に書いたことから、ARモデルが非定常なら、ARMAも非定常になります。ARMA(p,q)が定常の時、計算が簡単な期待値は以下のようになります。

[ARMA(p,q) の平均など]
$$\begin{eqnarray}
E[y_t] &=& \frac{c}{1- \sum_{i=1}^p \phi _i }\\
{\rm Var }[y_t] &=& \frac{(1+\sum_{i=1} ^q \theta _i )\sigma ^2 }{1- \sum _{i=1}^p \phi _i ^2}
\end{eqnarray}$$
\( k \geq q+1 \)に対して、
$$\begin{eqnarray}
\gamma _k &=& \sum_{i=1} ^{p} \phi _i \gamma _{k-i} \\
\rho _k &=& \sum_{i=1} ^{p} \phi _i \rho _{k-i}
\end{eqnarray}$$

もちろん、自己相関係数は指数的に小さくなります。\( k \leq q \)では、共分散は、MAモデルの項が入ってくるので、複雑な式になります。
ARMA(2,1)の、\( \gamma _1, \gamma_2 \)を計算してみましょう。
$$\begin{eqnarray}
y_t = \phi_1 y_{t-1} + \phi _2 y_{t-2} + \epsilon _t + \theta _1 \epsilon _{t-1}
\end{eqnarray}$$
このくらいは、定義通りに計算するだけです。
$$\begin{eqnarray}
\gamma _1 &=& {\rm Cov} (y_t , y_{t-1} )= {\rm Cov} ( \phi_1 y_{t-1} + \phi _2 y_{t-2} + \epsilon _t + \theta _1 \epsilon _{t-1} , y_{t-1} )\\
&=&\phi _1 \gamma _1 + \phi _2 \gamma _0 \\
\gamma _1 &=& \frac{\phi _2} {1-\phi _1} \gamma _0 \\
\gamma _2 &=& {\rm Cov} (y_t , y_{t-2} ) =\phi _1 \gamma _1 + \phi _2 \gamma _0
\end{eqnarray}$$
ARMA モデルは、定常の時はMAモデル、非定常の時はARモデルの影響を大きく受けます。わざわざARモデルや、MAモデルを使うなら、ARMAを使っておけば良いかもしれません。問題は\( p, q \)をどうやって決めるか、\( \phi , \theta \)をどう決めるかですが、それは別の記事で説明しようと思います。

pythonによる実装

ARモデルやMAモデルはそれぞれで近似出来る事が分かりました。それを確かめてみましょう。
適当なARモデルを生成して、MAモデルで近似する式を使って、和の総数を増やした時に、コレログラムが近似できるかグラフを描いてみます。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
np.random.seed(seed=1)

#AR
phi = 0.6
epsilon = np.random.randn(200000)
T=100
Y=np.zeros(T)
for t in range(1,T):
    Y[t]=phi*Y[t-1] +epsilon[t]

#AR like MR
y=np.zeros((3,T))
M=[100,1000,100000]
y[:,0]=0
for i in range(3):
    for t in range(1,T):
        y[i,t]= epsilon[t]
        for m in range(M[i]):   
            y[i,t]+= phi**m *epsilon[m+t]

近似式
$$\begin{eqnarray}
y_t =\epsilon _t + \sum_{i=1}^{\infty} \phi ^i \epsilon _{t-i} \\
\end{eqnarray}$$
で、和を100まで取ったコレログラムが右のグラフです。相関係数の絶対値は違いますが、相対的には同じような形に見えます。これは和を10000までとっても同じようなグラフになります。ホワイトノイズの影響が大きいようなモデルを考えればもっとうまく近似できるのかもしれません。

まとめ

  • ARモデルをMAモデルで近似した
  • MAモデルをARモデルで近似した
  • ARモデルとMAモデルを組み合わせたモデルを考えた
  • ARモデルがMAモデルで近似できるか試した
  1. ARモデルだと、自己相関係数が高次の項までダラダラ残るので当たり前ですが
  2. \( \epsilon _t \sim {\rm W.N. } (\sigma ^2 ) \)で \( \{ \epsilon _t \} \)がホワイトノイズに従う事を表します。
  3. 細かい議論はARモデルの解説記事を読んでください。
  4. 関数解析の知識があれば分かりますが。
  5. ARみたいに行列だけで分かる説明を知っている人がいれば教えてください。
  6. ARモデルは過去のデータで現在のデータを表すモデルだと思っていますが、未来のデータで現在のデータを表すモデルもARモデルと呼ぶなら、\( |\theta | >1 \)ならARモデルで表せます。MA(1)モデルの式で\(\epsilon _{t-1} = -y_t /\theta + \epsilon _t /\theta \) を考えて見てください。
  7. 過去のデータから未来を予測するのが良くある状況だと思います。
  8. アーマと読むらしい
タイトルとURLをコピーしました