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

如何在R中实现IPTW队列的加权竞争风险分析

R实现IPTW加权竞争风险分析及加权CIF绘制方案

核心原理

cmprsk包原生函数不支持传入权重参数,你可以使用经方法学验证的riskRegression包完成加权竞争风险分析,全程无需调用SAS或Stata,完全基于R环境实现。

操作步骤

  • 前置准备:确保你的数据集已包含4类核心变量:随访时间变量、结局变量(0=删失,1=目标事件,2=竞争事件)、分组变量、IPTW计算得到的权重变量
  • 安装加载依赖包,运行以下代码:
# 首次使用需先安装
install.packages(c("survival", "riskRegression", "ggplot2"))
# 加载包
library(survival)
library(riskRegression)
library(ggplot2)
  • 拟合加权原因特异性Cox模型,直接传入IPTW权重:
# 替换your_data为你的数据集名称,替换括号内的变量名为你实际的变量名
weighted_csc_model <- CSC(Hist(随访时间, 结局变量) ~ 分组变量, 
                    data = your_data,
                    weights = 你的IPTW权重变量名)
  • 计算加权累积发生率(CIF):
# cause参数填你要统计的目标事件对应的编码,此处以1为例
weighted_cif <- predictRisk(weighted_csc_model, 
                            newdata = your_data,
                            cause = 1)
  • 绘制加权CIF曲线:
# 基础可视化,可根据需求调整配色、坐标轴标签等参数
plot(weighted_csc_model, cause = 1, 
     xlab = "随访时间", ylab = "目标事件累积发生率",
     col = c("#E41A1C", "#377EB8"), 
     legend = TRUE,
     legend.title = "分组")

注意事项

  • 若你使用的是归一化IPTW权重,建议通过自助法(Bootstrap)重采样计算可信区间,避免模型默认输出的标准误偏小
  • 若你习惯cmprsk包的分析逻辑,也可以手动将IPTW权重乘以每个观测的事件贡献值,再输入cmprsk的计算函数,结果和上述方法一致,但riskRegression的封装方法更简便,出错概率更低

内容的提问来源于stack exchange,提问作者张博文

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:54:03