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

如何在gtsummary中为多重插补数据集计算并展示全局p值?

多重插补数据集在gtsummary中添加全局p值的解决办法

你遇到的问题是因为add_global_p()默认的统计方法不支持mice生成的mira类对象(即多重插补后的模型集合),需要用专门针对多重插补数据的全局检验逻辑来计算p值。下面是两种可行的方案:

方案一:自定义D1 Wald检验函数(推荐)

写一个适配mira对象的全局p值计算函数,直接传给add_global_p()即可:

# 自定义全局p值计算函数,适配mira对象
global_p_mice <- function(x, ...) {
  # 合并插补后的模型结果
  pooled_model <- mice::pool(x)
  # 提取模型中的自变量项
  terms <- attr(stats::terms(x$analyses[[1]]), "term.labels")
  
  # 逐个变量计算D1 Wald检验的全局p值
  p_values <- purrr::map_dbl(terms, function(term) {
    # 构造移除当前变量的简化模型公式
    reduced_formula <- stats::update(formula(x$analyses[[1]]), paste0("~ . - ", term))
    # 在所有插补数据集上拟合简化模型
    reduced_fit <- with(x$data, glm(formula = reduced_formula, family = binomial))
    # 比较全模型与简化模型,得到全局p值
    comp <- mice::pool.compare(x, reduced_fit, method = "D1")
    comp$pvalue
  })
  
  # 给p值命名,对应变量名
  names(p_values) <- terms
  p_values
}

# 对插补模型应用这个函数添加全局p值
tbl_regression(fit.i, exponentiate = TRUE) |> 
  add_global_p(pvalue_fun = global_p_mice)

方案二:手动计算后添加p值

如果不想自定义函数,可以用mice::pool.compare()逐个算出全局p值,再手动合并到表格里:

# 先合并插补模型,获取全模型公式和自变量列表
pooled_fit <- mice::pool(fit.i)
full_formula <- formula(fit.i$analyses[[1]])
vars <- attr(stats::terms(full_formula), "term.labels")

# 循环计算每个变量的全局p值,整理成数据框
global_p_df <- purrr::map_dfr(vars, function(var) {
  reduced_formula <- update(full_formula, paste0("~ . - ", var))
  reduced_fit <- with(data.i, glm(formula = reduced_formula, family = binomial))
  comp <- pool.compare(fit.i, reduced_fit, method = "D1")
  tibble(variable = var, global_p = comp$pvalue)
})

# 生成基础表格,然后合并p值列
tbl <- tbl_regression(fit.i, exponentiate = TRUE)
tbl$table_body <- tbl$table_body |>
  left_join(global_p_df, by = "variable") |>
  mutate(
    global_p = ifelse(is.na(global_p), "", style_pvalue(global_p, digits = 3))
  )

# 查看最终表格
tbl

补充说明

D1 Wald检验是多重插补数据中用于全局检验的常用方法,专门适配广义线性模型(比如你的logistic回归),能充分考虑插补过程带来的不确定性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 02:21:07