Как выполнить тест причинности грейнджера в r


Тест причинности Грейнджера используется, чтобы определить, полезен ли один временной ряд для прогнозирования другого.

В этом тесте используются следующие нулевые и альтернативные гипотезы:

Нулевая гипотеза (H 0 ): временной ряд x не приводит к временному ряду y Грейнджеру.

Альтернативная гипотеза ( HA ): Временной ряд x Временной ряд причин Грейнджер y

Термин «причины Грейнджера» означает, что знание значения временного ряда x с определенной задержкой полезно для прогнозирования значения временного ряда y в более поздний период.

Этот тест дает статистику F-теста с соответствующим значением p. Если значение p ниже определенного уровня значимости (т. е. α = 0,05), то мы можем отвергнуть нулевую гипотезу и заключить, что у нас есть достаточно доказательств, чтобы утверждать, что временной ряд x Грейнджер вызывает временной ряд y.

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

grangertest(x, y, порядок = 1)

Золото:

  • x: первый временной ряд
  • y: второй временной ряд
  • порядок: количество смещений, которые будут использоваться в первом временном ряду. Значение по умолчанию — 1.

Следующий пошаговый пример показывает, как использовать эту функцию на практике.

Шаг 1: Определите два временных ряда

В этом примере мы будем использовать набор данных ChickEgg , предварительно загруженный в пакет lmtest. Значения этого набора данных содержат количество произведенных яиц, а также количество кур в Соединенных Штатах с 1930 по 1983 год:

 #load lmtest package
library (lmtest)

#load ChickEgg dataset
data(ChickEgg)

#view first six rows of dataset
head(ChickEgg)

     chicken egg
[1,] 468491 3581
[2,] 449743 3532
[3,] 436815 3327
[4,] 444523 3255
[5,] 433937 3156
[6,] 389958 3081

Шаг 2. Проведите тест причинно-следственной связи Грейнджера.

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

 #perform Granger-Causality test
grangertest(chicken ~ egg, order = 3 , data = ChickEgg)

Granger causality test

Model 1: chicken ~ Lags(chicken, 1:3) + Lags(egg, 1:3)
Model 2: chicken ~ Lags(chicken, 1:3)
  Res.Df Df F Pr(>F)   
1 44                     
2 47 -3 5.405 0.002966 **
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Вот как интерпретировать результат:

  • Модель 1. Эта модель пытается спрогнозировать количество цыплят, используя количество цыплят за предыдущие три года и количество яиц за предыдущие три года в качестве предикторных переменных.
  • Модель 2: Эта модель пытается спрогнозировать количество цыплят, используя в качестве предикторных переменных только количество цыплят за предыдущие три года.
  • F: Это статистика F-теста. Получается 5,405.
  • Pr(>F): это значение p, соответствующее статистике F-теста. Оказывается, это 0,002966.

Поскольку значение p меньше 0,05, мы можем отвергнуть нулевую гипотезу теста и сделать вывод, что знание количества яиц полезно для прогнозирования будущего количества кур.

Шаг 3. Проведите тест на причинно-следственную связь Грейнджера в обратном порядке.

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

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

 #perform Granger-Causality test in reverse
grangertest(egg ~ chicken, order = 3 , data = ChickEgg)

Granger causality test

Model 1: egg ~ Lags(egg, 1:3) + Lags(chicken, 1:3)
Model 2: egg ~ Lags(egg, 1:3)
  Res.Df Df F Pr(>F)
1 44                 
2 47 -3 0.5916 0.6238

P-значение теста составляет 0,6238. Поскольку это не меньше 0,05, мы не можем отвергнуть нулевую гипотезу. Другими словами, количество кур не предсказывает будущее количество яиц.

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

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

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