Interpretatie van Breusch-Pagan test bptest () in R

Ik was een beetje in de war over de interpretatie van bptest in R (library(lmtest)). De nulhypothese van bptest is dat de residuen een constante variantie hebben. Een p-waarde van minder dan 0,05 zou dus betekenen dat de homoscedasticiteitsaanname zou moeten worden verworpen. Maar op deze website:

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

vond ik de volgende resultaten die me verwarren:

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

Een p-waarde> 0,05 geeft aan dat de nulhypothese (de variantie is onveranderlijk in het residu) kan zijn afgewezen en daarom bestaat heterscedasticiteit. Dit kan worden bevestigd door een globale validatie van lineaire modelaannames (gvlma) uit te voeren op het lm-object.

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! 

Dus waarom is dit het geval dat een p-waarde> 0,05 betekent dat je de nulhypothese moet verwerpen, terwijl een p-waarde kleiner dan 0,05 in feite aangeeft dat je de nulhypothese moet verwerpen?

Antwoord

Dit zou een typefout moeten zijn op rstatistics.net. U hebt gelijk dat de nulhypothese van de Breusch-Pagan-test homoscedasticiteit is (= variantie is niet afhankelijk van hulpregressoren). Als de $ p $ -waarde “klein” wordt, wordt de nulhypothese afgewezen.

Ik zou aanraden om contact op te nemen met de auteurs van rstatistics.net over dit probleem om te zien of ze het ermee eens zijn en het oplossen.

Merk bovendien op dat glvma() standaard een andere hulpregressor gebruikt dan bptest() en studentisering uitschakelt. Nauwkeuriger gezegd, u kunt de verschillen zien als u de resultaten repliceert door de argumenten van bptest() expliciet in te stellen.

Het model wordt gegeven door:

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

De standaardinstelling die wordt gebruikt door bptest() gebruikt vervolgens dezelfde aanvullende regressors als het model, dwz speed in dit geval. Het maakt ook gebruik van de studentgerichte versie met verbeterde finite-sample-eigenschappen die een niet-significant resultaat opleveren.

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

De glvma() schakelt studentisering uit en controleert op een lineaire trend in de varianties.

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 

Zoals je kunt zien zijn beide $ p $ -waarden vrij klein, maar aan verschillende kanten van 5%. De studentgerichte versies zijn beide iets meer dan 5%.

Reacties

  • Het is echter vreemd dat glvma zegt " Veronderstellingen NIET! " in de laatste rij, terwijl het in feite is gebaseerd op de p-waarde van bptest() aan de aanname moet worden voldaan.
  • Ik ' heb mijn antwoord bijgewerkt om uit te leggen dat het ' s enigszins verschillende variaties van de Breusch-Pagan-test die leiden tot enigszins verschillende p-waarden aan verschillende kanten van 5%. Ik ' ben niet dol op de beslissingslabels in glvma, deze zijn slechter dan significantiesterren en geven aan dat de p-waarde van 5,1% is fundamenteel anders dan 4,9%.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *