Interpretation des Breusch-Pagan-Tests bptest () in R

Ich war etwas verwirrt hinsichtlich der Interpretation von bptest in R (library(lmtest)). Die Nullhypothese von bptest lautet, dass die Residuen eine konstante Varianz aufweisen. Ein p-Wert von weniger als 0,05 würde also bedeuten, dass die Annahme der Homoskedastizität verworfen werden müsste. Auf dieser Website jedoch:

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

Ich habe die gefunden Die folgenden Ergebnisse verwirren mich:

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

Ein p-Wert> 0,05 zeigt an, dass die Nullhypothese (die Varianz bleibt im Residuum unverändert) sein kann abgelehnt und daher besteht Heterskedastizität. Dies kann durch Ausführen einer globalen Validierung der linearen Modellannahmen (gvlma) für das lm-Objekt bestätigt werden.

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! 

Warum ist dies der Fall? dass ein p-Wert> 0,05 bedeutet, dass Sie die Nullhypothese ablehnen müssen, obwohl ein p-Wert von weniger als 0,05 anzeigt, dass Sie die Nullhypothese ablehnen müssen?

Antwort

Dies sollte ein Tippfehler auf rstatistics.net sein. Sie haben Recht, dass die Nullhypothese des Breusch-Pagan-Tests Homoskedastizität ist (= Varianz hängt nicht von Hilfsregressoren ab). Wenn der $ p $ -Wert „klein“ wird, wird die Nullhypothese zurückgewiesen.

Ich würde empfehlen, die Autoren von rstatistics.net bezüglich dieses Problems zu kontaktieren, um zu prüfen, ob sie zustimmen und es beheben.

Beachten Sie außerdem, dass glvma() einen anderen Hilfsregressor als bptest() verwendet und die Studentisierung ausschaltet. Genauer gesagt können Sie die Unterschiede erkennen, wenn Sie die Ergebnisse replizieren, indem Sie die Argumente von bptest() explizit festlegen.

Das Modell ist gegeben durch:

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

Die von bptest() verwendete Standardeinstellung verwendet dann dieselben Hilfsregressoren wie das Modell, dh speed in diesem Fall. Außerdem wird die studentisierte Version mit verbesserten Eigenschaften für endliche Stichproben verwendet, die zu einem nicht signifikanten Ergebnis führen.

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

Im Gegensatz dazu ist die glvma() schaltet die Studentisierung aus und sucht nach einem linearen Trend in den Varianzen.

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 

Wie Sie sehen können, sind beide $ p $ -Werte aber eher klein auf verschiedenen Seiten von 5%. Die studentisierten Versionen liegen beide leicht über 5%.

Kommentare

  • Es ist jedoch seltsam, dass glvma sagt " Annahmen NICHT erfüllt! " in der letzten Zeile, wenn tatsächlich basierend auf dem p-Wert von bptest() Die Annahme sollte erfüllt sein.
  • Ich ' habe meine Antwort aktualisiert, um zu erklären, dass sie ' s leicht unterschiedliche Variationen des Breusch-Pagan-Tests, die zu leicht unterschiedlichen p-Werten auf verschiedenen Seiten von 5% führen. Ich ' mag die Entscheidungsbezeichnungen in glvma nicht, diese sind schlechter als Signifikanzsterne und vermitteln, dass der p-Wert von 5,1% unterscheidet sich grundlegend von 4,9%.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.