如何将重新计算标准误差的plm模型转换为stargazer回归表?
解决plm模型自定义标准误在stargazer中的输出问题
当用plm包估计双向固定效应模型,并用vcovDC计算HC1标准误后,直接调用stargazer(m1)会默认输出原模型的标准误,而非更新后的结果。要把自定义标准误的结果放进stargazer表格,得手动提取更新后的统计量再传入参数,具体步骤如下:
1. 运行模型并生成带自定义标准误的结果
先按示例代码生成数据和模型,再用指定的vcov函数生成带新标准误的summary对象:
library(plm) library(stargazer) # 生成示例数据 df <- data.frame(year= rep(c(2000:2005), each=6), county= rep(c("c1", "c2", "c3", "c4", "c5", "c6"), times=6), temperature= runif(36, min=40, max=80), trade= runif(36, min=10, max=20), policy.outcome= runif(36, min=0, max=100)) df.p <- pdata.frame(df, index=c("county", "year")) # 估计双向固定效应模型 m1 <- plm(policy.outcome ~ temperature + trade, data=df.p, model="within", effect="twoways") # 生成带HC1标准误的结果对象 m1_robust <- summary(m1, vcov = function(x) vcovDC(x, type="HC1"))
2. 提取更新后的统计量
从m1_robust里提取需要的标准误、t值和p值:
# 提取标准误 robust_se <- m1_robust$coefficients[, "Std. Error"] # 提取t值 robust_t <- m1_robust$coefficients[, "t-value"] # 提取p值 robust_p <- m1_robust$coefficients[, "Pr(>|t|)"]
3. 用stargazer输出带自定义统计量的表格
调用stargazer时,通过se、t、p参数传入刚才提取的统计量,就能得到带更新后标准误的回归表:
stargazer(m1, align=TRUE, type="text", se=list(robust_se), t=list(robust_t), p=list(robust_p), title="双向固定效应模型(HC1标准误)")
这样输出的表格就会显示你重新计算的HC1标准误,以及对应的t值和p值,而非模型默认的结果。
内容的提问来源于stack exchange,提问作者YouLocalRUser
相关产品推荐
相关产品推荐

