You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 22:50:30