Одно из ключевых допущений линейной регрессии состоит в том, что между остатками нет корреляции, т. е. остатки независимы.
Чтобы проверить автокорреляцию первого порядка, мы можем выполнить тест Дарбина-Ватсона.Однако, если мы хотим проверить автокорреляцию в более высоких порядках, нам нужно выполнить тест Бреуша-Годфри .
В этом тесте используются следующие гипотезы :
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