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


Тест Гольдфельда-Квандта используется для определения наличия гетероскедастичности в регрессионной модели.

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

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

В этом руководстве представлен пошаговый пример того, как выполнить тест Гольдфельда-Квандта в R, чтобы определить, присутствует ли гетероскедастичность в данной регрессионной модели.

Шаг 1: Постройте модель регрессии

Во-первых, мы построим модель множественной линейной регрессии, используя встроенный набор данных mtcars в R:

#fit a regression model
model <- lm(mpg~disp+hp, data=mtcars)

#view model summary
summary(model)

Coefficients:
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 30.735904 1.331566 23.083 < 2e-16 \*\*\*
disp -0.030346 0.007405 -4.098 0.000306 \*\*\*
hp -0.024840 0.013385 -1.856 0.073679.
---
Signif. codes: 0 '\*\*\*' 0.001 '\*\*' 0.01 '\*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.127 on 29 degrees of freedom
Multiple R-squared: 0.7482, Adjusted R-squared: 0.7309 
F-statistic: 43.09 on 2 and 29 DF, p-value: 2.062e-09

Шаг 2. Выполните тест Гольдфельда-Квандта.

Далее мы будем использовать функцию gqtest() из пакета lmtest для выполнения теста Гольдфельда-Квандта, чтобы определить, присутствует ли гетероскедастичность.

Эта функция использует следующий синтаксис:

gqtest(модель, order.by, данные, дробь)

куда:

  • модель: Модель линейной регрессии, созданная командой lm().
  • order.by: предикторная переменная в модели.
  • данные: имя набора данных.
  • дробь*: количество центральных наблюдений, которые необходимо удалить из набора данных.

*Тест Голдфельда-Квандта работает, удаляя некоторое количество наблюдений, расположенных в центре набора данных, а затем проверяя, отличается ли разброс остатков от результирующих двух наборов данных, которые находятся по обе стороны от центральных наблюдений.

Обычно мы удаляем около 20% всех наблюдений. В этом случае у mtcars всего 32 наблюдения, поэтому мы можем удалить 7 центральных наблюдений:

#load lmtest library
library(lmtest)

#perform the Goldfeld Quandt test
gqtest(model, order.by = ~disp+hp, data = mtcars, fraction = 7)

 Goldfeld-Quandt test

data: model
GQ = 1.0316, df1 = 10, df2 = 9, p-value = 0.486
alternative hypothesis: variance increases from segment 1 to 2

Вот как интерпретировать вывод:

  • Статистика теста — 1,0316 .
  • Соответствующее значение p равно 0,486 .

Тест Гольдфельда-Квандта использует следующие нулевые и альтернативные гипотезы:

  • Null (H 0 ) : присутствует гомоскедастичность.
  • Альтернатива ( HA ): присутствует гетероскедастичность.

Поскольку p-значение не меньше 0,05, мы не можем отвергнуть нулевую гипотезу. У нас нет достаточных доказательств того, что в регрессионной модели присутствует гетероскедастичность.

Что делать дальше

Если вы не можете отвергнуть нулевую гипотезу теста Гольдфельда-Квандта, тогда гетероскедастичность отсутствует, и вы можете приступить к интерпретации результатов исходной регрессии.

Однако если вы отвергаете нулевую гипотезу, это означает, что в данных присутствует гетероскедастичность. В этом случае стандартные ошибки, показанные в выходной таблице регрессии, могут быть ненадежными.

Есть несколько распространенных способов решить эту проблему, в том числе:

1. Преобразуйте переменную ответа.

Вы можете попробовать выполнить преобразование переменной ответа, например, взять логарифм, квадратный корень или кубический корень из переменной ответа. Как правило, это может привести к исчезновению гетероскедастичности.

2. Используйте взвешенную регрессию.

Взвешенная регрессия присваивает вес каждой точке данных на основе дисперсии ее подобранного значения. По сути, это дает небольшие веса точкам данных с более высокой дисперсией, что уменьшает их квадраты невязок.

При использовании правильных весов взвешенная регрессия может устранить проблему гетероскедастичности.

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

Как выполнить множественную линейную регрессию в R
Как выполнить тест Уайта в R
Как выполнить тест Бреуша-Пагана в R

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