Stargazer中的集群鲁棒标准错误

时间:2017-05-17 14:19:24

标签: r lm stargazer standard-error

有谁知道如何让stargazer显示lm模型的群集SE? (以及相应的F检验?)如果可能的话,我想采用类似于使用sandwich计算异方差性 - 鲁棒SE的方法,并将其弹出stargazer,如http://jakeruss.com/cheatsheets/stargazer.html#robust-standard-errors-replicating-statas-robust-option

我正在使用lm来获取我的回归模型,而我正在按公司进行聚类(我不在回归模型中包含的因子变量)。我也有一堆NA值,这让我觉得multiwayvcov将是最好的包(请参阅landroni答案的底部 - Double clustered standard errors for panel data - 以及https://sites.google.com/site/npgraham1/research/code)?请注意,我不想使用plm

编辑:我想我找到了使用multiwayvcov包...

的解决方案
library(lmtest) # load packages
library(multiwayvcov)

data(petersen) # load data
petersen$z <- petersen$y + 0.35  # create new variable

ols1 <- lm(y ~ x, data = petersen) # create models
ols2 <- lm(y ~ x + z, data = petersen)

cl.cov1 <- cluster.vcov(ols1, data$firmid) # cluster-robust SEs for ols1
cl.robust.se.1 <- sqrt(diag(cl.cov1))
cl.wald1 <- waldtest(ols1, vcov = cl.cov1)

cl.cov2 <- cluster.vcov(ols2, data$ticker) # cluster-robust SEs for ols2
cl.robust.se.2 <- sqrt(diag(cl.cov2))
cl.wald2 <- waldtest(ols2, vcov = cl.cov2)

stargazer(ols1, ols2, se=list(cl.robust.se.1, cl.robust.se.2), type = "text") # create table in stargazer

此方法的唯一缺点是您必须从每个模型的waldtest()输出手动重新输入F统计数据。

2 个答案:

答案 0 :(得分:10)

使用包lmtest和multiwayvcov会导致很多不必要的开销。在R中计算聚类标准错误的最简单方法是修改后的summary()函数。此功能允许您向常规summary()函数添加一个名为cluster的附加参数。以下文章描述了如何使用此函数计算R:

中的聚簇标准错误

https://economictheoryblog.com/2016/12/13/clustered-standard-errors-in-r/

您可以轻松地使用摘要功能来获取聚类标准错误,并将它们添加到占星师输出中。根据您的示例,您只需使用以下代码:

# estimate models
ols1 <- lm(y ~ x) 

# summary with cluster-robust SEs
summary(ols1, cluster="cluster_id") 

# create table in stargazer
stargazer(ols1, se=list(coef(summary(ols1,cluster = c("cluster_id")))[, 2]), type = "text") 

答案 1 :(得分:3)

我建议使用lfe包,它比lm包更强大。您可以在回归模型中轻松指定群集:

ols1 <- felm(y ~ x + z|0|0|firmid, data = petersen)
summary(ols1)

stargazer(OLS1, type="html")

将自动生成群集标准错误。 stargazer会相应地报告群集标准错误。

顺便说一句(允许我做更多营销),对于微观计量经济学分析,强烈建议使用felm。您可以使用felm轻松指定固定效果和IV。语法就像:

ols1 <- felm(y ~ x + z|FixedEffect1 + FixedEffect2 | IV | Cluster, data = Data)