生存分析

在某些领域的分析中,常常用追踪的方式来研究事物的发展规律,比如研究某种药物的疗效,手术后的存活时间,某件机器的使用寿命等。

这种分析的特点是追踪研究的对象都要经过一段时间,而且经常会碰到出于某种原因无法继续追踪的情况。

生存分析就是用来研究这段追踪时间的分布规律以及相关因素的一种统计分析方法。

一、生存分析的一些概念

1.观察起点
是指由研究者确定的研究开始时的时间

2.终点事件
是指由研究者确定的某种发生的事件,这种事件必须明确定义,而且并不一定是消极事件

3.生存时间
是指从观察起点到终点事件发生时所经历的时间跨度,这个时间也未必是通常意义上的时间,也可以是和时间相关的变量。比如距离等,具体要根据研究目的而定义。

4.删失数据
由于经常会碰到出于某种原因无法继续追踪的情况,导致终点事件分为两种:一种是完整数据,用t表示,它准确的度量了从观察起点到终点事件发生的完整时间,提供的生存时间的信息是全面准确的。另一种是删失数据,用t+表示,由于某种原因没有追踪到终点事件的发生,它提供的生存时间信息是不完整的。造成删失数据的原因主要有失访、终点事件的发生并不是由于预定义的原因造成、研究结束时终点事件并未发生等。

5.死亡概率
表示某时段开始存货的个体,在该时段内死亡的可能性,如年死亡概率q=某年内死亡人数/某年年初人口数,如果年内存在删失数据,需要对分母进行校正,校正人口数=年初人口数-删失例数/2

6.生存概率
某时段开始时存活的个体,到该时段结束时让然存活的可能性p=某年存活满一年的人数/某年年初人口数=1-q,如果年内存在删失数据,需要对分母进行校正,校正人口数=年初人口数-删失例数/2

7.生存函数
也称为生存率或累积生存概率,是随着时间的变化而变化的,是关于时间的函数,是指0时刻存活的个体经历t个时段之后仍然存活的可能性,或者说个体的生存时间T大于某时刻t的概率,t=0时,生存函数取值为1,随着t增大,生存函数值逐渐减小

如果存在删失数据,则需要分段计算生存概率,在应用概率的乘法定理将分段概率相乘,

注意:生存概率是针对单位时段而言的,生存函数是生存概率的累积结果。

8.死亡函数
指个体的生存时间小于某个时刻t的概率,和生存函数相反,t=0时,死亡函数取值为0,随着t增大,死亡函数值逐渐增大

9.死亡密度函数
个体在某个时刻t的瞬时死亡率称为死亡密度函数,是死亡函数的导数

10.风险函数
生存到t时刻的个体在此后一个时间单位的瞬时死亡率为风险函数

11.半数生存期
也称为中位生存期,是生存函数的中位数,表示恰好有50%的个体存活的时间,即生存率为50%时对应的生存时间,是描述集中趋势的指标。

12.四分位数间距
是指生存期的四分位数间距,是反映离散程度大小的指标

==============================================

二、生存分析简介
结合上述概念,我们总结一下生存时间数据的特点:
1.因变量有两个:生存时间和终点事件的发生,这和Logistic回归不同,Logistic回归只考虑终点事件是否发生一个因变量。
2.可能存在删失数据
3.由于生存时间的数据都是长期追踪的结果,期间难以控制混杂因素,因此生存时间的分布类型很复杂,常呈现偏态和不规则状态,难以用传统的统计方法加以分析。
由于生存时间数据的特殊性,因此需要使用生存分析来处理。

生存分析的主要内容
1.描述生存过程
研究生存时间的分布特点,估计生存率及平均存活时间,绘制生存曲线等,根据生存时间的长短,可以估算出各个时点的生存率,并根据生存率来估计中位生存时间,也可以根据生存曲线分析其生存特点,一般使用Kaplan-Meier法和寿命表法

2.比较生存过程
可通过生存率及其标准误对各样本的生存率进行比较,以探讨各组间的生存过程是否存在差异,一般使用Log-rank检验和Breslow检验

3.分析危险因素
是通过生存分析模型来探讨影响生存时间和终点事件的保护因素和不利因素,因素作用的大小及方向,相对危险度的大小,基本使用Cox回归模型

4.建立数学模型
建立最终的数学模型,也是通过Cox回归模型完成

============================================

三、生存分析的具体方法
生存分析方法可以分为描述法、参数法、半参数法和非参数法
1.描述法
根据样本观测值提供的信息,直接用公式计算出每一个时间点或每一个时间区间上的生存函数、死亡函数、风险函数等,并采用列表或绘图的形式显示生存时间的分布规律
优点:方法简单且对数据分布无要求
缺点:不能比较两组或多组生存时间分布函数的区别,不能分析危险因素,不能建立生存时间与危险因素之间的关系模型。

2.非参数法
估计生存函数时对生存时间的分布没有要求,并且检验危险因素对生存时间的影响时采用的是非参数检验方法
优点:可以估计生存函数,可以比较两组或多组生存分布函数。可以分析危险因素对生存时间的影响,对生存时间的分布没有要求。
缺点:不能建立生存时间与危险因素之间的关系模型。

