首页 分享 生存分析(Survival Analysis)、Cox风险比例回归模型(Cox proportional hazards model)及

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

来源:花匠小妙招 时间:2025-05-04 10:15
生存分析(Survival Analysis)、Cox风险比例回归模型(Cox proportional hazards model)及C-index 1. 生存分析

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

1.1 定义

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

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

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

1.2 删失(censored)

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

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

2 生存概率(Survival probability)

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

2.1 Kaplan-Meier survival estimate

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

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

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

在这里插入图片描述

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

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

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

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 t之前还没有发生任何事件的情况下,在时间 t t t发生感兴趣的时间的概率。
h ( t ) = lim ⁡ δ ( t ) → 0 P r ( t ≤ T ≤ t + δ ( t ) ∣ T ≥ t ) δ ( t ) h(t) = lim_{delta(t)rightarrow0}frac{Pr(tleq Tleq t+delta(t)|Tgeq t)}{delta(t)} h(t)=δ(t)→0lim​δ(t)Pr(t≤T≤t+δ(t)∣T≥t)​

3.1 累积风险(cummulative hazard)

在针对单因子进行生存分析时,我们已经得到了生存方程 S ( t ) S(t) S(t),那么,根据 S ( t ) S(t) S(t),累积风险为:
H ( t ) = − log ⁡ ( S ( t ) ) H(t) = -log(S(t)) H(t)=−log(S(t))
下图为上述生存方程 S ( t ) S(t) S(t)变换得到的累积风险 H ( t ) H(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 ) × exp ⁡ ( X i β ) h(t, X_i) = h_0(t) times exp(X_i beta) h(t,Xi​)=h0​(t)×exp(Xi​β)
其中, h 0 ( t ) h_0(t) h0​(t)是基准风险方程,可以是任意一个针对时间 t t t的非负方程; X i X_i Xi​是实例 i i i的特征向量; β beta β是参数向量,该向量是通过最大化cox部分似然得到的。

4.3 partial likelihood

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

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

这样就得到了针对发生过事件的实例 i i i的发生事件概率 L i ( β ) L_i(beta) Li​(β)
L i ( β ) = h ( T i , X i ) ∑ j : T j ≥ T i h ( T i , X j ) = h 0 ( T i ) × exp ⁡ ( X i β ) ∑ j : T j ≥ T i h 0 ( T i ) × exp ⁡ ( X j β ) = exp ⁡ ( X i β ) ∑ j : T j ≥ T i exp ⁡ ( X j β ) 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)} Li​(β)=∑j:Tj​≥Ti​​h(Ti​,Xj​)h(Ti​,Xi​)​=∑j:Tj​≥Ti​​h0​(Ti​)×exp(Xj​β)h0​(Ti​)×exp(Xi​β)​=∑j:Tj​≥Ti​​exp(Xj​β)exp(Xi​β)​
因此,该概率和时间无关,并不需要来对 h 0 ( t ) h_0(t) h0​(t)进行建模,所以称之为partial likelihood。

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

L ( β ) = ∏ i : δ i = 1 exp ⁡ ( X i β ) ∑ j : T j ≥ T i exp ⁡ ( X j β ) L(beta) =prod_{i:delta_i=1} frac{exp(X_i beta)}{sum_{j:T_j geq T_i} exp(X_j beta)} L(β)=i:δi​=1∏​∑j:Tj​≥Ti​​exp(Xj​β)exp(Xi​β)​

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

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

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

5 C-index

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

5.1 计算方法

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

C-index的计算可由下列公式描述:
1 M ∑ i : δ i = 1 ∑ j : T i &lt; T j I [ S ( T i , X i ) &lt; S ( T j , X j ) ] frac{1}{M}sum_{i:delta_i=1}sum_{j:T_i &lt; T_j} I[S(T_i, X_i) &lt; S(T_j, X_j)] M1​i:δi​=1∑​j:Ti​<Tj​∑​I[S(Ti​,Xi​)<S(Tj​,Xj​)]

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

5.2 bootstrap 重抽样

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

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

相关知识

COX
基于生态位模型研究血吸虫病在中国的潜在传播风险
生存分析方法详解
揭示 FTO 多态性在预测免疫检查点抑制剂反应中的作用:一项回顾性研究,International Immunopharmacology
灞桥樱桃始花期预测模型研究及应用
梨树始花期与气象因子的影响分析及预报模型建立
燃油效率影响因素分析 Analysis of Factors Affecting Fuel Efficiency
灌溉条件下燕麦氮、磷、钾配方施肥效应分析及与产量回归模型的建立
菠萝蛋白酶酶清创与烧伤菌血症的发生:一项回顾性队列研究,Burns
学学这篇免疫浸润文章和作者一样发5+分

网址: 生存分析(Survival Analysis)、Cox风险比例回归模型(Cox proportional hazards model)及 https://www.huajiangbk.com/newsview1851399.html

所属分类:花卉
上一篇: 官方公布!抖音月付分期利息多少?
下一篇: word2019

推荐分享