Jeg var lidt forvirret med hensyn til fortolkningen af bptest
i R (library(lmtest)
). Nulhypotesen for bptest
er, at residualerne har konstant varians. Så en p-værdi mindre end 0,05 ville betyde, at antagelsen om homoscedasticitet skulle afvises. Dog på dette websted:
Jeg fandt følgende resultater, der forvirrer mig:
data: lmMod BP = 3.2149, df = 1, p-value = 0.07297
En p-værdi> 0,05 indikerer, at nulhypotesen (variansen er uændret i den resterende) kan være afvist og derfor eksisterer heterscedasticitet. Dette kan bekræftes ved at køre en global validering af lineære modelantagelser (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 tilfældet at en p-værdi> 0,05 betyder, at du er nødt til at afvise nulhypotesen, når en p-værdi mindre end 0,05 faktisk indikerer, at du skal afvise nulhypotesen?
Svar
Dette burde være en tastefejl på rstatistics.net. Det er korrekt, at nulhypotesen for Breusch-Pagan-testen er homoscedasticitet (= varians afhænger ikke af hjælpere regressorer). Hvis $ p $ -værdien bliver “lille”, afvises nulhypotesen.
Jeg vil anbefale at kontakte forfatterne af rstatistics.net angående dette spørgsmål for at se, om de er enige og retter det.
Desuden skal du være opmærksom på, at glvma()
som standard anvender en anden hjælpe-regressor end bptest()
og deaktiverer studentisering. Mere præcist kan du se forskellene, hvis du replikerer resultaterne ved at indstille argumenterne for bptest()
eksplicit.
Modellen er givet af:
data("cars", package = "datasets") lmMod <- lm(dist ~ speed, data = cars)
Den standard, der anvendes af bptest()
, bruger derefter de samme hjælpe regressorer som modellen, dvs. speed
i dette tilfælde. Det bruger også den studerede version med forbedrede finite-prøveegenskaber, der giver 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
Derimod glvma()
deaktiverer studentisering og kontrollerer for en lineær tendens i afvigelser.
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 kan se, er begge $ p $ -værdier ret små, men på forskellige sider af 5%. De studerede versioner er begge lidt over 5%.
glvma
siger " Antagelser IKKE opfyldt! " i sidste række, når det faktisk er baseret på p-værdien afbptest()
antagelsen skal være opfyldt.glvma
, disse er værre end betydningsstjerner og formidler, at p-værdien på 5,1% er fundamentalt anderledes end 4,9%.