Was ist der Unterschied zwischen diesen beiden Breusch-Pagan-Tests?


9

Wenn ich R für einige Daten verwende und versuche festzustellen, ob meine Daten heteroskedastisch sind oder nicht, habe ich zwei Implementierungen des Breusch-Pagan-Tests gefunden, bptest (Paket lmtest) und ncvTest (Paketauto). Diese führen jedoch zu unterschiedlichen Ergebnissen. Was ist der Unterschied zwischen den beiden? Wann sollten Sie sich für das eine oder andere entscheiden?

> model <- lm(y ~ x)
> bp <- bptest(model)
> bp
studentized Breusch-Pagan test

data:  model 
BP = 3.3596, df = 1, p-value = 0.06681

> ncvTest(model)
Non-constant Variance Score Test 
Variance formula: ~ fitted.values 
Chisquare = 3.858704    Df = 1     p = 0.04948855 

Dieses Beispiel zeigt, dass meine Daten gemäß den Tests in einem Fall heteroskedastisch und in dem anderen Fall homoskedastisch sind. Ich habe diese Frage hier gefunden, so dass bptest möglicherweise studentisiert wird und ncvTest möglicherweise nicht. Was bedeutet das dann?

Antworten:


9

Ihre Vermutung ist richtig, ncvTestfü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 lmtestund carauf weitere Details überprüfen .)

ξξ^

ξ^=λξ,λ=Var(ε2)2Var(ε)2.

Hier ist ein Codeausschnitt, der zeigt, was ich gerade geschrieben habe (Daten aus dem farawayPaket):

> 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:

  1. Die asymptotische Kraft des Breusch- und Pagan-Tests ist äußerst empfindlich gegenüber der Kurtosis der Verteilung von undε
  2. 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.


2
Allerdings gibt es einen weiteren Unterschied: ncvTestund bptestverschiedene Variablen verwenden , um die Residuen zu erklären, siehe Argumente var.formulaund varformulasind. Die Ergebnisse weichen voneinander ab, sobald Sie Ihrem Beispiel einen weiteren Regressor hinzufügen.
Helix123

@ Helix123: danke, das habe ich wohl verpasst.
Francis

2

In der Praxis wird ncvTeststandardmäßig die linke Seite der Gleichung und bpteststandardmäßig die rechte Seite verwendet.

Dies bedeutet, dass in einem Fall von Y ~ Xbeide Tests die gleichen Ergebnisse liefern (in Bezug auf die studentize = FOption von bptest). Bei einer multivariaten Analyse wie Y ~ X1 + X2sind 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 stat500aus farawayPaket):

> mdl_t = lm(final ~ midterm + hw, data = stat500)

BP-Test unter Verwendung angepasster Werte:

> ncvTest(mdl_t) # Default

Non-constant Variance Score Test 
Variance formula: ~ fitted.values 
Chisquare = 0.6509135    Df = 1     p = 0.4197863 

> bptest(mdl_t, varformula = ~ fitted.values(mdl_t), studentize = F)

Breusch-Pagan test

data:  mdl_t
BP = 0.65091, df = 1, p-value = 0.4198

BP-Test unter Verwendung einer linearen Kombination von Prädiktoren:

> ncvTest(mdl_t, var.formula = ~ midterm + hw)
Non-constant Variance Score Test 
Variance formula: ~ midterm + hw 
Chisquare = 0.7689743    Df = 2     p = 0.6807997 

> bptest(mdl_t, studentize = F) # Default

Breusch-Pagan test

data:  mdl_t
BP = 0.76897, df = 2, p-value = 0.6808

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 hwVariable:

> ncvTest(mdl_t, var.formula = ~ hw)
Non-constant Variance Score Test 
Variance formula: ~ hw 
Chisquare = 0.04445789    Df = 1     p = 0.833004 

> bptest(mdl_t, varformula = ~ stat500$hw, studentize = F)

Breusch-Pagan test

data:  mdl_t
BP = 0.044458, df = 1, p-value = 0.833

Wie @Francis zusammenfasste: "Kurz gesagt, der studentisierte BP-Test ist robuster als der ursprüngliche", gehe ich normalerweise bptestmit studentize = TRUE(Standard) und varformula = ~ fitted.values(my.lm)als Optionen für einen ersten Ansatz zur Homoskedastizität vor.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.