A ANOVA nos modelos de regressão linear é equivalente ao teste de Wald (e o teste da razão de verossimilhança) dos modelos aninhados correspondentes. Portanto, quando você deseja realizar o teste correspondente usando erros padrão consistentes em heterocedasticidade (HC), isso não pode ser obtido a partir de uma decomposição das somas de quadrados, mas você pode executar o teste de Wald usando uma estimativa de covariância de HC. Esta ideia é usado em ambos Anova()
e linearHypothesis()
do car
pacote e coeftest()
e waldtest()
do lmtest
pacote. Os três últimos também podem ser usados com plm
objetos.
Um exemplo simples (embora não muito interessante / significativo) é o seguinte. Usamos o modelo padrão da ?plm
página de manual e queremos realizar um teste de Wald para a significância de ambos log(pcap)
e unemp
. Precisamos destes pacotes:
library("plm")
library("sandwich")
library("car")
library("lmtest")
O modelo (sob a alternativa) é:
data("Produc", package = "plm")
mod <- plm(log(gsp) ~ log(pc) + log(emp) + log(pcap) + unemp,
data = Produc, index = c("state", "year"))
Primeiro, vejamos os testes marginais de Wald com erros padrão de HC para todos os coeficientes individuais:
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
E então realizamos um teste de Wald para ambos log(pcap)
e 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
Como alternativa, também podemos ajustar o modelo sob a hipótese nula ( mod0
digamos) sem os dois coeficientes e depois chamar 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
A estatística do teste e o valor p calculados linearHypothesis()
e waldtest()
são exatamente os mesmos. Apenas a interface e a formatação da saída são um pouco diferentes. Em alguns casos, um ou outro é mais simples ou mais intuitivo.
Nota: Se você fornecer uma estimativa da matriz de covariância (ou seja, semelhante a uma matriz vocvHC(mod)
) em vez de um estimador de matriz de covariância (ou seja, uma função semelhante vocvHC
), certifique-se de fornecer a estimativa da matriz de covariância HC do modelo sob a alternativa, ou seja, modelo não restrito.