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

如何使用sjPlot等包为拟合模型统计量迭代生成规范输出表格

多混合效应模型批量输出标准化结果表实现方案

依赖包准备

首先确保安装并加载所需工具包,推荐优先使用sjPlot包,完美适配lmerModLmerTest类模型输出:

# 首次使用先安装
install.packages(c("sjPlot", "lmerTest", "sjlabelled", "sjmisc"))
# 加载包
library(sjPlot)

核心实现逻辑

sjPlot内置的tab_model()函数可以直接识别lmerTest拟合的混合效应模型,支持自定义输出字段、样式,可直接匹配你需要的标准化统计结果表格样式。

单模型测试(先验证输出样式是否符合要求)

先取第一个模型测试调整参数:

tab_model(
  # 传入模型对象
  model_list[[1]],
  # 核心样式参数
  show.std = TRUE, # 输出标准化系数
  show.ci = FALSE, # 不需要置信区间可设为FALSE,需要则设为0.95
  show.se = TRUE, # 显示标准误
  show.stat = TRUE, # 显示t检验统计量
  show.df = TRUE, # 显示 Sattherthwaite 法计算的自由度
  p.style = "stars", # 显著性用星号标注
  p.threshold = c(0.1, 0.05, 0.01, 0.001), # 对应显著性标记规则:. * ** ***
  digits = 3, # 系数、标准误等保留3位小数
  digits.p = 3, # p值保留3位小数
  show.re.var = TRUE, # 输出随机效应方差结果
  show.obs = TRUE, # 输出总观测数、分组数
  # 自定义文本
  dv.labels = "你的因变量名称", # 替换为该模型实际因变量名
  title = "模型1 线性混合效应模型回归结果"
)

运行后会在RStudio的Viewer面板生成可视化表格,可直接复制到Word/PPT中使用。

批量输出13个模型的单独表格

用循环遍历model_list即可实现每个模型单独输出,同时支持批量导出为本地文件:

for (i in seq_along(model_list)) {
  # 自定义每个表格的标题、因变量标签
  tab_title <- paste0("模型", i, " 线性混合效应模型回归结果")
  dv_name <- paste0("因变量", i) # 可替换为你提前整理好的各模型因变量名向量
  
  # 生成结果表
  res_tab <- tab_model(
    model_list[[i]],
    show.std = TRUE,
    show.ci = FALSE,
    show.se = TRUE,
    show.stat = TRUE,
    show.df = TRUE,
    p.style = "stars",
    p.threshold = c(0.1, 0.05, 0.01, 0.001),
    digits = 3,
    digits.p = 3,
    show.re.var = TRUE,
    show.obs = TRUE,
    dv.labels = dv_name,
    title = tab_title
  )
  
  # 在Viewer面板依次输出
  print(res_tab)
  
  # 可选:导出为单独HTML文件,打开后可直接全量复制到Word保留格式
  save_path <- paste0("模型", i, "_回归结果表.html")
  save_html(res_tab, file = save_path)
}

备选方案(gtsummary包)

如果习惯用gtsummary包,也可以用如下逻辑实现,自定义灵活度更高:

install.packages("gtsummary")
library(gtsummary)

# 单模型示例,批量输出可套入上述循环
model_list[[1]] |> 
  tbl_regression(
    exponentiate = FALSE,
    pvalue_fun = ~style_pvalue(.x, digits = 3)
  ) |> 
  add_glance_table(include = c(nobs, AIC, BIC)) |> # 加入模型拟合指标
  modify_header(
    label ~ "变量名",
    estimate ~ "回归系数",
    std.error ~ "标准误",
    p.value ~ "p值"
  ) |> 
  modify_caption(paste0("模型", i, " 线性混合效应模型回归结果"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:06:05