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

如何使用Survival包survfit处理区间删失数据按日历日估计生存概率

问题根因

你当前代码输出不符合需求的核心原因有两个:

  • 时间基准没有统一为日历日,传入Surv的time1、time2为入组后相对时长,输出自然对应入组后时间维度
  • 未设置左截断(迟进入)参数,默认所有个体从研究第0天就进入风险集,和你随时间捕获动物入组的实际场景不符,同时全为3的censor编码没有匹配你实际的左/右/区间删失混合数据类型
实现步骤

1. 时间基准校准

先将所有时间戳统一转换为以研究起始日为0的日历日维度:

  • 每个个体新增entry字段,值为该个体被捕获入组的日历日
  • 按实际删失类型修正censor字段编码(survival包type="interval"的规则如下):
    • 0:右删失,个体最后一次观察时存活,后续无记录
    • 1:精确事件时间,个体死亡时间明确
    • 2:左删失,个体首次被捕获时已死亡,死亡发生在研究起始日到捕获日之间
    • 3:区间删失,个体死亡发生在两次观察的时间区间内

2. 模型参数修正

构造带左截断的区间删失生存对象,survfit会自动将入组前的个体排除在对应时间点的风险集外,输出的时间维度即为日历日:

# 示例数据新增entry列(替换为你实际的入组日历日即可)
m1$entry <- c(2, 386, 0, 1, 384, 3, 61, 33, 385, 64)
# 修正censor编码为实际值后拟合模型
km_fit <- survfit(Surv(time = entry, time2 = time2, event = censor, type = "interval") ~ region, data = m1)

3. 结果验证

绘制生存曲线的x轴即为日历日维度:

plot(km_fit, xlab = "日历日(研究起始日为0)", ylab = "生存概率")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:45:03