Как выполнить тест бреуша-годфри в 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
Из результата мы видим, что статистика теста равна X2 = 8,7031 с 3 степенями свободы. Соответствующее значение p составляет 0,03351 .
Поскольку это значение p меньше 0,05, мы можем отвергнуть нулевую гипотезу и заключить, что существует автокорреляция между остатками порядка меньше или равного 3.
Как бороться с автокорреляцией
Если вы отвергнете нулевую гипотезу и придете к выводу, что в остатках присутствует автокорреляция, то у вас есть несколько вариантов исправить эту проблему, если вы считаете ее достаточно серьезной:
- Для положительной серийной корреляции рассмотрите возможность добавления в модель лагов зависимой и/или независимой переменной.
- Для отрицательной последовательной корреляции убедитесь, что ни одна из ваших переменных не имеет чрезмерной задержки .
- Для сезонной корреляции рассмотрите возможность добавления в модель сезонных переменных.
Дополнительные ресурсы
Как выполнить простую линейную регрессию в R
Как выполнить множественную линейную регрессию в R
Как выполнить тест Дурбина-Ватсона в R