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

如何在modelsummary输出表格中添加glmer模型的组数信息?

为glmer模型的modelsummary表格添加组数信息

当使用modelsummary为lme4::glmer拟合的多水平逻辑回归模型生成表格时,若需要添加组数信息(该信息可从summary(model)中获取,但无法通过get_gof(model)直接提取),可以通过以下两种方式实现:

方法1:使用add_rows手动添加

直接从模型结果中提取组数,再通过add_rows参数将该行信息插入表格的拟合优度区域:

# 加载所需包
library(lme4)
library(modelsummary)

# 加载数据集并构造二分类因变量
data(sleepstudy)
sleepstudy$binary_outcome <- ifelse(sleepstudy$Reaction > median(sleepstudy$Reaction), 1, 0)

# 拟合多水平逻辑回归模型
model <- glmer(binary_outcome ~ Days + (1 | Subject), data = sleepstudy, family = binomial())

# 从模型摘要中提取组数
num_groups <- summary(model)$ngrps

# 构造要添加的行数据
add_row <- data.frame(
  term = "Number of groups:",
  model = num_groups,
  check.names = FALSE
)

# 生成带组数信息的表格
modelsummary(model, 
             output = "table.docx", 
             title = 'Table 1', 
             exponentiate = TRUE,
             stars = TRUE,
             add_rows = add_row)

方法2:自定义拟合优度函数

定义一个自定义函数,让modelsummary自动将组数纳入拟合优度统计量区域,同时可保留默认的拟合优度指标:

# 加载所需包
library(lme4)
library(modelsummary)

# 加载数据集并构造二分类因变量
data(sleepstudy)
sleepstudy$binary_outcome <- ifelse(sleepstudy$Reaction > median(sleepstudy$Reaction), 1, 0)

# 拟合多水平逻辑回归模型
model <- glmer(binary_outcome ~ Days + (1 | Subject), data = sleepstudy, family = binomial())

# 自定义GOF函数:合并默认拟合优度指标+组数信息
custom_gof <- function(x) {
  # 获取默认拟合优度统计量
  default_gof <- get_gof(x)
  # 构造组数统计量
  group_gof <- data.frame(
    term = "Number of groups:",
    value = summary(x)$ngrps,
    row.names = NULL
  )
  # 合并后返回
  out <- rbind(default_gof, group_gof)
  return(out)
}

# 生成表格,调用自定义GOF函数
modelsummary(model, 
             output = "table.docx", 
             title = 'Table 1', 
             exponentiate = TRUE,
             stars = TRUE,
             gof_fun = custom_gof)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:52:50