Die ANOVA in linearen Regressionsmodellen entspricht dem Wald-Test (und dem Likelihood-Ratio-Test) der entsprechenden verschachtelten Modelle. Wenn Sie also den entsprechenden Test mit heteroskedastizitätskonsistenten (HC) Standardfehlern durchführen möchten, kann dies nicht aus einer Zerlegung der Quadratsummen erhalten werden, sondern Sie können den Wald-Test mit einer HC-Kovarianzschätzung durchführen. Diese Idee wird sowohl in Anova()
als auch linearHypothesis()
aus dem car
Paket und coeftest()
und waldtest()
aus dem lmtest
Paket verwendet. Die letzten drei können auch mit plm
Objekten verwendet werden.
Ein einfaches (wenn auch nicht sehr interessantes / aussagekräftiges) Beispiel ist das folgende. Wir verwenden das Standardmodell aus der ?plm
Handbuchseite und möchten einen Wald-Test für die Bedeutung von log(pcap)
und durchführen unemp
. Wir brauchen diese Pakete:
library("plm")
library("sandwich")
library("car")
library("lmtest")
Das Modell (unter der Alternative) ist:
data("Produc", package = "plm")
mod <- plm(log(gsp) ~ log(pc) + log(emp) + log(pcap) + unemp,
data = Produc, index = c("state", "year"))
Betrachten wir zunächst die marginalen Wald-Tests mit HC-Standardfehlern für alle einzelnen Koeffizienten:
coeftest(mod, vcov = vcovHC)
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
log(pc) 0.2920069 0.0617425 4.7294 2.681e-06 ***
log(emp) 0.7681595 0.0816652 9.4062 < 2.2e-16 ***
log(pcap) -0.0261497 0.0603262 -0.4335 0.66480
unemp -0.0052977 0.0024958 -2.1226 0.03411 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Und dann führen wir einen Wald-Test für beide durch log(pcap)
und unemp
:
linearHypothesis(mod, c("log(pcap)", "unemp"), vcov = vcovHC)
Linear hypothesis test
Hypothesis:
log(pcap) = 0
unemp = 0
Model 1: restricted model
Model 2: log(gsp) ~ log(pc) + log(emp) + log(pcap) + unemp
Note: Coefficient covariance matrix supplied.
Res.Df Df Chisq Pr(>Chisq)
1 766
2 764 2 7.2934 0.02608 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Alternativ können wir das Modell auch unter die Nullhypothese ( mod0
sagen wir) ohne die beiden Koeffizienten anpassen und dann aufrufen waldtest()
:
mod0 <- plm(log(gsp) ~ log(pc) + log(emp),
data = Produc, index = c("state", "year"))
waldtest(mod0, mod, vcov = vcovHC)
Wald test
Model 1: log(gsp) ~ log(pc) + log(emp)
Model 2: log(gsp) ~ log(pc) + log(emp) + log(pcap) + unemp
Res.Df Df Chisq Pr(>Chisq)
1 766
2 764 2 7.2934 0.02608 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Die von linearHypothesis()
und berechnete Teststatistik und der p-Wert waldtest()
sind genau gleich. Nur die Formatierung der Benutzeroberfläche und der Ausgabe ist etwas anders. In einigen Fällen ist das eine oder andere einfacher oder intuitiver.
Hinweis: Wenn Sie vocvHC(mod)
anstelle eines Kovarianzmatrixschätzers (dh einer Funktion wie vocvHC
) eine Kovarianzmatrixschätzung (dh eine Matrix wie ) angeben , stellen Sie sicher, dass Sie die HC-Kovarianzmatrixschätzung des Modells unter der Alternative, dh der nicht eingeschränktes Modell.
plm
Paket Methoden für dasvcovHC()
Generikum aus demsandwich
Paket enthält, bietet es keine Methoden fürvcovHAC()
. Wird stattdessenplm
mit eigenen Funktionen zur Berechnung von Kovarianzmatrizen in Panel-Modellen geliefert, die möglicherweise auch eine serielle Korrelation enthalten. SiehevcovNW()
odervcovSCC()
im Paketplm
.vcovHAC
,vcovNW
,vcovSCC
) sind _H_eteroskedasticity und _A_utocorrelation _C_onsistent ... das ist , was HAC steht.Dies kann mit der
Anova
Funktion imcar
Paket erfolgen. In dieser ausgezeichneten Antwort finden Sie weitere Einzelheiten und einen Überblick über andere Techniken zum Umgang mit Heteroskedastizität bei ANOVA.quelle