当我使用plm
和lfe
运行一个集群标准误面板规范时,我得到的结果在第二有效数字处不同。有人知道它们计算标准误差的差异吗?
set.seed(572015)
library(lfe)
library(plm)
library(lmtest)
# clustering example
x <- c(sapply(sample(1:20), rep, times = 1000)) + rnorm(20*1000, sd = 1)
y <- 5 + 10*x + rnorm(20*1000, sd = 10) + c(sapply(rnorm(20, sd = 10), rep, times = 1000))
facX <- factor(sapply(1:20, rep, times = 1000))
mydata <- data.frame(y=y,x=x,facX=facX, state=rep(1:1000, 20))
model <- plm(y ~ x, data = mydata, index = c("facX", "state"), effect = "individual", model = "within")
plmTest <- coeftest(model,vcov=vcovHC(model,type = "HC1", cluster="group"))
lfeTest <- summary(felm(y ~ x | facX | 0 | facX))
data.frame(lfeClusterSE=lfeTest$coefficients[2],
plmClusterSE=plmTest[2])
lfeClusterSE plmClusterSE
1 0.06746538 0.06572588
sandwich
本身不提供聚类标准误差。sandwich
包背后的所有理论细节也都记录在两个vignettes中。 - Achim Zeileissandwich
中也提供了聚类协方差。来自multiwayvcov
的cluster.vcov()
函数已被重写和扩展,并作为vcovCL()
纳入sandwich
中。请参见https://CRAN.R-project.org/web/packages/sandwich/vignettes/sandwich-CL.pdf。 - Achim Zeileis