Jak wykonać test goldfelda-quandta w r
Test Goldfelda-Quandta służy do określenia, czy w modelu regresji występuje heteroskedastyczność .
Heteroskedastyczność odnosi się do nierównomiernego rozproszenia reszt na różnych poziomachzmiennej odpowiedzi w modelu regresji.
Jeśli występuje heteroskedastyczność, narusza to jedno z kluczowych założeń regresji liniowej , że reszty są równomiernie rozproszone na każdym poziomie zmiennej odpowiedzi.
W tym samouczku przedstawiono krok po kroku sposób przeprowadzenia testu Goldfelda-Quandta w języku R w celu ustalenia, czy w danym modelu regresji występuje heteroskedastyczność.
Krok 1: Utwórz model regresji
Najpierw utworzymy model regresji liniowej wielokrotnej , korzystając ze zbioru danych mtcars wbudowanego w 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 < 2nd-16 *** available -0.030346 0.007405 -4.098 0.000306 *** hp -0.024840 0.013385 -1.856 0.073679 . --- Significant. 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
Krok 2: Wykonaj test Goldfelda-Quandta
Następnie użyjemy funkcji gqtest() z pakietu lmtest w celu wykonania testu Goldfelda-Quandta w celu ustalenia, czy występuje heteroskedastyczność.
Ta funkcja wykorzystuje następującą składnię:
gqtest(model, zamówienie.by, dane, ułamek)
Złoto:
- model: Model regresji liniowej utworzony za pomocą polecenia lm().
- Order.by: zmienne predykcyjne modelu.
- dane: nazwa zbioru danych.
- ułamek*: liczba centralnych obserwacji do usunięcia ze zbioru danych.
*Test Goldfelda-Quandta polega na usunięciu szeregu obserwacji znajdujących się w środku zbioru danych, a następnie sprawdzeniu, czy rozkład reszt różni się od dwóch wynikowych zbiorów danych znajdujących się po obu stronach zbiorów danych. obserwacje centralne.
Zazwyczaj decydujemy się na usunięcie około 20% wszystkich obserwacji. W tym przypadku mtcars ma w sumie 32 obserwacje, więc możemy usunąć 7 centralnych obserwacji:
#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
Oto jak zinterpretować wynik:
- Statystyka testowa wynosi 1,0316 .
- Odpowiednia wartość p wynosi 0,486 .
Test Goldfelda-Quandta wykorzystuje następujące hipotezy zerowe i alternatywne:
- Null (H 0 ) : Homoskedastyczność jest obecna.
- Alternatywa ( HA ): Występuje heteroskedastyczność.
Ponieważ wartość p jest nie mniejsza niż 0,05, nie możemy odrzucić hipotezy zerowej. Nie mamy wystarczających dowodów, aby twierdzić, że heteroskedastyczność jest obecna w modelu regresji.
Co zrobic nastepnie
Jeśli nie odrzucisz hipotezy zerowej testu Goldfelda-Quandta, wówczas heteroskedastyczność nie występuje i możesz przystąpić do interpretacji wyniku pierwotnej regresji.
Jeśli jednak odrzucisz hipotezę zerową, oznacza to, że w danych występuje heteroskedastyczność. W takim przypadku błędy standardowe wyświetlane w tabeli wyników regresji mogą być niewiarygodne.
Istnieje kilka typowych sposobów rozwiązania tego problemu, w tym:
1. Przekształć zmienną odpowiedzi.
Możesz spróbować przeprowadzić transformację zmiennej odpowiedzi, na przykład biorąc log, pierwiastek kwadratowy lub pierwiastek sześcienny zmiennej odpowiedzi. Ogólnie rzecz biorąc, może to spowodować zanik heteroskedastyczności.
2. Zastosuj regresję ważoną.
Regresja ważona przypisuje wagę każdemu punktowi danych na podstawie wariancji jego dopasowanej wartości. Zasadniczo nadaje to niskie wagi punktom danych o większych wariancjach, zmniejszając ich kwadraty resztowe.
Przy zastosowaniu odpowiednich wag regresja ważona może wyeliminować problem heteroskedastyczności.
Dodatkowe zasoby
Jak wykonać wielokrotną regresję liniową w R
Jak wykonać test White’a w R
Jak wykonać test Breuscha-Pagana w R