自己相関、自己共分散について、視覚的に分かるようにメモ。
【目次】
自己相関、「自己」とつくので、ちょっと分かりづらい。
計算式
ノート
サンプルデータで動きを見てみる。
Rで準備したデータ。3期で1サイクルの何らかのデータ。特に値に意味はない。
ads <- data.frame( AVAL=c(10,8,6,10,7,5,9,8,5,10,8,5) )
自己相関と自己共分散は acf 関数 で計算できる。
plot=FALSEにするとコンソールに自己相関などの値を出してくれ、
plot=TRUEにするとコレログラムを描画してくれる。
acf(ads, plot=F, type="correlation") #-- 自己相関 acf(ads, plot=F, type="covariance") #-- 自己共分散 #-- 自己偏相関もある(type="partial")
plot=FASEで出した結果。
> acf(ads, plot=F, type="correlation") Autocorrelations of series ‘ads’, by lag 0 1 2 3 4 5 6 7 8 9 10 1.000 -0.322 -0.466 0.695 -0.208 -0.436 0.465 -0.032 -0.283 0.235 -0.002 > acf(ads, plot=F, type="covariance") Autocovariances of series ‘ads’, by lag 0 1 2 3 4 5 6 7 8 9 10 3.57639 -1.15336 -1.66782 2.48438 -0.74537 -1.55845 1.66319 -0.11516 -1.01157 0.84201 -0.00579
plot=TRUEで出したコレログラム(自己相関のみ掲載)。
これらは時期 t とそこから s 期分ずらした時期 t-s(LAG s)の AVAL について相関や共分散を出している。
つまり、過去のどの時点と関係性があるかを示すことができる。
今回の架空データは3期で1サイクルのため、特に LAG 3 に中程度以上の相関がみられる。
LAG 0 は現時点と現時点を見比べるため、当然ながら自己相関=1になる。
これを見ることで周期性を探れる。
Excelで計算方法を見てみる。
緑列は基本情報。
timeは時間単位、AVALは本記事の最初に示したもの。
偏差と偏差平方は、例えば、time=1 では AVAL=10、AVALの平均≒7.58 のため、
偏差=(10 - 7.58)=2.42、偏差平方=2.422≒5.84 になる。
黄色列は偏差積。
例えば、LAG 1 の time=2 は1期前の time=1 との偏差積をとり、0.42×2.42≒1.007 になる。
LAG 2 の time=3 は、2時期ずらして time=1 との偏差積をとり、(-1.6)×2.42≒-3.826 となる。
最後に青列は、自己共分散と自己相関。
黄色列の LAG s をそれぞれ総和(偏差積和)して、N=12 で割ったものが自己共分散。
LAG0 は分散 Var[AVAL]≒3.5764 になる。
そして、LAG s の偏差積和 ÷ AVALの偏差平方和、もしくは LAG s の共分散 ÷ 分散 Var[AVAL] とすれば、LAG s の自己相関になる。
今回はここまで。