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

如何在gtsummary::tbl_uvregression结合geepack::geeglm建模时仅移除当前模型变量的NA值而非保留全完整记录

解决方法

你遇到的问题核心是手动指定了全局的data = na.omit(data)参数,这会强制所有单变量模型使用同一个剔除了所有NA的完整数据集,而非为每个变量单独保留仅当前自变量、因变量和ID变量非NA的观测,最终导致模型维度不匹配报错。

要实现每个GEE模型仅移除对应变量的NA值,只需做以下调整:

  • 移除method.args中的全局data参数:tbl_uvregression会自动为每个自变量生成临时子集数据,包含当前自变量、因变量和模型必需的ID变量,无需手动指定完整数据集。
  • 添加na.action = na.omit参数:让每个模型仅剔除临时子集里的NA值(也就是当前分析所需变量的NA)。

修改后的代码如下:

tbl_uvregression(
  method = geepack::geeglm,
  y = tts_participant,
  include = -`School Name`,
  method.args = list(
    family = poisson,
    na.action = na.omit,  # 关键:为每个模型单独处理当前子集的NA
    id = `School Name`,
    corstr = "independence",
    scale.fix = TRUE
  ),
  exponentiate = TRUE,
  add_estimate_to_reference_rows = FALSE
)

原理说明

tbl_uvregression在迭代每个自变量时,会自动构建一个仅包含因变量、当前自变量、ID变量的临时数据框,na.action = na.omit会针对这个临时数据框移除NA,确保每个模型只排除当前分析相关的NA观测,而不是整个数据集的所有NA。如果后续仍有异常,可以尝试用na.action = na.exclude替代,它会在结果中保留NA的位置(对模型拟合逻辑影响极小)。

内容的提问来源于stack exchange,提问作者André van Zyl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:37:32