打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
生存分析(Survival Analysis)、Cox风险比例回归模型(Cox proportional hazards model)及

1. 生存分析

生存分析指的是一系列用来探究所感兴趣的事件的发生的时间的统计方法。常见的有1)癌症患者生存时间分析2)工程中的失败时间分析等等。

1.1 定义

给定一个实例 i,我们用一个三元组来表示 (X_i, \delta_i, T_i),其中 X_i表示该实例的特征向量, T_i表示该实例的事件发生时间。

如果该实例发生了我们感兴趣的事件,那么 T_i表示的是事件发生时间点到基准时间点之间的时间,同时 \delta_i = 1
如果该实例未发生我们感兴趣的事件,那么 T_i表示的是事件发生时间点到观察结束时间点的时间,同时 \delta_i = 0

生存分析的研究目标就是对一个新的实例 X_j,来估计它所发生感兴趣事件的时间。

1.2 删失(censored)

在生存分析研究中,对于某些实例,会出现在我们的研究期间,并没有出现任何感兴趣的时间,我们将这种情况称之为删失(censored)。

出现这种情况的可能原因有:
1)实例在研究阶段就是没有出现感兴趣的事件(right-censored)
2)在研究阶段,丢失了该实例
3)该实例经历了其他的事件导致无法继续跟踪

2 生存概率(Survival probability)

生存概率也叫作生存方程 S(t) = Pr(T>t),生存方程指的是实例出现感兴趣的事件的时间 T不小于给定的时间 t的概率。

2.1 Kaplan-Meier survival estimate

KM方法是一种无参数方法(non-parametric)来从观察的生存时间来估计生存概率的方法。

对于研究中的第 n个时间点 t_n,生存概率可以计算为:
S(t_n) = S(t_{n-1})(1-\frac{d_n}{r_n})
其中, S(t_{n-1})指的是在 t_{n-1}时间点的生存概率; d_n指的是在时间点 t_n所发生的事件数; r_n指的是在快要到时间点 t_n时,还存活的人(如果在 t_{n-1} t_n之间有实例censored,那么在计算 r_n时应该将该患者剔除出去); t_0=0, S(0)=1

R语言实现KM生存分析示例

上图为构建的KM生存分析模型可视化结果。其中,

1)曲线上垂直下降的部分表明,在该时刻有感兴趣的事件发生(通过观察 S(t_n)我们能够看到,只有当 d_n不为零的时候,才会从 S(t_{n-1})的值才会减小得到 S(t_n);否则,没有事件发生, S(t_{n-1})=S(n)

2)曲线上的垂直stick表示的是,在该时刻,有实例成为了censored,如果在 t_{n-1} t_n之间有实例censored,那么在计算 r_n时应该将该患者剔除出去

2.2 Log-Rank test 比较不同的生存曲线

在利用KM方法得到多条生存曲线后,只通过直接的观察来确定多条曲线之间是否具有显著性差异是不充分的。因此,log-rank test被广泛的用来比较两条或多条生存曲线。

1)log-rank test是一种非参数检验,因此对于生存概率的分布没有任何假设;
2)同时,log-rank test 的null hypothesis(原假设)为两个曲线代表的两个组之间,在生存率上没有显著性差异。
3)log-rank test比较的是每个组中观察到的事件数,与在原假设为真的情况下,每个组期望的事件数。
4)log-rank test统计量类似于卡方检验(Chi-square test)的统计量


3 风险概率(hazard probability)

风险概率指的是在时间 t之前还没有发生任何事件的情况下,在时间 t发生感兴趣的时间的概率。
h(t) = \lim_{\delta(t)\rightarrow0}\frac{Pr(t\leq T\leq t+\delta(t)|T\geq t)}{\delta(t)}

3.1 累积风险(cummulative hazard)

在针对单因子进行生存分析时,我们已经得到了生存方程 S(t),那么,根据 S(t),累积风险为:
H(t) = -\log(S(t))
下图为上述生存方程 S(t)变换得到的累积风险 H(t)


4 Cox 比例风险回归模型

4.1 为什么要用Cox 比例风险回归

上述生存分析模型,即Kaplan-Meier survival estimate,是单变量分析(univariable analysis),在做单变量分析时,模型只描述了该单变量和生存之间的关系而忽略其他变量的影响。(为什么要考虑multi-variables?比如在比较两组病人拥有和不拥有某种基因型对生存率的影响,但是其中一组的患者年龄较大,所以生存率可能受到基因型 或/和 年龄的共同影响)

同时,Kaplan-Meier方法只能针对分类变量(治疗A vs 治疗B,男 vs 女),不能分析连续变量对生存造成的影响。

