线性回归模型中的ANOVA相当于相应嵌套模型的Wald检验(和似然比检验)。因此,当您要使用异方差一致性(HC)标准误差进行相应的检验时,无法通过平方和的分解获得此误差,但是可以使用HC协方差估算进行Wald检验。这个想法是在这两个使用Anova()
并linearHypothesis()
从car
封装coeftest()
和waldtest()
从lmtest
包。后三个也可以与plm
对象一起使用。
下面是一个简单的(尽管不是很有趣/有意义)示例。我们使用来自标准模型?plm
手册页,并希望进行Wald检验两者的意义log(pcap)
和unemp
。我们需要以下软件包:
library("plm")
library("sandwich")
library("car")
library("lmtest")
该模型(在替代方法下)为:
data("Produc", package = "plm")
mod <- plm(log(gsp) ~ log(pc) + log(emp) + log(pcap) + unemp,
data = Produc, index = c("state", "year"))
首先,让我们看一下所有单个系数具有HC标准误的边际Wald检验:
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
然后我们对log(pcap)
和进行Wald测试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
另外,我们也可以在mod0
没有两个系数的情况下(假设)对模型进行拟合,然后调用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
检验统计量和p值通过计算linearHypothesis()
和waldtest()
是完全一样的。只是界面和输出格式有所不同。在某些情况下,一个或另一个更简单或更直观。
注意:如果您提供协方差矩阵估计(即像的矩阵vocvHC(mod)
)而不是协方差矩阵估计器(即像的函数vocvHC
),请确保在替代项下提供模型的HC协方差矩阵估计,即非限制性模型。