如何在R中从rstpm2的Royston-Parmar模型计算Harrell's c统计量?
计算rstpm2构建的Royston-Parmar模型的C统计量
方法1:基于预测值手动计算(用Hmisc包)
Royston-Parmar模型属于参数化生存模型,C统计量(Harrell's C)可通过预测风险与实际结局的一致性来计算,步骤如下:
- 用
predict()从rstpm2模型中提取特定时间点的生存概率,转换为风险值(1 - 生存概率) - 结合结局变量,用
Hmisc包的rcorr.cens()函数计算C统计量
示例代码:
library(rstpm2) library(Hmisc) # 示例数据与模型拟合 data(lung) lung$status <- lung$status - 1 # 转换为0/1结局(0=存活,1=死亡) fit <- stpm2(Surv(time, status) ~ age + sex, data = lung, df = 3) # 获取随访365天的预测风险值 pred_risk <- 1 - predict(fit, newdata = lung, type = "surv", times = 365) # 计算C统计量 c_result <- rcorr.cens(pred_risk, Surv(lung$time, lung$status)) print(c_result$C)
方法2:用survival包的concordance()函数
直接将预测风险作为变量,结合生存对象计算:
library(survival) # 计算C统计量 concordance(Surv(time, status) ~ pred_risk, data = lung)
注意事项
- 需确保预测风险的时间尺度与结局的随访时间匹配,若关注多时间点的C统计量,可循环计算或使用
timeROC包做时间依赖ROC分析 - 两种方法本质都是基于预测风险与实际结局的秩相关,结果应基本一致
内容的提问来源于stack exchange,提问作者user29204473
相关产品推荐
相关产品推荐

