如何解决在 lm
我试图通过使用带有贬值变量的 plm()
来重现 lm()
固定效应模型中的聚类标准误差。当我运行模型时,估计是相同的,但尽管在每个 coeftest()
调用中指定了相同的集群变量,但 SE 是不同的。与在 vcov
对象中使用 plm()
相比,在 sandwich::vcovCL()
中计算 lm
的方式有什么不同吗?
使用 mtcars
数据的示例:
> library(plm)
> library(lmtest)
> library(sandwich)
>
>
> mtcars$cyl2 <- as.factor(mtcars$cyl)
> mtcars$mpg2 <- mtcars$mpg - ave(mtcars$mpg,mtcars$cyl2)
> mtcars$disp2 <- mtcars$disp - ave(mtcars$disp,mtcars$cyl2)
> mtcars$qsec2 <- mtcars$qsec - ave(mtcars$qsec,mtcars$cyl2)
>
> lm1 <- lm(mpg2 ~ disp2 + qsec2 - 1,data = mtcars)
>
> plm1 <- plm(mpg ~ disp + qsec,model = 'within',index = 'cyl2',data = mtcars)
>
> coeftest(lm1,vcov = sandwich::vcovCL(lm1,type = 'HC0',cluster = ~ cyl2))
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
disp2 -0.025860 0.014256 -1.814 0.07969 .
qsec2 -0.162425 0.071807 -2.262 0.03110 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> coeftest(plm1,vcovHC(plm1,group = 'cyl2'))
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
disp -0.02586 0.01164 -2.2217 0.03488 *
qsec -0.16243 0.05863 -2.7703 0.01001 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。