我知道如何创建线性回归模型lm
,以及如何使用summary
函数来获取聚类标准误差并将其添加到stargazer
输出中:
# 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")
如果我想创建一个具有多个回归模型和聚类标准误差的观星者输出,有人知道该代码的样子吗?
代码逻辑如下:
第一步:创建lm模型
ols1 <- lm(y ~ x)
ols2 <- lm(y ~ x + z)
ols3 <- lm(y ~ x + z + a)
ols2 <- lm(y ~ x + z + a + b)
2个步骤:包括标准错误
summary(ols1, cluster="cluster_id")
summary(ols2, cluster="cluster_id")
summary(ols3, cluster="cluster_id")
summary(ols4, cluster="cluster_id")
3个步骤:使用4种不同的模型创建一个输出
stargazer(ols1,ols2,ols3,ols4, type="html", dep.var.labels=c("ROA"), intercept.bottom = FALSE,
out="OLS1")
我认为步骤1 和步骤2 并不重要,但我不知道如何为步骤3 设置代码。 / p>
我不知道如何在步骤3 中实现以下代码:
# create table in stargazer
stargazer(ols1, se=list(coef(summary(ols1,cluster = c("cluster_id")))[, 2]), type = "text")
任何人都可以帮忙吗?
非常感谢您!!!
答案 0 :(得分:0)
您已经看到选项se
可以处理list
。因此,只需将强大的SE保存在其他易于访问的位置,例如:
library("sandwich")
library("plm")
library("stargazer")
data("Produc", package = "plm")
# Regression
model1 <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
data = Produc,
index = c("state","year"),
method="pooling")
model2 <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp),
data = Produc,
index = c("state","year"),
method="pooling")
# Adjust standard errors
cov1 <- vcovHC(model1, type = "HC1")
cov2 <- vcovHC(model2, type = "HC1")
robust_se1 <- sqrt(diag(cov1))
robust_se2 <- sqrt(diag(cov2))
# Stargazer output (with and without RSE)
stargazer(model1, model2, type = "text",
se = list(robust_se1, robust_se2))
现在,您可以在stargazer
中将任何具有强大SE的模型彼此相邻。