gpt4 book ai didi

r - Stargazer 中的集群稳健标准误差

转载 作者:行者123 更新时间:2023-12-02 04:21:11 28 4
gpt4 key购买 nike

有人知道如何让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-stats。

最佳答案

使用 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")

关于r - Stargazer 中的集群稳健标准误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44027482/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com