如何在R中将coeftest结果转为美观表格?含固定效应回归及多表并排需求
解决plm固定效应回归+coeftest结果的美观表格生成问题
为啥stargazer会翻车?
stargazer对plm模型和coeftest返回的lmtest类对象支持拉胯,直接传coeftest结果的话,它没法正确解析系数、标准误这些统计量,只能输出一堆原始文本,根本出不来表格。
靠谱的替代方案
1. 用modelsummary包(强推,支持多格式+并排)
modelsummary对plm、coeftest的支持相当友好,能直接生成HTML、LaTeX、Word各种格式的好看表格,多表格并排也很轻松。
操作步骤:
- 先装包加载:
install.packages("modelsummary") library(modelsummary) library(plm) library(lmtest) library(sandwich)
- 拟合模型并生成带稳健标准误的coeftest对象:
# 注意:变量名不能有空格!把Dummy 1改成Dummy1,Dummy 2改成Dummy2,不然模型会报错 model1 <- plm(ret ~ Dummy1*Dummy2 + Dummy1 + Dummy2 + ROA + Leverage, data = df, index = c("entity"), model = "within") # 生成HC1稳健标准误的结果 model1_robust <- coeftest(model1, vcov. = vcovHC, type = "HC1")
- 单表格输出:
# 生成HTML格式,直接在浏览器打开或者嵌到RMarkdown里都能用 modelsummary(model1_robust, output = "table.html", title = "固定效应回归结果(HC1稳健标准误)") # 生成LaTeX格式,适合写论文用 modelsummary(model1_robust, output = "table.tex")
- 多表格并排:
如果要把多个模型(比如不同稳健标准误或者不同变量设定的结果)放一起对比,直接传模型列表就行:
# 先整个第二个模型示例 model2 <- plm(ret ~ Dummy1 + ROA + Leverage, data = df, index = c("entity"), model = "within") model2_robust <- coeftest(model2, vcov. = vcovHC, type = "HC1") # 并排展示两个模型,columns参数控制列数 modelsummary(list("模型1" = model1_robust, "模型2" = model2_robust), output = "table.html", columns = c("模型1", "模型2"), title = "多模型固定效应回归结果对比")
2. 用texreg包
texreg也支持plm和coeftest对象,适合生成LaTeX或HTML表格:
- 装包加载:
install.packages("texreg") library(texreg)
- 输出单表格:
# HTML格式 htmlreg(model1_robust, file = "texreg_table.html", caption = "固定效应回归结果") # LaTeX格式 texreg(model1_robust, file = "texreg_table.tex")
- 多表格并排:
# 并排两个模型,use.packages=FALSE避免重复导入LaTeX包 htmlreg(list(model1_robust, model2_robust), file = "texreg_multiple.html", caption = "多模型对比", custom.model.names = c("模型1", "模型2"))
非要用stargazer的话(不推荐,太麻烦)
如果你死磕stargazer,得手动提取coeftest里的系数、标准误这些统计量,再构造stargazer能识别的格式:
# 提取coeftest里的关键统计量 coefs <- coef(model1_robust) ses <- sqrt(diag(vcovHC(model1, type = "HC1"))) pvals <- model1_robust[, 4] # 传给stargazer生成表格 stargazer(list(model1), coef = list(coefs), se = list(ses), p = list(pvals), type = "html", out = "stargazer_table.html", title = "固定效应回归结果")
这种方法容易出错,不如上面两个工具省心。
内容的提问来源于stack exchange,提问作者Hanna Linde
相关产品推荐
相关产品推荐