3.参数法
根据样本观测值来估计假定的分布模型中的参数,获得生存时间的概率分布模型
优点:可以估计生存函数,可以比较两组或多组生存分布函数。可以分析危险因素对生存时间的影响,可以建立生存时间与危险因素之间的关系模型。
缺点:需要事先知道生存时间的分布

4.半参数法
不需要对生存时间的分布做出假定,但是却可以通过一个模型来分析生存时间的分布规律,以及危险因素对生存时间的影响,最著名的就是COX回归
优点:可以估计生存函数,可以比较两组或多组生存分布函数。可以分析危险因素对生存时间的影响,可以建立生存时间与危险因素之间的关系模型,不需要事先知道生存时间的分布。

可以说半参数法集合了上述三种方法的优点。

=========================================

下面介绍一下生存分析时每步对应的方法

<1>Kaplan-Meier法
也称为乘积极限法,适用于小样本资料,基本思路是:将生存时间从小到大排序,计算不同时间的死亡概率和生存概率,然后采用条件概率及概率的乘法原理计算生存函数,并做生存曲线。

<2>寿命表法
样本较大时,数据可按年、月、日进行分组,得到若干时间段的数据频数表,这种形式的数据资料可以使用寿命表法进行生存函数估计,基本思路是:确定等距的时间间隔,求出个体在治疗前后各时期的生存概率,根据概率乘法法则,将各时期生存概率相乘,即得到自观察开始到各时点的生存函数并
做生存曲线,例如:1年生存率P1,5年生存率P1*P2*P3*P4*P5

<3>Log-rank检验
也称为对数秩检验或时序检验,基本思想为:在原假设成立的前提下,根据两种处理不同生存时间的期初观察人数和理论死亡概率计算出的理论死亡数应该与实际死亡数相差不大,如果相差较大,则原假设不成立,可认为两条生存曲线存在统计学差异,统计量服从自由度为组数-1的卡方分布
H0:两种疗法的生存函数相同(两条生存曲线相同)
H1:两种疗法的生存函数不同图(两条生存曲线不同)

<4>Breslow检验
和Log-rank检验类似,只是权重不同,Breslow检验给组间死亡的近期差别更大的权重,对近期差异敏感,而Log-rank检验给组间死亡的远期差别更大的权重,对远期差异敏感

<5>Cox回归模型
也称为Cox比例风险模型,是一种半参数模型,Log-rank检验和Breslow检验都属于单因素分析法,面对多个影响因素时往往无能为力,而Cox回归模型可以分析多个因素对生存时间的影响,且不要求资料服从特定的分布,是比较全面的一种分析方法。

Cox回归模型具有一般回归分析的特点,在其他因素固定的情况下,可以比较某一因素的不同水平对生存时间的影响。它与Logisitc回归模型有相似之处,在估计出回归系数之后,可以计算出相应因素的相对危险度,但是Logisitc回归模型的因变量只是定性变量,也就是事情的结果(终点事件),而没有考虑生存时间的长短,而Cox回归模型是以生存时间和终点事件为因变量,更多的利用了资料的信息。

Cox回归模型的表达式为

X1,X2,X3...Xp指可能影响死亡率的危险因素,也称为协变量

t表示生存时间

h(t)表示具有协变量X1,X2,X3...Xp的个体在t时刻的风险函数,即t时刻存活的个体在t时刻的瞬间死亡率

h0(t)表示基准风险函数,即当协变量X1=X2=...Xp=0时,个体在t时刻的风险函数

β1,β2,β3...βp表示各协变量所对应的回归系数,其估计值可以从样本中计算,回归系数的实际意义是:在其他自变量固不变的条件下,协变量X每改变一个单位所引起的相对危险度RR值的自然对数。

β>0,RR>1,x越大表示个体死亡的风险越大
β=0,RR=1,则x的取值对死亡风险无影响
β<0,RR<1,x越大表示个体死亡的风险越小

exp(βpXp)表示相对危险度RR值或风险比,我们取任意两个群体的风险函数之比


可见,回归系数β就是协变量X的相对危险度RR值的自然对数,从上面的公式我们也可以看出,Cox回归模型的基本思想是在风险函数和危险因素之间建立广义线性模型关联,这样就可以考察危险因素对风险函数的影响效果。

比例风险模型假定:
RR值与基准风险函数无关,也与时间t无关,即模型中的自变量效应不随时间而改变,Cox回归模型只有在这个假定条件下进行拟合才是有效的,类似于线性回归模型中的线性相关假设,对此,在分析时要进行验证。

Cox回归模型的拟合步骤
1.估计参数:使用极大似然法
2.参数显著性检验:对于整个模型使用似然比检验,对于单个自变量使用Wald检验或比分检验
3.回归系数的区间估计
4.拟合回归方程

时间: 2024-10-13 20:01:50

生存分析的相关文章

survival analysis 生存分析与R 语言示例 入门篇

