時系列データ解析 06 ~ 自己回帰過程
沖本先生の本の続きです。MA過程の次はAR過程です。
自己回帰(AR)過程は、過程が自己の過去に回帰されたモデルで表現されるものです。1次のAR過程、AR(1)は、
で定義され、 と表記されます。
AR過程は代表的な弱定常過程である
に、 が追加された形をしていて、そのため と が相関をもつことになります。
AR過程の確率的変動は、MA過程と同様、撹乱項のホワイトノイズ によって決まります。 が決まり、続いて が決まっていきます。
AR過程では初期値の決定が問題になります。 が分布が定まっている場合は、その分布に従う確率変数とし、 の分布が定まっていない場合は、ある定数とすることが一般的です。ただ、定常過程では、初期値の影響は時間とともになくなるので、大きな問題にはなりません。
沖本先生の本のとおり、具体例を示します。次のようなAR(1)を考えます。
初期値を として、 、 とします。このときに順番に解いていくと、
となります。
ここで、MA(1) 過程と同様に、パラメータを調整したAR(1)過程をグラフ化してみます。RのコマンドについてはMA(1)で多少説明していますので、必要な部分のみ解説します。
以下の6つのパラメータのAR(1)過程をグラフ化します。
Rのコードです。arima.sim関数の第2引数ですが、今回はAR過程なので、order=c(1, 0, 0) となっています。ちなみに、MA過程の時はorder=c(0, 0, 1) でした。次にAR過程の係数はar=c(0.8)として指定します。
set.seed(1) d1 <- arima.sim(n=100, model=list(order=c(1, 0, 0), ar=c(0.8)), sd=1) +2 plot(d1, main="(a) c=2, Φ=0.8, σ=1") set.seed(1) d2 <- arima.sim(n=100, model=list(order=c(1, 0, 0), ar=c(0.3)), sd=0.5) - 2 plot(d2, main="(b) c=-2, Φ=0.3, σ=0.5") set.seed(1) d3 <- arima.sim(n=100, model=list(order=c(1, 0, 0), ar=c(-0.3)), sd=2) plot(d3, main="(c) c=0, Φ-=0.3, σ=2") set.seed(1) d4 <- arima.sim(n=100, model=list(order=c(1, 0, 0), ar=c(-0.8)), sd=1) - 2 plot(d4, main="(d) c=-2, Φ=-0.8, σ=1") set.seed(1) d5 <- arima.sim(n=100, model=list(order=c(1, 0, 0), ar=c(1)), sd=1) + 2 plot(d5, main="(e) c=2, Φ=1, σ=1") set.seed(1) d6 <- arima.sim(n=100, model=list(order=c(1, 0, 0), ar=c(1.1)), sd=1) + 2 plot(d6, main="(f) c=2, Φ=1.1, σ=1")
まず、(e)と(f)ですが、係数が以上の場合、AR過程は定常ではなくなるため、エラーで出力されません。そのため、グラフも出力されません。
AR過程はMA過程と違い、パラメータの値によって定常か非定常かが変わります。先ほど、係数が以上と書きましたが、正確には係数の時に非定常となります。
ここではAR(1)過程が定常という場合のみを解説していきます。
AR(1)過程の期待値についてです。グラフでは概ね期待値と定数項が一致しているようにも見えますが、実際は期待値と定数項は一致しません。(a)あたりでは定数項はですが、やや下の方に過程の期待値があるようです。AR(1)過程の期待値をみています。
ここで、ホワイトノイズの性質により です。また、は定常過程ですから、
です。よって、AR(1)過程の期待値
が得られます。
次に分散ですが、MA過程と同様に過程の分散は撹乱項の分散と異なります。MA(1)過程で使用した(a)のグラフと今回の(a)のグラフを比べてみます。ちなみに左側はMA(1)過程、右側がAR(1)過程です。
撹乱項の分散はですが、過程の変動幅は違います。AR(1)過程の方がやや大きいです。つまり、AR(1)過程の分散は撹乱項のそれより大きくなります。では分散を見ていきます。
ここで、が定常であれば、ですので、AR(1)過程の分散は、
となります。
最後に自己相関をみてみましょう。先ほどのMA(1)過程のグラフ(a)とAR(1)過程のグラフを比べると、係数( と はともに)は同じでもAR(1)過程のグラフがより滑らかであることがわかります。
これは、この場合のように係数が同じとき、1次自己相関の絶対値はAR(1)過程の方が大きくなることと、AR(1)過程は2次以降の相関係数もすべて正になることの2点によるからです。
AR過程のk次の自己共分散はこのようになります。
ここで、両辺を で割ると、
となり、これはユール・ウォーカー方程式と呼ばれます。ユール・ウォーカー方程式は、AR過程の自己相関が、 が従うAR過程と同一の係数 をもつ差分方程式に従うということを表しています。
ユール・ウォーカー方程式とを用いて、AR過程の自己相関は順番に求めることができます。また、ユール・ウォーカー方程式により、AR(1)過程の一般的な自己相関は、
となります。また、[ より、AR(1)過程の自己相関の絶対値は指数的に減衰していきます。コレログラムを描いてみます。
set.seed(1) d1 <- arima.sim(n=100, model=list(order=c(1, 0, 0), ar=c(0.8)), sd=1) acf(d1, main="(a) θ1=0.8, θ2=0") set.seed(1) d2 <- arima.sim(n=100, model=list(order=c(1, 0, 0), ar=c(-0.8)), sd=1) acf(d2, main="(a) θ1=0.8, θ2=0")
コレログラムを描くacf()関数とarima.sim()関数は以前に説明していますのでここでは割愛します。AR(1)過程の自己相関の絶対値は指数的に減衰していくことが、(a)と(b)からよくわかると思います。AR(1)過程のコレログラムはの符号によって、減衰していくことが確認できます。
AR(1)過程を一般化したp次のAR過程AR(p)はこのように記述されます。
AR(p)過程はy_{t} を定数と自身のp期過去の値に回帰したモデルになります。AR(1)同様にAR(q)もパラメータにより定常となるか非定常となるか変わってきます。定常AR(p)過程の性質は、
であり、特にはユール・ウォーカー方程式と呼ばれます。そして、自己相関が指数的に減衰していきます。
ここで、AR(2)過程のユール・ウォーカー方程式は、このようになります。
これに、を代入し、とから
が得られます。これを変形すると、
となります。次に、を代入すると、
となり、 を求めることができます。AR(2)過程の場合は、特にの一般的な
という2次方程式が異なる2つの解をもつとき、その解の逆数を、とすれば
で自己相関係数が得られます。
AR(p)の場合、からまでは、ユール・ウォーカー方程式と、から次の連立方程式を解いて求めることができます。
AR(2)過程のコレログラムを図示します。
set.seed(1) d3 <- arima.sim(n=100, model=list(order=c(2, 0, 0), ar=c(0.5, 0.35)), sd=1) acf(d3, main="(a) θ1=0.5, θ2=0.35") set.seed(1) d4 <- arima.sim(n=100, model=list(order=c(2, 0, 0), ar=c(0.1, 0.5)), sd=1) acf(d4, main="(a) θ1=0.1, θ2=0.5") set.seed(1) d5 <- arima.sim(n=100, model=list(order=c(2, 0, 0), ar=c(0.5, -0.8)), sd=1) acf(d5, main="(a) θ1=0.5, θ2=-0.8") set.seed(1) d6 <- arima.sim(n=100, model=list(order=c(2, 0, 0), ar=c(0.9, -0.8)), sd=1) acf(d6, main="(a) θ1=0.9, θ2=-0.8")
AR(1)同様に自己相関の絶対値は指数的に減衰しています。パラメータの組み合わせによって、多様な自己相関構造が記述できます。(e)と(f)をみると、AR(2)が循環的な自己相関構造を記述できることがわかると思います。先ほどの
が共役な複素数を解にもつときに、自己相関は循環的になります。そして、その周期は
となります。これは、AR(p)過程にも拡張でき、
が共役な複素数を解にもつときにも同様の循環成分をもちます。AR(p)の自己相関は、最大個の循環成分を持つことができるのです。