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

icenReg中sampleSurv、getFitEsts与getSCurves功能及差异咨询

使用icenReg包实现生存分析预测:函数功能与差异解析

三个核心函数的作用

getSCurves

  • 主要用来生成**生存曲线(S(t))**或者累积风险曲线(H(t)),ic_par(参数模型)、ic_npar(非参数)、ic_sp(半参数)三类模型都支持
  • 输入拟合好的模型、指定协变量值和时间范围,就能输出对应协变量下各时间点的生存概率或累积风险;若需瞬时风险,也能基于输出结果近似推导

getFitEsts

  • 核心是提取模型的精确点估计值,包括分位数生存时间、累积风险、生存概率等统计量
  • 输入模型、协变量值后,可指定分位数(比如0.5对应中位数生存时间)或风险阈值直接获取对应结果;也能查询特定时间点的生存概率/累积风险

sampleSurv

  • 从模型的生存分布中随机抽样,生成模拟的事件时间数据
  • 输入模型、协变量值和抽样次数,输出一组模拟事件时间,可通过计算样本均值、中位数等统计量,了解预测时间的分布特征

sampleSurv 和 getFitEsts 的核心差异

对比维度sampleSurvgetFitEsts
输出类型模拟的事件时间样本集合模型推导的精确点/区间估计
适用场景分析预测时间的分布(如方差、分位数分布)获取精准的分位数时间、风险阈值对应时间点
计算逻辑基于模型分布随机抽样,结果带随机性直接用模型公式计算解析解或数值解,结果固定
结果稳定性随机种子改变则结果变化,需多次抽样取平均结果固定无随机性

对应需求的实现方案

1. 给定协变量集,获取事件预测时间

  • 用getFitEsts直接提取分位数时间(以中位数为例):
    # 示例:协变量x=1时的中位数生存时间
    fit <- ic_par(Surv(time, status) ~ x, data = my_data)
    pred_time <- getFitEsts(fit, newdata = data.frame(x=1), quantiles = 0.5)
    
  • 用sampleSurv抽样后计算统计量(以均值为例):
    # 示例:抽1000次样本,取均值作为预测时间
    sim_times <- sampleSurv(fit, newdata = data.frame(x=1), n_samples = 1000)
    pred_time <- mean(sim_times)
    

2. 获取风险等于指定阈值对应的时间点

这里的风险通常指累积风险H(t),直接用getFitEsts指定阈值即可:

# 示例:协变量x=1时,累积风险达到0.8的时间点
pred_time <- getFitEsts(fit, newdata = data.frame(x=1), hazard = 0.8)

3. 给定协变量与时间,获取对应风险

用getSCurves获取指定时间点的累积风险,瞬时风险可通过近似计算得到:

# 示例:协变量x=1,t=10时的累积风险
surv_result <- getSCurves(fit, newdata = data.frame(x=1), times = 10)
cumulative_hazard <- surv_result$H

# 近似计算瞬时风险h(t):用相邻时间点的累积风险差推导
surv_detailed <- getSCurves(fit, newdata = data.frame(x=1), times = seq(9, 10, 0.1))
instant_hazard <- diff(surv_detailed$H)/diff(surv_detailed$time) / tail(surv_detailed$S, -1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:20:28