生存分析详细解读

  • 2019 年 12 月 19 日
  • 筆記

探究变量之间的关系是数据挖掘中的一个基本分析内容,对于常规的离散型或者连续型变量,有很多的方法可以用于挖掘其中的关系,比如线性回归,逻辑回归等等。然而有一类数据非常的特殊,用回归分析等常用手段出处理这类数据并不合适,这类数据就是生存数据。

常规数据在表示时,只需要一个值,比如患者的血压,性别等数据,不是连续型就是离散型;生存数据则有两个值,第一个是生存时间,可以看做是一个连续型的变量,第二个是生存事件,可以看做是离散型的变量。比如分析治疗后的患者生存情况,在观测期间,可以看到不同患者的存活时间,这个值就是生存时间,而有些患者可能在观察期内出现死亡,复发等情况,死亡或者复发则称之为事件。

生存分析还有一个特殊的地方就是缺失值的处理,对于常规数据,缺失值很多时可以直接丢掉,只有少量缺失值时可以用算法进行填补,而生存数据中的缺失值则不同。在观测期间,患者可能出现了其他的事件导致后续得不到对应的生存数据,比如患者出现意外事故身亡了,后续的生存数据就会缺失,很显然生存数据是不能用算法填补的,一定要是实际观测的结果。但是这个数据也不能直接丢掉,因为从观测开始到患者意外身亡的这段时间内的生存数据是有意义的,在进行生存分析时,这部分数据也可以利用起来。

生存数据的缺失,用censoring表示,称之删失。根据删失的原因,又可以细分为不同的类型,像患者意外身亡,导致无法随访的这种类型,称之为右删失。考虑到生存数据的特殊性,在进行生存分析时,必须采用专用的分析策略。

和回归方程类似,在生存分析中,也有相应的函数来描述生存数据之间的关系,示意如下

  1. survivla function
  2. hazard function

第一个称之为生存函数, 用于描述时间点和生存概率之间的关系,第二个称之为风险函数,用于描述时间点和事件出现的概率。在分析时,需要根据已有的观测数据进行评估拟合,得到以上两种函数。

对于生存函数的估计,最常用的是Kaplan-Meier survival estimate方法,简称KM方法。该方法是一种无参估计,适用范围广。该方法定义的生存函数如下

对于生存分析的可视化,最常见的就是如下所示的生存曲线

上图表示不同性别患者的生存曲线,其中的深色线条部分根据实际的观测数据进行绘制,横坐标代表时间点,纵坐标代表生存概率,即每个时间点存活患者的比例。可以看到在线条上存在很短的竖线,这代表在该时间点存在了删失数据。

在深色线条的上下两侧,各有一条折线,构成了一个浅色的背景区域。 这两条折线表示的是用KM方法计算得到的每个时间点生存概率的置信区间,通常是95%的置信区间。在实际分析中,往往需要比较不同条件下生存曲线的差异,最常用的算法是log-Rank test, 用来评估两条生存曲线的差异是否具有统计学显著性。

KM算法用于单因素生存分析,而且这个因素必须为二分类变量,如上图所示的两种性别。对于连续型的自变量或者多个自变量,则可以采用cox回归分析。