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

modelsummary包无法显示F值的技术问题咨询

解决modelsummary包不显示F值的问题

modelsummary默认不会显示F值,原因有两个:

  1. 当模型列表包含不同类型(如OLS和Poisson回归)时,包会默认只展示所有模型兼容的统计量,而F值是线性回归(lm)独有的整体显著性检验统计量。
  2. 即使是单个线性模型,默认的拟合优度(GOF)统计集合也未包含F值。

解决方案:自定义拟合优度统计量映射

你可以通过gof_map参数手动指定要显示的统计量,包括F值。以下是具体实现:

  1. 加载所需包并准备数据(沿用你的示例):
library(modelsummary)
url <- 'https://vincentarelbundock.github.io/Rdatasets/csv/HistData/Guerry.csv'
dat <- read.csv(url)

models <- list(
  "OLS 1"     = lm(Donations ~ Literacy + Clergy, data = dat),
  "Poisson 1" = glm(Donations ~ Literacy + Commerce, family = poisson, data = dat),
  "OLS 2"     = lm(Crime_pers ~ Literacy + Clergy, data = dat),
  "Poisson 2" = glm(Crime_pers ~ Literacy + Commerce, family = poisson, data = dat),
  "OLS 3"     = lm(Crime_prop ~ Literacy + Clergy, data = dat)
)
  1. 创建自定义的GOF映射表,包含F值:
library(tibble)
gof_custom <- tribble(
  ~raw,          ~clean,          ~fmt, ~omit,
  "r.squared",   "R²",            3,    FALSE,
  "adj.r.squared","Adj. R²",      3,    FALSE,
  "fstatistic",  "F Statistic",   2,    FALSE,  # 添加F值
  "df.residual", "Residual DF",   0,    FALSE,
  "nobs",        "Observations",  0,    FALSE
)
  1. 使用自定义映射生成表格:
modelsummary(models, gof_map = gof_custom)

执行后,所有OLS模型会显示F值,Poisson模型对应位置会显示NA(因为该统计量不适用于这类模型),你可以通过调整gof_map中的omit规则或添加条件逻辑来隐藏这些NA值。

单个线性模型的情况

如果只需要展示单个lm模型的F值,同样可以用上述自定义映射:

model <- lm(Donations ~ Literacy + Clergy, data = dat)
modelsummary(model, gof_map = gof_custom)

Quarto渲染优化

modelsummary支持gt、kableExtra等多种输出格式,在Quarto中渲染时,可以指定输出格式确保显示效果:

modelsummary(models, gof_map = gof_custom, output = "gt")  # 使用gt输出
# 或
modelsummary(models, gof_map = gof_custom, output = "kableExtra")  # 使用kableExtra输出

这样生成的表格在Quarto中渲染效果会远优于stargazer。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 10:48:14