Как рассчитать автокорреляцию в R

Как рассчитать автокорреляцию в R

Автокорреляция измеряет степень сходства между временным рядом и его запаздывающей версией в течение последовательных интервалов времени.

Его также иногда называют «последовательной корреляцией» или «запаздывающей корреляцией», поскольку он измеряет взаимосвязь между текущими значениями переменной и ее историческими значениями.

Когда автокорреляция во временном ряду высока, становится легко предсказать будущие значения, просто ссылаясь на прошлые значения.

Как рассчитать автокорреляцию в R

Предположим, у нас есть следующий временной ряд в R, который показывает значение определенной переменной в течение 15 различных периодов времени:

#define data
x <- c(22, 24, 25, 25, 28, 29, 34, 37, 40, 44, 51, 48, 47, 50, 51)

Мы можем рассчитать автокорреляцию для каждого лага во временном ряду, используя функцию acf() из библиотеки tseries :

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

Мы можем построить функцию автокорреляции для временного ряда в R, просто не используя аргумент pl=FALSE :

#plot autocorrelation function
acf(x)
Автокорреляция в R

По оси X отображается количество задержек, а по оси Y — автокорреляция при этом количестве задержек. По умолчанию график начинается с запаздывания = 0, а автокорреляция всегда будет равна 1 при запаздывании = 0.

Вы также можете указать другой заголовок для графика, используя основной аргумент:

#plot autocorrelation function with custom title
acf(x, main='Autocorrelation by Lag') 
График автокорреляции в R

Дополнительные ресурсы

Как рассчитать автокорреляцию в Python
Как рассчитать автокорреляцию в Excel

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.