Как рассчитать автокорреляцию в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *