自己相関関数
📂統計的分析自己相関関数
定義
{Yt}t=1n を確率過程で、時差kに対してYt−1,⋯,Yt−(k−1)によってYtを回帰分析した残差をet、Yt−kを回帰分析した残差をet−kとしよう。
- 次のように定義されるϕkkを時差kの偏自己共分散関数という。
ϕkk:=cor(et,et−k)
- 次のように定義されるϕkkを時差kの標本偏自己共分散関数という。
ϕkk:=1−∑j=1k−1ϕ(k−1),jrjrk−∑j=1k−1ϕ(k−1),jrk−jϕk,j:=ϕ(k−1),j−ϕkkϕ(k−1),(k−j)
説明
偏自己相関関数とは、自己相関性を把握しながら、YtとYt−kの間にあるYt−1,⋯,Yt−(k−1)の影響を削除し、純粋に二つの関係性だけを把握しようとするものだ。定義からいきなり回帰分析が飛び出てきて複雑そうに見えるが、実際は単純だ。etだけを見てみよう。YtをYt−1,⋯,Yt−k+1で回帰分析するとは、次の式に入るβ1,⋯,βk−1を見つけることを意味する。
Yt=β1Yt−1+⋯βk−1Yt−(k−1)+et
再び書くと
et=Yt−(β1Yt−1+⋯βk−1Yt−(k−1))
これはetがYt−1,⋯,Yt−(k−1)で説明できる部分が削除されたという意味だ。同様に、et−kもYt−1,⋯,Yt−(k−1)で説明できそうな部分はすべて削除されているため、cor(et,et−k)を計算するとはYt−1,⋯,Yt−(k−1)がない状態でのYtとYt−kだけの相関関係を見ようとすることだ。興味のある変数だけに着目するという点で、「偏」自己相関関数という名前は適切であることが分かる。[ 注: 概念が単純であってもsPACFを実際に計算するのはかなり難しいが、レビンソンLevinsonとダービンDurbinが提案したメソッドのおかげでϕkkを再帰的に計算できるようになったこと。 ]
数式的説明
数式的には、YtがAR(p)から出たと考えた場合Yt=k=1∑pϕkYt−k+etであるためYt−kの係数ϕkを計算する際、他の変数を除外することができ、AR(p)モデルを見つけるのに役立つ。
sPACF ϕkkはPACF ϕkkの推定値であり、YtがAR(p)モデルから出ている場合k>pで正規分布N(0,n1)に従う。数式で表すと
ϕkk∼N(0,n1)
であり、これを利用して仮説検定を行う。
テスト
Yt=k=1∑pϕkYt−k+etが与えられ、k=1,⋯,pとしよう。
- H0:AR(0)⟺θk=0、つまり、Ytは自己回帰モデルに従わない。
- H1:AR(k)⟺θk=0、つまり、Ytは時差kの偏自己相関関係を持つ。
解釈
帰無仮説の下では、p=0と同時にϕkk∼N(0,n1)を仮定し、標準誤差はn1になる。したがって、有意水準αで仮説検定を行いたい場合は、∣ϕk∣が信頼区間上限nz1−α/2を超えるかどうかを確認すれば良い。超えれば有意な時差の候補となり、超えなければ偏自己相関関係がないとみなされる。
実習

ar1.s
データはTSA
パッケージのAR(1)モデルからのサンプルデータだ。実際にARIMAモデルで分析する際も、推定値の絶対値が標準誤差の2倍を超えるかどうかを基準に有意な係数かどうかを判断する。

また、TSA
パッケージのacf()
関数を使用すると、上のように様々なkに対してコレログラムを描いてくれる。考える必要なく、線を超えれば有意と見なし、超えなければ有意でないと見なしても良い。基本的には有意水準5%で計算される。

偏自己相関関数を利用した仮説検定を正しく理解したかどうかを確認する方法として、上のように実際に線を直接描いてみることをお勧めする。Rではたった一行のコードだが、一度実行してみると、ϕkkが正規分布に従い、その標準誤差がse(rk)=n1で計算されることを受け入れることができる。
コード
library(TSA)
data(ar1.s); win.graph(6,4); pacf(ar1.s)
arima(ar1.s, order=c(1,0,0))
abline(h=1.96*1/sqrt(length(ar1.s)),col='red')
関連項目