在具有集群标准错误的 felm 结果上使用 broom::tidy
Using broom::tidy on felm result with clustered standard errors
我正在尝试从面板数据模型中提取点估计和置信区间。以下使用 lfe
文档中的固定示例重现错误。我所做的唯一小改动是在公司级别对标准错误进行聚类,以在 est2
.
中复制我的问题
## create covariates
x <- rnorm(1000)
x2 <- rnorm(length(x))
## individual and firm
id <- factor(sample(20,length(x),replace=TRUE))
firm <- factor(sample(13,length(x),replace=TRUE))
## effects for them
id.eff <- rnorm(nlevels(id))
firm.eff <- rnorm(nlevels(firm))
## left hand side
u <- rnorm(length(x))
y <- x + 0.5*x2 + id.eff[id] + firm.eff[firm] + u
## estimate and print result
est1 <- felm(y ~ x+x2| id + firm)
summary(est1)
## estimate and print result with clustered std errors
est2 <- felm(y ~ x+x2| id + firm | 0 | firm)
summary(est2)
我可以在非集群 SE 版本或 没有 包括固定效果的情况下整理:
tidy(est1)
tidy(est2)
tidy(est1, fe = TRUE)
但是如果我要求固定效果,我不能:
tidy(est2, fe = TRUE)
错误是这样的:Error in overscope_eval_next(overscope, expr) : object 'se' not found
我不确定这是 broom
的问题还是 lfe
的问题。有可能我做错了什么,但无论我是否对 SE 进行聚类,固定效应都应该有点估计和标准误差。 (集群比 FE 少的事实可能是一个计量经济学问题,但它似乎并没有导致这个特定问题。)有什么建议吗?
这里的问题是,根据其帮助页面,lfe::getfe()
应该 return 列 c('effect','se','obs','comp','fe','idx')
。但是,如果您 运行
lfe::getfe(est1, se = TRUE)
和
lfe::getfe(est2, se = TRUE)
在第二种情况下,标准错误位于名为 clusterse
而不是 se
的列中。
错误消息是函数 broom:::tidy.felm
使用 lfe::getfe()
然后 dplyr::select(se)
的结果。
我想从技术上讲这是一个 lfe
问题,但我不确定哪个包更容易修改
更新:我给 Simen Gaure(软件包作者)发了邮件,他会在这个 spring
的某个时候发布到 CRAN
我正在尝试从面板数据模型中提取点估计和置信区间。以下使用 lfe
文档中的固定示例重现错误。我所做的唯一小改动是在公司级别对标准错误进行聚类,以在 est2
.
## create covariates
x <- rnorm(1000)
x2 <- rnorm(length(x))
## individual and firm
id <- factor(sample(20,length(x),replace=TRUE))
firm <- factor(sample(13,length(x),replace=TRUE))
## effects for them
id.eff <- rnorm(nlevels(id))
firm.eff <- rnorm(nlevels(firm))
## left hand side
u <- rnorm(length(x))
y <- x + 0.5*x2 + id.eff[id] + firm.eff[firm] + u
## estimate and print result
est1 <- felm(y ~ x+x2| id + firm)
summary(est1)
## estimate and print result with clustered std errors
est2 <- felm(y ~ x+x2| id + firm | 0 | firm)
summary(est2)
我可以在非集群 SE 版本或 没有 包括固定效果的情况下整理:
tidy(est1)
tidy(est2)
tidy(est1, fe = TRUE)
但是如果我要求固定效果,我不能:
tidy(est2, fe = TRUE)
错误是这样的:Error in overscope_eval_next(overscope, expr) : object 'se' not found
我不确定这是 broom
的问题还是 lfe
的问题。有可能我做错了什么,但无论我是否对 SE 进行聚类,固定效应都应该有点估计和标准误差。 (集群比 FE 少的事实可能是一个计量经济学问题,但它似乎并没有导致这个特定问题。)有什么建议吗?
这里的问题是,根据其帮助页面,lfe::getfe()
应该 return 列 c('effect','se','obs','comp','fe','idx')
。但是,如果您 运行
lfe::getfe(est1, se = TRUE)
和
lfe::getfe(est2, se = TRUE)
在第二种情况下,标准错误位于名为 clusterse
而不是 se
的列中。
错误消息是函数 broom:::tidy.felm
使用 lfe::getfe()
然后 dplyr::select(se)
的结果。
我想从技术上讲这是一个 lfe
问题,但我不确定哪个包更容易修改
更新:我给 Simen Gaure(软件包作者)发了邮件,他会在这个 spring
的某个时候发布到 CRAN