L'ANOVA dans les modèles de régression linéaire est équivalente au test de Wald (et au test du rapport de vraisemblance) des modèles imbriqués correspondants. Ainsi, lorsque vous souhaitez effectuer le test correspondant à l'aide d'erreurs standard à hétéroscédasticité cohérente (HC), cela ne peut pas être obtenu à partir d'une décomposition des sommes des carrés, mais vous pouvez effectuer le test de Wald à l'aide d'une estimation de covariance HC. Cette idée est utilisée à la fois Anova()
et linearHypothesis()
de l' car
emballage et coeftest()
et waldtest()
du lmtest
paquet. Les trois derniers peuvent également être utilisés avec des plm
objets.
Un exemple simple (quoique peu intéressant / significatif) est le suivant. Nous utilisons le modèle standard de la ?plm
page de manuel et voulons effectuer un test de Wald pour la signification des deux log(pcap)
et unemp
. Nous avons besoin de ces packages:
library("plm")
library("sandwich")
library("car")
library("lmtest")
Le modèle (sous l'alternative) est:
data("Produc", package = "plm")
mod <- plm(log(gsp) ~ log(pc) + log(emp) + log(pcap) + unemp,
data = Produc, index = c("state", "year"))
Tout d'abord, regardons les tests de Wald marginaux avec des erreurs standard HC pour tous les coefficients individuels:
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
Et puis nous effectuons un test de Wald pour les deux log(pcap)
et 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
Alternativement, nous pouvons également ajuster le modèle sous l'hypothèse nulle ( mod0
disons) sans les deux coefficients, puis appeler 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
La statistique de test et la valeur de p calculées par linearHypothesis()
et waldtest()
sont exactement les mêmes. Le formatage de l'interface et de la sortie est quelque peu différent. Dans certains cas, l'un ou l'autre est plus simple ou plus intuitif.
Remarque: Si vous fournissez une estimation de matrice de covariance (c.-à-d. Une matrice comme vocvHC(mod)
) au lieu d'un estimateur de matrice de covariance (c.-à-d. Une fonction comme vocvHC
), assurez-vous de fournir l'estimation de matrice de covariance HC du modèle sous l'alternative, c.-à-d. modèle non restreint.
plm
package ait des méthodes pour levcovHC()
générique dusandwich
package, il ne fournit pas de méthodes pourvcovHAC()
. Au lieu de cela, il estplm
livré avec ses propres fonctions dédiées au calcul des matrices de covariance dans les modèles de panneaux qui peuvent également inclure une corrélation série. VoirvcovNW()
ouvcovSCC()
en emballageplm
.vcovHAC
,vcovNW
,vcovSCC
) sont _H_eteroskedasticity et _A_utocorrelation _C_onsistent ... Voilà ce que AHC défend.Cela peut être fait avec la
Anova
fonction dans lecar
package. Voir cette excellente réponse pour plus de détails et une revue d'autres techniques pour traiter l'hétéroskédasticité en ANOVA.la source