Как выполнить тест Бреуша-Годфри в R


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

Чтобы проверить автокорреляцию первого порядка, мы можем выполнить тест Дарбина-Ватсона.Однако, если мы хотим проверить автокорреляцию в более высоких порядках, нам нужно выполнить тест Бреуша-Годфри .

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

H 0 (нулевая гипотеза): нет автокорреляции в любом порядке, меньшем или равном p .

H A (альтернативная гипотеза): существует автокорреляция в некотором порядке меньшем или равном p .

Статистика теста соответствует распределению хи-квадрат с p степенями свободы.

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

Чтобы выполнить тест Бреуша-Годфри в R, мы можем использовать функцию bgtest(y ~ x, order = p) из библиотеки lmtest .

В этом руководстве представлен пример использования этого синтаксиса в R.

Пример: тест Бреуша-Годфри в R

Во-первых, давайте создадим поддельный набор данных, который содержит две переменные-предикторы (x1 и x2) и одну переменную ответа (y).

#create dataset
df <- data.frame(x1=c(3, 4, 4, 5, 8, 9, 11, 13, 14, 16, 17, 20),
 x2=c(7, 7, 8, 8, 12, 4, 5, 15, 9, 17, 19, 19),
 y=c(24, 25, 25, 27, 29, 31, 34, 34, 39, 30, 40, 49))

#view first six rows of dataset
head(df)

 x1 x2 y
1 3 7 24
2 4 7 25
3 4 8 25
4 5 8 27
5 8 12 29
6 9 4 31

Затем мы можем выполнить тест Бреуша-Годфри, используя функцию bgtest() из пакета lmtest .

В этом примере мы проверим автокорреляцию остатков в порядке p = 3:

#load lmtest package
library (lmtest)

#perform Breusch-Godfrey test
bgtest(y ~ x1 + x2, order= 3 , data=df)

 Breusch-Godfrey test for serial correlation of order up to 3

data: y ~ x1 + x2
LM test = 8.7031, df = 3, p-value = 0.03351

Из вывода мы видим, что тестовая статистика равна X 2 = 8,7031 с 3 степенями свободы. Соответствующее значение p равно 0,03351 .

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

Как справиться с автокорреляцией

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

  • Для положительной последовательной корреляции рассмотрите возможность добавления в модель лагов зависимой и/или независимой переменной.
  • Для отрицательной последовательной корреляции убедитесь, что ни одна из ваших переменных не является сверхдифференциальной .
  • Для сезонной корреляции рассмотрите возможность добавления в модель сезонных фиктивных переменных.

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

Как выполнить простую линейную регрессию в R
Как выполнить множественную линейную регрессию в R
Как выполнить тест Дарбина-Ватсона в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.