Ihre Vermutung ist richtig, ncvTest
führt die Originalversion des Breusch-Pagan-Tests durch. Dies kann tatsächlich durch Vergleich mit überprüft werden bptest(model, studentize = FALSE)
. (Wie @ Helix123 hervorhob, unterscheiden sich zwei Funktionen auch in anderen Aspekten wie Standardargumenten. Man sollte die Pakethandbücher von lmtest
und car
auf weitere Details überprüfen .)
ξ∗ξ^
ξ^= λ ξ∗,λ = Var( ε2)2 Var( ε )2.
Hier ist ein Codeausschnitt, der zeigt, was ich gerade geschrieben habe (Daten aus dem faraway
Paket):
> mdl = lm(final ~ midterm, data = stat500)
> bptest(mdl)
studentized Breusch-Pagan test
data: mdl
BP = 0.86813, df = 1, p-value = 0.3515
> bptest(mdl, studentize = FALSE)
Breusch-Pagan test
data: mdl
BP = 0.67017, df = 1, p-value = 0.413
> ncvTest(mdl)
Non-constant Variance Score Test
Variance formula: ~ fitted.values
Chisquare = 0.6701721 Df = 1 p = 0.4129916
>
> n = nrow(stat500)
> e = residuals(mdl)
> bpmdl = lm(e^2 ~ midterm, data = stat500)
> lambda = (n - 1) / n * var(e^2) / (2 * ((n - 1) / n * var(e))^2)
> Studentized_bp = n * summary(bpmdl)$r.squared
> Original_bp = Studentized_bp * lambda
>
> Studentized_bp
[1] 0.8681335
> Original_bp
[1] 0.6701721
Ein direkter Zitat aus dem Artikel von R. Koenker kann hilfreich sein, warum man den ursprünglichen BP-Test studieren möchte:
... Aus dieser Analyse ergeben sich zwei Schlussfolgerungen:
- Die asymptotische Kraft des Breusch- und Pagan-Tests ist äußerst empfindlich gegenüber der Kurtosis der Verteilung von undε
- Die asymptotische Größe des Tests ist nur im Sonderfall der Gaußschen Kurtosis korrekt.
Die frühere Schlussfolgerung wird in Koenker und Bassett (1981) erweitert, wo alternative, robuste Tests auf Heteroskedastizität vorgeschlagen werden. Die letztere Schlussfolgerung impliziert, dass die von Breusch und Pagan vorgeschlagenen Signifikanzniveaus nur unter Gaußschen Bedingungen auf korrekt sind
. Da solche Bedingungen im Allgemeinen im blinden Glauben angenommen werden und bekanntermaßen schwer zu überprüfen sind, wird eine Modifikation des Breusch- und Pagan-Tests vorgeschlagen, die die Teststatistik korrekt "studentisiert" und zu asymptotisch korrekten Signifikanzniveaus für eine relativ große Klasse von Verteilungen für .εε
Kurz gesagt, der studentisierte BP-Test ist robuster als der ursprüngliche.
ncvTest
undbptest
verschiedene Variablen verwenden , um die Residuen zu erklären, siehe Argumentevar.formula
undvarformula
sind. Die Ergebnisse weichen voneinander ab, sobald Sie Ihrem Beispiel einen weiteren Regressor hinzufügen.In der Praxis wird
ncvTest
standardmäßig die linke Seite der Gleichung undbptest
standardmäßig die rechte Seite verwendet.Dies bedeutet, dass in einem Fall von
Y ~ X
beide Tests die gleichen Ergebnisse liefern (in Bezug auf diestudentize = F
Option vonbptest
). Bei einer multivariaten Analyse wieY ~ X1 + X2
sind die Ergebnisse jedoch unterschiedlich. (Wie @ Helix123 hervorhob)Aus der Hilfedatei von
ncvTest : var.formula
: "Eine einseitige Formel für die Fehlervarianz; wenn weggelassen, hängt die Fehlervarianz von den angepassten Werten ab ." Dies bedeutet, dass standardmäßig die angepassten Werte verwendet werden, aber auch eine lineare Kombination der unabhängigen Variablen (X1 + X2) verwendet werden kann.Aus der Hilfedatei von
bptest : varformula
: "Standardmäßig werden die gleichen erklärenden Variablen wie im Hauptregressionsmodell verwendet."Fortsetzung des gleichen Beispiels von @Francis (Daten
stat500
ausfaraway
Paket):BP-Test unter Verwendung angepasster Werte:
BP-Test unter Verwendung einer linearen Kombination von Prädiktoren:
Die "lineare Kombinationsoption" ermöglicht die Untersuchung der Heteroskedastizität, die mit der linearen Abhängigkeit einer bestimmten unabhängigen Variablen verbunden ist. Zum Beispiel nur die
hw
Variable:Wie @Francis zusammenfasste: "Kurz gesagt, der studentisierte BP-Test ist robuster als der ursprüngliche", gehe ich normalerweise
bptest
mitstudentize = TRUE
(Standard) undvarformula = ~ fitted.values(my.lm)
als Optionen für einen ersten Ansatz zur Homoskedastizität vor.quelle