Як обчислити перехресну кореляцію в r
Перехресна кореляція — це спосіб вимірювання ступеня подібності між часовим рядом і лагованою версією іншого часового ряду.
Цей тип кореляції корисний для обчислення, оскільки він може сказати нам, чи є значення в одному часовому ряді прогнозними для майбутніх значень в іншому часовому ряді. Іншими словами, це може сказати нам, чи є один часовий ряд провідним показником для іншого часового ряду.
Цей тип кореляції використовується в багатьох різних областях, зокрема:
Економіка: Індекс споживчих настроїв (CCI) вважається провідним показником валового внутрішнього продукту (ВВП) країни. Наприклад, якщо CCI високий у певному місяці, ВВП, швидше за все, буде вищим через 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