R で自己相関を計算する方法
自己相関は、連続する時間間隔にわたる時系列とそれ自体の時間差バージョンとの間の類似性の度合いを測定します。
変数の現在値とその過去の値の間の関係を測定するため、「逐次相関」または「遅れ相関」と呼ばれることもあります。
時系列における自己相関が高いと、過去の値を参照するだけで将来の値を予測しやすくなります。
R で自己相関を計算する方法
R に、15 の異なる期間における特定の変数の値を示す次の時系列があるとします。
#define data
x <- c(22, 24, 25, 25, 28, 29, 34, 37, 40, 44, 51, 48, 47, 50, 51)
tseriesライブラリのacf()関数を使用して、時系列の各ラグの自己相関を計算できます。
library (tseries) #calculate autocorrelations acf(x, pl= FALSE ) 0 1 2 3 4 5 6 7 8 9 10 1.000 0.832 0.656 0.491 0.279 0.031 -0.165 -0.304 -0.401 -0.458 -0.450 11 -0.369
結果を解釈する方法は次のとおりです。
- ラグ 0 での自己相関は1です。
- ラグ 1 での自己相関は0.832です。
- ラグ 2 での自己相関は0.656です。
- ラグ 3 での自己相関は0.491です。
等々。
lag引数を使用して、表示するラグの数を指定することもできます。
#calculate autocorrelations up to lag=5 acf(x, lag=5, pl= FALSE ) Autocorrelations of series 'x', by lag 0 1 2 3 4 5 1.000 0.832 0.656 0.491 0.279 0.031
R で自己相関関数をプロットする方法
引数pl=FALSEを使用しないだけで、R で時系列の自己相関関数をプロットできます。
#plot autocorrelation function
acf(x)
X 軸はラグの数を表示し、Y 軸はそのラグの数での自己相関を表示します。デフォルトでは、プロットはラグ = 0 で開始され、自己相関はラグ = 0 で常に1になります。
main引数を使用して、プロットに別のタイトルを指定することもできます。
#plot autocorrelation function with custom title acf(x, main=' Autocorrelation by Lag ')