如何用modelsummary自定义fixest固定效应回归的展示统计量
解决modelsummary展示fixest固定效应回归结果的自定义统计量问题
问题说明
使用modelsummary展示fixest包的固定效应回归结果时,希望移除默认的AIC、BIC统计量,仅按顺序保留固定效应(FE)和样本量,但直接设置gof_map = c("FE", "nobs")无法显示FE统计量——因为FE不属于modelsummary::gof_map中的默认条目,且其标识格式为FE:[Variable],无法通过简单字符串匹配调用。
解决方案
方法1:针对特定固定效应变量自定义gof_map
适用于已知固定效应变量名的场景,直接指定对应统计量名称:
library(modelsummary) library(fixest) library(readr) url <- 'https://vincentarelbundock.github.io/Rdatasets/csv/HistData/Guerry.csv' dat <- read_csv(url) # 自定义gof_map,包含固定效应和样本量 custom_gof <- list( list(raw = "FE: Region", clean = "Fixed Effects: Region", fmt = 0), list(raw = "nobs", clean = "N", fmt = 0) ) modelsummary(feols(Literacy ~ Wealth | Region, dat), gof_map = custom_gof, output = "markdown")
方法2:通用型自定义gof_map(适配任意固定效应变量)
自动提取模型中的固定效应变量名,生成对应gof_map条目,无需手动指定变量名:
library(modelsummary) library(fixest) library(readr) url <- 'https://vincentarelbundock.github.io/Rdatasets/csv/HistData/Guerry.csv' dat <- read_csv(url) # 拟合模型 model <- feols(Literacy ~ Wealth | Region, dat) # 提取固定效应变量名,生成gof_map条目 fe_entries <- lapply(names(model$fes), function(var) { list(raw = paste0("FE: ", var), clean = paste0("Fixed Effects: ", var), fmt = 0) }) custom_gof <- c(fe_entries, list(list(raw = "nobs", clean = "N", fmt = 0))) # 输出结果 modelsummary(model, gof_map = custom_gof, output = "markdown")
关键说明
modelsummary对fixest固定效应的统计量标识格式为FE: [VariableName],而非单纯的"FE",因此直接使用gof_map = c("FE", "nobs")无法匹配到对应统计量。- 自定义
gof_map时,raw参数对应统计量的原始名称,clean参数对应输出时显示的名称,fmt参数控制格式(0表示整数格式)。
内容的提问来源于stack exchange,提问作者shiro
相关产品推荐
相关产品推荐