为了解决上述两种问题,Cox比例风险回归模型(Cox proportional hazards regression model)就被提了出来。

4.2 Cox 模型的定义

h(t, X_i) = h_0(t) \times \exp(X_i \beta)
其中, h_0(t)是基准风险方程,可以是任意一个针对时间 t的非负方程; X_i是实例 i的特征向量; \beta是参数向量,该向量是通过最大化cox部分似然得到的。

4.3 partial likelihood

实例 i以及其所发生事件的时间 T_i,那么实例 i发生事件的概率为:
L_i(\beta) = \frac{h(T_i, X_i)}{\sum_{j:T_j \geq T_i}h(T_i, X_j)}
其中,分子上的项,主要要确定实例 i发生事件的时间 T_i,有了 T_i才能为计算分母来选取实例。

根据时间 T_i,分母中首先找到在时间 T_i之前还没有发生事件的实例(censored应该不计入了吧,同时应该包含 h(T_i,X_i)本身),然后分别计算他们在 T_i时刻的风险值并求和作为分母。

这样就得到了针对发生过事件的实例 i的发生事件概率 L_i(\beta)
L_i(\beta) = \frac{h(T_i, X_i)}{\sum_{j:T_j \geq T_i}h(T_i, X_j)} = \frac{h_0(T_i)\times \exp(X_i \beta)}{\sum_{j:T_j \geq T_i}h_0(T_i) \times \exp(X_j \beta)} = \frac{\exp(X_i \beta)}{\sum_{j:T_j \geq T_i} \exp(X_j \beta)}
因此,该概率和时间无关,并不需要来对 h_0(t)进行建模,所以称之为partial likelihood。

在得到针对单个实例的事件发生概率之后,为了估计使得所有样本出现我们数据中这样的样本的概率最大,我们需要使用极大似然估计来估计参数。假设每个实例的是独立同分布的,那么我们可以得到针对我们样本的似然概率:

L(\beta) =\prod_{i:\delta_i=1} \frac{\exp(X_i \beta)}{\sum_{j:T_j \geq T_i} \exp(X_j \beta)}

该公式的意思为,需要将所有出现过感兴趣事件的实例的概率相乘,即 \prod_{i:\delta_i = 1}

得到上述似然概率,我们只需要选择使得 L(\beta)得到最大值的 \beta值即可,即:
\arg\max_\beta\{ L(\beta)\}

R语言实现Cox比例风险回归模型
Cox比例风险回归模型wiki


5 C-index

英文全称为concordance index。对于存在censored实例的生存数据,一些标准的评估方法是不合适的,比如均方误差等等。

5.1 计算方法

1)将所有样本两两配对,共组成 N \times (N-1)/2
2)排除其中无法判断出谁先出现感兴趣事件的配对。比如配对中两个实例都没有出现感兴趣的事件;配对中的两个实例A、B,如果A是censored(非right-censored),时间为 T_A,B是发生事件的,其发生时间为 T_B,并且 T_A < T_B。排除无法判断谁先出现事件的配对后,得到总的可比较对数为 M
3)在剩下的 M对中,预测结果和实际结果相一致的配对数为 K,即我预测的生存率 S(X_A) < S(X_B),实际的 T_A < T_B,即为相一致。
4)则 c-index = \frac{K}{M}

C-index的计算可由下列公式描述:
\frac{1}{M}\sum_{i:\delta_i=1}\sum_{j:T_i < T_j} I[S(T_i, X_i) < S(T_j, X_j)]

其中,函数 I[C]指的是如果 C为真,则 I[C] = 1,否则 I[C] = 0
第一个求和函数 \sum_{i:\delta_i = 1}表示配对中至少要有一个实例发生了事件;
第二个求和函数 \sum_{j:T_i < T_j}表示配对中,另一个的记录时间 T_j必须长于第一个实例事件发生时间;两个求和函数选择出了能够用于比较的所有配对组合。

5.2 bootstrap 重抽样

为了得到更加robust的评估结果,希望通过多次重复采样的方法来计算多组评估结果,从而得到更为有说服力的结果。

1)从原始样本中允许重复抽取的抽取一定数量的样本
2)根据抽取得到的新样本,计算统计量 T,这里为C-index
3)重复上述N次(一般大于1000),得到N个统计量 T
4)计算上述N个统计量 T的样本方差

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Naive Bayes Classifier
555定时器的应用
矩阵、向量求导法则
泊松分布的期望和方差推导
闭区间套定理(Nested intervals theorem)讲解2
循环群的例子
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服