生存分析,survival analysis,顾名思义是用来研究个体的存活概率与时间的关系.例如研究病人感染了病毒后,多长时间会死亡:工作的机器多长时间会发生崩溃等.  这里“个体的存活”可以推广抽象成某些关注的事件. 所以SA就成了研究某一事件与它的发生时间的联系的方法.这个方法广泛的用在医学.生物学等学科上,近年来也越来越多人用在互联网数据挖掘中,例如用survival analysis去预测信息在社交网络的传播程度,或者去预测用户流失的概率. R里面有很成熟的SA工具. 本文介绍生存分析的

Spark2 生存分析Survival regression

在spark.ml中,实现了加速失效时间(AFT)模型,这是一个用于检查数据的参数生存回归模型. 它描述了生存时间对数的模型,因此它通常被称为生存分析的对数线性模型. 不同于为相同目的设计的比例风险模型,AFT模型更容易并行化,因为每个实例独立地贡献于目标函数. 当在具有常量非零列的数据集上匹配AFTSurvivalRegressionModel而没有截距时,Spark MLlib为常量非零列输出零系数. 这种行为不同于R survival :: survreg. 导入包 import org.

Cox回归模型【生存分析】

参考:<复杂数据统计方法——基于R的应用> 吴喜之 在生存分析中,研究的主要对象是寿命超过某一时间的概率.还可以描述其他一些事情发生的概率,例如产品的失效.出狱犯人第一次犯罪.失业人员第一次找到工作.青少年第一次吸毒等等. 生存函数S(t): S(t)=P(T>t)=1-P(T<=t),t>0 T:表示寿命的随机变量 t:特定时间 综合生存函数图:用到包survival 案例:口腔癌数据

R语言生存分析可视化分析

完整原文链接:http://tecdat.cn/?p=5438 生存分析对应于一组统计方法,用于调查感兴趣事件发生所花费的时间. 生存分析被用于各种领域,例如: 癌症研究为患者生存时间分析, “事件历史分析”的社会学 在工程的“故障时间分析”. 在癌症研究中,典型的研究问题如下: 某些临床特征对患者的生存有何影响? 个人三年存活的概率是多少? 各组患者的生存率有差异吗? 基本概念 在这里,我们从定义生存分析的基本术语开始,包括: 生存时间和事件 生存功能和危险功能 癌症研究中的生存时间和事件类型

Forest plot(森林图) | Cox生存分析可视化

本文首发于“生信补给站”微信公众号,https://mp.weixin.qq.com/s/2W1W-8JKTM4S4nml3VF51w 更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号,给您干货. Meta分析的结果使用森林图进行可视化展示很常见,其实COX生存分析也能用森林图展示. 之前分享过绘制KM曲线R|生存分析(1),诺莫图展示COX结果Nomogram(诺莫图) | Logistic.Cox生存分析结果可视化,本文将简单的介绍如何使用R-survminer包绘制Cox生

R生存分析AFT

1. Surv Description 创建一个生存对象,通常用作模型公式中的响应变量. 参数匹配是此功能的特殊功能,请参阅下面的详细信息. Surv(time, time2, event, type=c('right', 'left', 'interval', 'counting', 'interval2', 'mstate'), origin=0) is.Surv(x) Argumentstime对于右删失数据,这是一个跟踪时间.对于区间数据,第一个参数是区间的开始时间. event 状态指

R语言如何在生存分析与Cox回归中计算IDI,NRI指标

原文链接:http://tecdat.cn/?p=6095 读取样本数据 D=subset(pbc, select=c("time","status","age","albumin","edema","protime","bili")) D$status=as.numeric(D$status==2) D=D[!is.na(apply(D,1,mean)),] ; d

泰坦尼克生存分析

泰坦尼克数据集描述: 案例数:1309 特征数:14个,包括年龄,性别,仓位等 总存活率:38% 统计描述部分只详细看仓位和性别这两个特征值,以及它们的联合起来对生存率的影响,我们通过简单的三张统计表格就可以发现数据具有欺骗与真实的双面性. 从男女各自的总幸存率看,男女幸存比大约为1:2,单从这点看男女幸存的比例并不是很悬殊.但是结合人数占比,男性大约占了6.5成,就可以看出总幸存比并不能很好的描述泰坦尼克中男女幸存的真实情况,最能反映性别幸存差异的是男女在各自性别中的幸存比例,可以看到男性的死

R语言︱异常值检验、离群点分析、异常值处理

在数据挖掘的过程中,数据预处理占到了整个过程的60% 脏数据:指一般不符合要求,以及不能直接进行相应分析的数据 脏数据包括:缺失值.异常值.不一致的值.重复数据及含有特殊符号(如#.¥.*)的数据 数据清洗:删除原始数据集中的无关数据.重复数据.平滑噪声数据.处理缺失值.异常值等 缺失值处理:删除记录.数据插补和不处理 主要用到VIM和mice包 install.packages(c("VIM","mice")) 1.处理缺失值的步骤 步骤: (1)识别缺失数据: