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

如何让modelsummary输出feols固定效应模型的R²指标

feols多模型R²自动纳入modelsummary输出表实现方案

modelsummary原生支持自定义拟合优度统计量批量注入,不需要手动拆分csw()生成的模型列表逐个提取R²拼接,按以下步骤操作即可:

  • 第一步:按常规流程完成多模型回归
# 加载依赖包
library(fixest)
library(modelsummary)

# 替换为你自己的变量、数据集即可,csw()逐次累加控制变量、三类固定效应的写法保持不变
model_list <- feols(被解释变量 ~ csw(核心解释变量, 控制变量1, 控制变量2, 控制变量3) | 国家 + 年份 + 国家^年份, data = 你的数据集)
  • 第二步:配置R²提取规则,两种方式选其一即可
    1. 全局配置(一次配置后所有后续modelsummary调用自动生效,推荐)
# 按需选择要展示的R²类型,不需要的项删掉即可
custom_gof <- list(
  "R²" = function(mod) r2(mod, type = "all")["r2"],
  "调整后R²" = function(mod) r2(mod, type = "all")["ar2"],
  "组内R²" = function(mod) r2(mod, type = "all")["wr2"]
)

# 写入全局配置,可同时设置隐藏不需要的默认拟合优度项
config_modelsummary(
  gof_custom = custom_gof,
  gof_omit = "AIC|BIC|RMSE|Log.Lik" # 不想展示的默认项写在这里,用|分隔
)
  1. 单次调用配置(不想修改全局设置时使用)
    直接在生成表格时传入自定义R²提取规则即可,不需要提前做全局设置。
  • 第三步:生成回归结果表
# 全局配置后直接调用即可自动带上R²项
msummary(model_list, 
         stars = c('*'=0.1, '**'=0.05, '***'=0.01), # 可自定义显著性星号规则
         output = "markdown" # 导出为其他格式修改output参数即可,比如"docx"、"latex"
         )

# 单次调用的写法示例
msummary(model_list,
         gof_custom = list(
           "R²" = function(mod) r2(mod)["r2"],
           "组内R²" = function(mod) r2(mod)["wr2"]
         ),
         gof_omit = "AIC|BIC|RMSE",
         stars = c('*'=0.1, '**'=0.05, '***'=0.01)
)

注意:该方法对csw()、sw()、sw0()等fixest批量语法生成的多模型对象完全适配,会自动遍历每个模型提取对应R²,结果和单独对单个feols模型调用r2()完全一致,不会出现匹配错误。

内容的提问来源于stack exchange,提问作者Anton

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:15:33