[ PROMPT_NODE_27366 ]
competing-risks
[ SKILL_DOCUMENTATION ]
# 竞争风险分析
## 概述
当研究对象可能经历多个互斥事件(事件类型)之一时,就会出现竞争风险。当一个事件发生时,它会阻止(“竞争”)其他事件的发生。
### 竞争风险示例
**医学研究:**
- 癌症死亡 vs 心血管疾病死亡 vs 其他原因死亡
- 癌症研究中的复发 vs 无复发死亡
- 移植患者中不同类型的感染
**其他应用:**
- 工作终止:退休 vs 辞职 vs 解雇
- 设备故障:不同的故障模式
- 客户流失:不同的离开原因
### 核心概念:累积发生率函数 (CIF)
**累积发生率函数 (CIF)** 表示在时间 *t* 之前经历特定事件类型的概率,同时考虑了竞争风险的存在。
**CIF_k(t) = P(T ≤ t, 事件类型 = k)**
这与 Kaplan-Meier 估计量不同,后者在存在竞争风险时会高估事件概率。
## 何时使用竞争风险分析
**在以下情况使用竞争风险分析:**
- 存在多个互斥的事件类型
- 一个事件的发生阻止了其他事件
- 需要估计特定事件类型的概率
- 希望了解协变量如何影响不同的事件类型
**不要在以下情况使用:**
- 仅关注一种事件类型(使用标准生存分析)
- 事件不是互斥的(使用复发事件方法)
- 竞争事件极其罕见(可视为删失)
## 竞争风险下的累积发生率
### cumulative_incidence_competing_risks 函数
估计每种事件类型的累积发生率函数。
python
from sksurv.nonparametric import cumulative_incidence_competing_risks
from sksurv.datasets import load_leukemia
# 加载带有竞争风险的数据
X, y = load_leukemia()
# y 包含事件类型:0=删失, 1=复发, 2=死亡
# 计算每种事件类型的累积发生率
# 返回:时间点, 事件 1 的 CIF, 事件 2 的 CIF, ...
time_points, cif_1, cif_2 = cumulative_incidence_competing_risks(y)
# 绘制累积发生率函数
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 6))
plt.step(time_points, cif_1, where='post', label='复发', linewidth=2)
plt.step(time_points, cif_2, where='post', label='缓解期死亡', linewidth=2)
plt.xlabel('时间 (周)')
plt.ylabel('累积发生率')
plt.title('竞争风险:复发 vs 死亡')