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:
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%.
glvma
sier " Forutsetninger IKKE oppfylt! " i siste rad, når det faktisk er basert på p-verdien tilbptest()
antagelsen skal oppfylles.glvma
, disse er verre enn betydningsstjerner og formidler at p-verdien på 5,1% er fundamentalt annerledes enn 4,9%.