首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >plm与lfe中的聚类标准误差

plm与lfe中的聚类标准误差
EN

Stack Overflow用户
提问于 2015-05-08 05:00:01
回答 1查看 8.4K关注 0票数 11

当我使用plmlfe运行集群标准错误面板规范时,我得到的结果在第二个重要数字上有所不同。有谁知道他们对SE的计算有什么不同吗?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-08 07:27:43

差别在于自由度的调整。这是通常的第一猜测时,寻找不同的应该是相似的标准错误(例如,Different Robust Standard Errors of Logit Regression in Stata and R)。在这里,当比较来自(1) plm+vcovHC,(2) felm,(3) lm+cluster.vcov (来自package multiwayvcov)的结果时,可以说明这个问题。

首先,我重新设计了所有的模型:

代码语言:javascript
复制
m1 <- plm(y ~ x, data = mydata, index = c("facX", "state"),
  effect = "individual", model = "within")
m2 <- felm(y ~ x | facX | 0 | facX, data = mydata)
m3 <- lm(y ~ facX + x, data = mydata)

所有这些都导致了相同的系数估计。对于m3,固定效果是显式报告的,而不是m1m2。因此,对于m3,仅用tail(..., 1)提取最后一个系数。

代码语言:javascript
复制
all.equal(coef(m1), coef(m2))
## [1] TRUE
all.equal(coef(m1), tail(coef(m3), 1))
## [1] TRUE

非稳健的标准误差也是一致的。

代码语言:javascript
复制
se <- function(object) tail(sqrt(diag(object)), 1)
se(vcov(m1))
##          x 
## 0.07002696 
se(vcov(m2))
##          x 
## 0.07002696 
se(vcov(m3))
##          x 
## 0.07002696 

当比较聚类标准错误时,我们现在可以显示felm使用自由度校正,而plm没有:

代码语言:javascript
复制
se(vcovHC(m1))
##          x 
## 0.06572423 
m2$cse
##          x 
## 0.06746538 
se(cluster.vcov(m3, mydata$facX))
##          x 
## 0.06746538 
se(cluster.vcov(m3, mydata$facX, df_correction = FALSE))
##          x 
## 0.06572423 
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30116099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档