Как рассчитать взаимную корреляцию в r


Взаимная корреляция — это способ измерения степени сходства между временным рядом и лаговой версией другого временного ряда.

Этот тип корреляции полезен для расчета, поскольку он может сказать нам, являются ли значения в одном временном ряду прогнозирующими будущие значения в другом временном ряду. Другими словами, он может сказать нам, является ли один временной ряд опережающим индикатором для другого временного ряда.

Этот тип корреляции используется во многих различных областях, в том числе:

Экономика: Индекс потребительского доверия (CCI) считается ведущим индикатором валового внутреннего продукта (ВВП) страны. Например, если CCI высок в данный месяц, ВВП, вероятно, будет выше x месяцев спустя.

Предприятия. Расходы на маркетинг часто считаются ведущим индикатором будущих доходов бизнеса. Например, если компания тратит необычно большую сумму денег на маркетинг в течение одного квартала, то общий доход должен быть высоким через x кварталов.

Биология: Общее загрязнение океана считается основным индикатором численности определенного вида черепах. Например, если загрязнение выше в данном году, ожидается, что общая популяция черепах уменьшится через x лет.

В следующем примере показано, как вычислить взаимную корреляцию между двумя временными рядами в R.

Пример: Как рассчитать взаимную корреляцию в R

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

 #define data
marketing <- c(3, 4, 5, 5, 7, 9, 13, 15, 12, 10, 8, 8)
revenue <- c(21, 19, 22, 24, 25, 29, 30, 34, 37, 40, 35, 30)

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

 #calculate cross correlation
ccf(marketing, revenue)

Взаимная корреляция в R

На этой диаграмме показана корреляция между двумя временными рядами с разными лагами.

Чтобы отобразить фактические значения корреляции, мы можем использовать следующий синтаксис:

 #display cross correlation values
print (ccf(marketing, revenue))

Autocorrelations of series 'X', by lag

    -7 -6 -5 -4 -3 -2 -1 0 1 2 3 
-0.430 -0.351 -0.190 0.123 0.489 0.755 0.868 0.771 0.462 0.194 -0.061 
     4 5 6 7 
-0.282 -0.445 -0.492 -0.358

Вот как интерпретировать этот вывод:

  • Взаимная корреляция при задержке 0 равна 0,771 .
  • Взаимная корреляция при задержке 1 равна 0,462 .
  • Взаимная корреляция при задержке 2 равна 0,194 .
  • Взаимная корреляция при задержке 3 равна -0,061 .

И так далее.

Обратите внимание, что корреляция между двумя временными рядами весьма положительная с лагами от -2 до 2, что говорит нам о том, что маркетинговые расходы в данном месяце вполне прогнозируют доход через один и два месяца.

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

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

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

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

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