logo

自己相関関数 📂統計的分析

自己相関関数

定義 1

{Yt}t=1n\left\{ Y_{t} \right\}_{t=1}^{n}確率過程とする。

  1. μt:=E(Yt)\mu_{t} := E ( Y_{t} )平均関数という。
  2. 次のように定義された γt,s\gamma_{ t , s }自己共分散関数という。 γt,s:=cov(Yt,Ys)=E(Ytμt)E(Ysμs) \gamma_{t , s} : = \text{cov} ( Y_{t} , Y_{s} ) = E ( Y_{t} - \mu_{t} ) E ( Y_{s} - \mu_{s} )
  3. 次のように定義された ρt,s\rho_{ t , s }自己相関関数という。 ρt,s:=cor(Yt,Ys)=γt,sγt,tγs,s \rho_{ t , s } := \text{cor} ( Y_{t} , Y_{s} ) = {{ \gamma_{t , s} } \over { \sqrt{ \gamma_{t , t} \gamma_{s , s} } }}
  4. 次のように定義された ρk\rho_{ k }ラグkkの自己相関関数という。 ρk:=cor(Yt,Ytk)=γt,tkγt,tγtk,tk \rho_{ k } := \text{cor} ( Y_{t} , Y_{t-k} ) = {{ \gamma_{t , t - k} } \over { \sqrt{ \gamma_{t , t} \gamma_{t-k , t-k} } }}
  5. 次のように定義された rkr_{ k }ラグkkの標本自己相関関数という。 rk:=t=k+1n(YtY)(YtkY)t=1n(YtY)2 r_{ k } := {{ \sum_{t = k+1}^{n} \left( Y_{t} - \overline{Y} \right) \left( Y_{t-k} - \overline{Y} \right) } \over { \sum_{t=1}^{n} \left( Y_{t} - \overline{Y} \right)^2 }}

説明

自己相関関数とは、時系列データの自己相関性を把握するための関数で、同じ変数でもあるラグを持って自己とどの程度似ているかに関心を持つ。異なる変数の相関関係に関心を持つ回帰分析のアイデアとは異なり、自己がラグkkを持ってYtY_{t}YtkY_{t-k}に分かれ、二つの変数のように扱われる。

数式的説明

数式的には、YtY_{t}MA(q)MA(q)から出てきたと考えると、Yt=etk=1qθketk\displaystyle Y_{t} = e_{t} - \sum_{k=1}^{q} \theta_{k} e_{t-k}であるためYtY_{t}を複数の正規分布の和と見ることができ、ρk\rho_{k}θk\theta_{k}であるため、MA(q)MA(q)モデルを見つけるのに有用である。

sACF rkr_{k}はACF ρk\rho_{k}の推定値であり、YtY_{t}MA(q)MA(q)モデルから出てきた場合、k>qk > qの時、正規分布N(ρk,1n[1+2j=1qρj2]2)\displaystyle N \left( \rho_{k} , {{1} \over {n}} \left[ 1 + 2 \sum_{j=1}^{q} \rho_{j}^{2} \right]^2 \right)に従う。数式で表すと rkN(ρk,1n[1+2j=1qρj2]2) r_{k} \sim N \left( \rho_{k} , {{1} \over {n}} \left[ 1 + 2 \sum_{j=1}^{q} \rho_{j}^{2} \right]^2 \right) であり、これを利用して仮説検定を行う。

テスト

Yt=etk=1qθketk\displaystyle Y_{t} = e_{t} - \sum_{k=1}^{q} \theta_{k} e_{t-k}が与えられ、k=1,,qk = 1 , \cdots , qとする。

  • H0H_{0}: MA(0)    θk=0MA(0) \iff \theta_{k} = 0、つまり、YtY_{t}移動平均モデルに従わない。
  • H1H_{1}: MA(k)    θk0MA(k) \iff \theta_{k} \ne 0、つまり、YtY_{t}はラグkkの自己相関関係を持つ。

解釈

帰無仮説の下では、すべてのkkに対してρk=θk=0\rho_{k} = \theta_{k} = 0であるため、q=0q = 0rkN(0,1N)\displaystyle r_{k} \sim N \left( 0 , {{1} \over {N }} \right)を仮定し、標準誤差1n\displaystyle {{1} \over {\sqrt{n} }}となる。したがって、有意水準α\alphaに対して仮説検定を行いたい場合は、θk| \theta_{k} |が信頼区間上限z1α/2n\displaystyle {{ z_{1 - \alpha/2} } \over { \sqrt{n} }}を超えるか確認すればよい。超えれば有意なラグの候補となり、超えなければ自己相関関係がないと見なされる。

実践

20190723\_125305.png

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

1.png

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

注意すべき点は、k=6k=6をわずかに超えたものも統計的に有意ではあるが、実際に自己相関関係があるとは見なされないことである。時系列分析では、この程度の超出は非常に頻繁であり、精神衛生のためにも、柔軟性を持ってそのまま受け入れることをお勧めする。

2.png

上のように実際に線を自分で引いてみることで、自己相関関数を使用した仮説検定を正しく理解したかどうかを確認する方法をお勧めする。Rではたった一行のコードだが、一度でも実行してみることで、rkr_{k}が正規分布に従い、その標準誤差が複雑な式なしでse(rk)=1n\displaystyle \text{se} ( r_{k} ) = {{1} \over {\sqrt{n}}}として得られることを受け入れることができる。

コード

library(TSA)
data(ma1.2.s); win.graph(6,4); acf(ma1.2.s)
arima(ma1.2.s, order=c(0,0,1))
abline(h=1.96*1/sqrt(length(ma1.2.s)),col='red')

参照


  1. Cryer. (2008). 時系列分析:Rによるアプリケーション(第2版): p11, 109。 ↩︎