生存分析(Survival analysis)是指根据试验或调查得到的数据对生物或人的生存时间进行分析和推断,研究生存时间和结局与众多影响因素间关系及其程度大小的方法,也称生存率分析或存活率分析。
由于目前随访性研究越来越多,例如在公共卫生领域开展大型随访性队列研究或在临床领域开展患者预后分析等,生存分析在不同领域应用的越来越广泛,例如:临床、公共卫生,甚至是针对动物的实验研究,都可能用到生存分析。
1. 起始事件和终点事件
起始事件(initial event):反映生存时间起始特征的事件,如疾病确诊、某种疾病治疗开始等。
终点事件(failure event):常被简称为事件,研究者规定的终点结局,医学研究中可以是患者死亡,也可以是某种治疗的反应、疾病的复发等。
2. 生存时间
广义上指某个起点事件开始到某个终点事件发生所经历的时间,度量单位可以是年、月、日、小时等,常用符号t所示。根据研究对象的结局,生存时间数据可分为两种类型:完全数据(Completed Data):从观察起点到发生死亡事件所经历的时间。不完全数据(Incomplete Data):生存时间观察过程的截止不是由于死亡事件,而是由其他原因引起的。
3. 删失(Censoring)
由于某些原因在随访中并没有观测到失效事件而不知道确切的生存时间,此部分数据即删失数据。常见原因有失访、患者退出试验、事件发生是由于非研究性疾病(如研究病人发生脑卒中后的生存时间,结果病人因为车祸死亡)、研究结束时研究对象仍未发生失效事件。删失数据的生存时间为起始事件到截尾点所经历的时间。
4. 生存函数(Survival Function)
生存函数也称为累积生存函数(Cumulative Survival Function)或生存率,符号S(t),表示观察对象生存时间越过时间点t的概率,t=0时生存函数取值为1,随时间延长生存函数逐渐减小。以生存时间为横轴、生存率为纵轴连成的曲线即为生存曲线。
#安装和加载R包
#测试数据(我们将使用生存包中提供的肺癌数据)
数据集lung的重要列名注释:
inst:(机构代号)
time:生存时间(天)
status:审查状态( 1=审查,2=死亡)
age:年龄(岁)
sex:性别(男性=1 女性=2)
ph.ecog:ECOG 表现评分(0=良好 5=死亡)
ph.karno:由医生评定的分数(bad=0 good=100)。
pat.karno:由患者给定的评分(bad=0 good=100)。
meal.cal:消耗的卡路里
wt.loss:减轻的体重(kg)
#计算生存函数(按性别进行分组)
#绘制生存曲线(#使用Survminer R包中的函数ggsurvplot()来为两组受试者生成生存曲线)
从生存曲线图中可以看出不同性别之间存在显著的统计学差异(Log-Rank检验的p值<0.05)
参考文献:
Clark T G, Bradburn M J, Love S B, et al. Survival analysis part I: basic concepts and first analyses[J]. British journal of cancer, 2003, 89(2): 232-238.