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

如何用survSplit处理MICE多重插补数据并通过pool合并分析结果

解决方案

直接在with()函数中嵌套survSplit的处理步骤即可,无需手动提取每个插补数据集。with.mids()会自动遍历所有插补后的数据集,对每个数据集依次执行数据分割和模型拟合操作,结果可直接传入pool()合并。

完整代码流程

  1. 数据插补(保持原有逻辑)
library(mice)
library(survival) # 确保加载survival包

imp <- mice(data1, seed = 12345, n = 5, print = FALSE) 
  1. 对每个插补数据集执行分割+模型拟合
fit <- with(imp, {
  # 分割当前插补数据集
  split_data <- survSplit(
    Surv(time, status) ~ ., 
    data = .data, # .data指代当前正在处理的插补数据集
    cut = c(40, 60), 
    episode = "tgroup", 
    id = "id"
  )
  # 拟合带时间分层的Cox模型
  coxph(Surv(tstart, time, status) ~ age + class:strata(tgroup), data = split_data)
})
  1. 合并多重插补结果(保持原有逻辑)
summary(pool(fit))

关键说明

  • .data是with()环境内置变量,专门指代当前循环到的插补数据集,无需手动定义
  • 整个流程完全衔接mice的处理逻辑,分割后的数据集会自动用于每个插补样本的模型拟合,最终结果可直接通过pool()合并,保留多重插补的统计特性
  • 若原数据无唯一id列,survSplit会自动生成,但手动指定id参数可避免潜在的重复问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 14:36:53