2.8 自己相関

相関係数が2変数間の線形関係の強さを測るのとちょうど同じように、自己相関は時系列データとそのラグ値との線形関係の強さを測ります。

ラグ・プロットの各パネルごとに1つ自己相関係数がありますので、自己相関係数はいくつもあることになります。例えば、 \(r_{1}\)\(y_{t}\)\(y_{t-1}\) の間の関係を測り、 \(r_{2}\)\(y_{t}\)\(y_{t-2}\) の間の関係を測り、といった具合で続いて行きます。

\(r_{k}\) の値は以下のように書けます。 \[ r_{k} = \frac{\sum\limits_{t=k+1}^T (y_{t}-\bar{y})(y_{t-k}-\bar{y})} {\sum\limits_{t=1}^T (y_{t}-\bar{y})^2} \] \(T\) は時系列データの長さです。異なる\(k\)についての自己相関係数をまとめたものが自己相関関数(ACF)です。

ビール生産量データの自己相関係数は ACF()関数を使って算出できます。

recent_production %>% ACF(Beer, lag_max = 9)
#> # A tsibble: 9 x 2 [1Q]
#>     lag      acf
#>   <lag>    <dbl>
#> 1    1Q -0.0530 
#> 2    2Q -0.758  
#> 3    3Q -0.0262 
#> 4    4Q  0.802  
#> 5    5Q -0.0775 
#> 6    6Q -0.657  
#> 7    7Q  0.00119
#> 8    8Q  0.707  
#> 9    9Q -0.0888

acf 列の値が \(r_1,\dots,r_9\) に当たり、図2.19の9つの散布図のそれぞれの相関係数に相当します。ラグ\(k\)に応じて相関係数がどう変化するかを見るために通常ACFを図示します。このプロットをコレログラムと呼びます。

recent_production %>%
  ACF(Beer) %>%
  autoplot() + labs(title="オーストラリアのビール生産量")
ACFプロット: 四半期ビール生産量

図 2.20: ACFプロット: 四半期ビール生産量

このグラフでは:

  • \(r_{4}\) が他のラグよりも高い。これは山は4四半期間隔、谷も4四半期間隔という季節パターンによるものです。
  • \(r_{2}\) は他のラグより負になっている。これは山の2四半期後に谷が来る傾向があるからです。
  • 青い破線は、相関係数の値がゼロから有意に異なる(2.9節で説明します)か否かの境を示しています。

ACFプロットから見えるトレンドと季節性

データにトレンドがある場合、観測時点が近い観測値はその値も近いので、小さいラグでの自己相関係数は大きな正値になりがちです。ですから、トレンドのある時系列データのACFは正値を示す傾向があり、その値はラグが増えるにつれて小さくなります。

データに季節性がある場合、季節ラグ (季節周期の倍数) のところで他のラグ次数と比べて、自己相関係数が大きくなります。

トレンドと季節性の両方がある場合、上記の効果が組み合わさって出てきます。図2.2でプロットしたa10データはトレンドと季節性の両方を示していました。そのACFを示したのが図2.21です。ラグが増えるにつれACFがゆっくり減少しているのはトレンドが原因で、ホタテ貝の貝殻を横から見たような等間隔に盛り上がった部分がある形状は季節性のせいです。

a10 %>%
  ACF(Cost, lag_max = 48) %>%
  autoplot() +
  labs(title="オーストラリア抗糖尿病薬の売上高")
ACFプロット: 月次のオーストラリア抗糖尿病薬売上高

図 2.21: ACFプロット: 月次のオーストラリア抗糖尿病薬売上高