Tolkning av Breusch-Pagan test bptest () i R (Svenska)

Jag var lite förvirrad angående tolkningen av bptest i R (library(lmtest)). Nollhypotesen för bptest är att resterna har konstant varians. Så, ett p-värde mindre än 0,05 skulle innebära att antagandet om homoscedasticitet måste avvisas. Men på den här webbplatsen:

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

Jag hittade följande resultat som förvirrar mig:

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

Ett p-värde> 0,05 indikerar att nollhypotesen (variansen är oförändrad i resten) kan vara förkastas och därför finns heterscedasticitet. Detta kan bekräftas genom att köra en global validering av linjära modellantaganden (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å varför är det så att ett p-värde> 0,05 betyder att du måste avvisa nollhypotesen, när ett p-värde mindre än 0,05 i själva verket indikerar att du måste avvisa nollhypotesen?

Svara

Detta borde vara ett stavfel på rstatistics.net. Du har rätt att nollhypotesen för Breusch-Pagan-testet är homoscedasticitet (= varians beror inte på hjälpregressorer). Om $ p $ -värdet blir ”litet” avvisas nollhypotesen.

Jag rekommenderar att du kontaktar författarna till rstatistics.net angående denna fråga för att se om de är överens och fixar det.

Observera dessutom att glvma() använder en annan hjälpregressor än bptest() som standard och stänger av studentisering. Mer exakt kan du se skillnaderna om du replikerar resultaten genom att ställa in argumenten för bptest() uttryckligen.

Modellen ges av:

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

Standardvärdet som används av bptest() använder sedan samma hjälpregressorer som modellen, dvs. speed i detta fall. Den använder också den studentiserade versionen med förbättrade egenskaper för ändliga prov som ger ett icke-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 

Däremot glvma() stänger av studentisering och kontrollerar en linjär trend i avvikelserna.

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 är båda $ p $ -värdena ganska små men på olika sidor om 5%. De studentiserade versionerna ligger båda lite över 5%.

Kommentarer

  • Det är dock konstigt att glvma säger " Antaganden INTE nöjda! " i sista raden, när det faktiskt baseras på p-värdet för bptest() antagandet ska uppfyllas.
  • Jag ' har uppdaterat mitt svar för att förklara att det ' s lite olika variationer av Breusch-Pagan-testet som leder till något olika p-värden på olika sidor på 5%. Jag ' är inte förtjust i beslutetiketterna i glvma, dessa är värre än signifikanta stjärnor och förmedlar att p-värdet på 5,1% är fundamentalt annorlunda än 4,9%.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *