Tolkning av Breusch-Pagan test bptest () i R

Jeg var litt forvirret angående tolkningen av bptest i R (library(lmtest)). Nullhypotesen til bptest er at restene har konstant varians. Så, en p-verdi mindre enn 0,05 vil bety at antagelsen om homoscedasticity måtte avvises. Imidlertid på dette nettstedet:

http://rstatistics.net/how-to-test-a-regression-model-for-heteroscedasticity-and-if-present-how-to-correct-it/

Jeg fant følgende resultater som forvirrer meg:

data: lmMod BP = 3.2149, df = 1, p-value = 0.07297 

En p-verdi> 0,05 indikerer at nullhypotesen (variansen er uendret i resten) kan være avvist og derfor eksisterer heterscedasticity. Dette kan bekreftes ved å kjøre en global validering av lineære modellforutsetninger (gvlma) på lm-objektet.

gvlma(lmMod) # validate if assumptions of linear regression holds true. # Call: gvlma(x = lmMod) Value p-value Decision Global Stat 15.801 0.003298 Assumptions NOT satisfied! Skewness 6.528 0.010621 Assumptions NOT satisfied! Kurtosis 1.661 0.197449 Assumptions acceptable. Link Function 2.329 0.126998 Assumptions acceptable. Heteroscedasticity 5.283 0.021530 Assumptions NOT satisfied! 

Så hvorfor er det tilfelle at en p-verdi> 0,05 betyr at du må avvise nullhypotesen, mens faktisk en p-verdi mindre enn 0,05 indikerer at du må avvise nullhypotesen?

Svar

Dette burde være en skrivefeil på rstatistics.net. Du har rett i at nullhypotesen til Breusch-Pagan-testen er homoscedasticity (= varians avhenger ikke av hjelperegressorer). Hvis $ p $ -verdien blir «liten», blir nullhypotesen avvist.

Jeg vil anbefale å kontakte forfatterne av rstatistics.net angående dette problemet for å se om de er enige og fikser det.

Vær også oppmerksom på at glvma() benytter en annen hjelpe-regressor enn bptest() som standard og slår av studentisering. Mer presist, du kan se forskjellene hvis du replikerer resultatene ved å angi argumentene til bptest() eksplisitt.

Modellen er gitt av:

data("cars", package = "datasets") lmMod <- lm(dist ~ speed, data = cars) 

Standardverdien som brukes av bptest() bruker deretter de samme tilleggsregressorene som modellen, dvs. speed i dette tilfellet. Den bruker også den studentiserte versjonen med forbedrede endelige prøveegenskaper som gir et ikke-signifikant resultat.

library("lmtest") bptest(lmMod, ~ speed, data = cars, studentize = TRUE) ## studentized Breusch-Pagan test ## ## data: lmMod ## BP = 3.2149, df = 1, p-value = 0.07297 

Derimot glvma() slår av studentisering og sjekker for en lineær trend i avvikene.

cars$trend <- 1:nrow(cars) bptest(lmMod, ~ trend, data = cars, studentize = FALSE) ## Breusch-Pagan test ## ## data: lmMod ## BP = 5.2834, df = 1, p-value = 0.02153 

Som du ser er begge $ p $ -verdiene ganske små, men på forskjellige sider på 5%. De studentiserte versjonene ligger begge litt over 5%.

Kommentarer

  • Det er imidlertid rart at glvma sier " Forutsetninger IKKE oppfylt! " i siste rad, når det faktisk er basert på p-verdien til bptest() antagelsen skal oppfylles.
  • Jeg ' har oppdatert svaret mitt for å forklare at det ' s litt forskjellige variasjoner av Breusch-Pagan-testen som fører til litt forskjellige p-verdier på forskjellige sider på 5%. Jeg ' er ikke glad i avgjørelsesetikettene i glvma, disse er verre enn betydningsstjerner og formidler at p-verdien på 5,1% er fundamentalt annerledes enn 4,9%.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *