生存分析(二)中位生存时间和中位随访时间
几乎所有的生存分析中,有两个结果几乎是必报道的,一个是生存曲线,一个是中位生存时间。本文直观地介绍一下生存曲线怎么来的,中位生存时间怎么算的。然后顺便说一下中位随访时间怎么算的。因为最近有几个朋友恰好都问过这个问题,中位生存时间知道怎么回事,但是中位随访时间就不知道怎么计算了。所以本文一并说一下。
(1)先说生存曲线
生存曲线的样子大家肯定都见过,就像下面这个图。
生存曲线相当于把不同时间点计算的生存率用阶梯形状连接起来。所以生存曲线的纵坐标写的是survival probability。不过这里关键的一点也就是如何计算生存率。
理论上,如果没有失访,结局只有死亡和生存两类,这种情况下,计算生存率很简单,根据不同时间点的死亡人数计算即可。然而对于生存数据来说,困难的一点在于:有失访存在。而失访的人,你是没有办法判断他是死亡还是生存的。
比如下面10个数据(带+号的数据表示失访,单位为月),表示第3个月死亡1例,第4个月失访1例,第5.7个月失访1例,……:
用图形展示如下:
如果要计算第3个月的生存率,很简单,总共10人,死亡1例,生存率就是90%。但如果计算第6个月生存率就比较棘手,4月和5月失访的2个人,到底算是生存还是死亡呢?如果是生存,那生存率就是90%,如果是死亡,那生存率就是70%。而问题就在于:没有人知道他们是否生存。
所以常规的计算方式在这里不大好使。所以生存分析中就采用了一种叫做Kaplan-Meier的估计方法(也叫product-limit法)来估计生存率。它的思路其实很简单,就是:如果要计算第6个月的生存率,首先用于计算的这些人应该活过第5个月。这种计算也叫做条件概率,因为第6个月的计算,依赖于第5个月的条件。(其实统计分析中经常出现条件概率、条件参数之类的词,所谓条件,就是要依赖于一定的条件之上。就比如你要迈出第二步,必须先迈出第一步。所以很奇怪:阿基里斯为什么能追上乌龟呢?)
所以你会发现,在生存分析的计算中,往往survival和risk是并存的。因为生存分析中很重视risk。刚才我们提到,要计算第6个月的生存,必须活过第5个月,这些活过第5个月的人,就叫做at risk的人。只有这些人才有死亡风险,第3个月就死亡的人,不在第6个月的risk之中。
生存分析的Kaplan-Meier法估计结果如下图所示:
可以看出,Kaplan-Meier法估计的生存率是一个累积的生存率,或者说是一个条件的生存率,前面的条件再乘以当前的生存率。
体现在生存曲线上,就是如下图所示的样子:
(2)中位生存时间
在生存曲线的基础上理解中位生存时间就比较容易了。从生存曲线来看,中位生存时间就是纵坐标=0.5(即生存率在50%的时候所对应的时间)。
中位生存时间不能简单地理解为“死亡人数到了一半”或“存活人数还剩一半”,正如前面说的,因为它有失访问题。严格来说就是累积生存率=0.5的时候所对应的时间t。
有时候会出现这种情况:没有中位生存时间。也就是说,发生“死亡”的人数太少,就像下面这个图。
你会发现中位生存时间估计不出来,图中很清楚地可以看出,生存率50%的时候,没有对应的时间。这种情况下,要么你就报道一下某个时间点的生存率(如1年生存率、3年生存率等);或者如果数据不是很偏态的话,也可以报道一下平均生存时间。
(3)中位随访时间
不管是中位生存时间还是中位随访时间,其本质都是一样的,都是中位数。只不过指标不同,中位生存时间是生存时间的中位数,中位随访时间是随访时间的中位数。
很多人不明白的地方在于:随访时间的中位数怎么求?
其实仔细想想中位生存时间就不难明白,中位生存时间的计算,“死亡”作为结局,其它作为删失,没法获得结局。中位随访时间则恰恰相反,删失的那些是结局(因为就是随访到那个时间点了),“死亡”则是作为删失。为什么呢?因为死亡的人,你不知道(如果不死亡的话)能够随访到什么时候。
所以想明白了这一点,中位随访时间就知道如何计算了。就是把随访作为结局,把“死亡”作为删失,计算中位生存时间即可。