Как рассчитать взаимную корреляцию в 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)
На этой диаграмме показана корреляция между двумя временными рядами с разными лагами.
Чтобы отобразить фактические значения корреляции, мы можем использовать следующий синтаксис:
#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