Fortolkning af Breusch-Pagan test bptest () i R

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:

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

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%.

Kommentarer

  • Det er dog underligt, at glvma siger " Antagelser IKKE opfyldt! " i sidste række, når det faktisk er baseret på p-værdien af bptest() antagelsen skal være opfyldt.
  • Jeg ' har opdateret mit svar for at forklare, at det ' s lidt forskellige variationer af Breusch-Pagan-testen, der fører til lidt forskellige p-værdier på forskellige sider på 5%. Jeg ' er ikke glad for beslutningsetiketterne i glvma, disse er værre end betydningsstjerner og formidler, at p-værdien på 5,1% er fundamentalt anderledes end 4,9%.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *