kaplan meier分析原理-凯普勒梅尔分析原理
在讲 Kaplan-Meier 之前,我得先告诉你,这玩意儿不是那种浩浩荡荡的线性叙事,更像是一种在泥泞里打滚的统计学求生者。它不是给数据画一条完美的线,而是给那些断了腿的人(那些删掉、剔除、要么出于某些特殊缘由没被观察到的点)修一条能走那会儿的路。想象一下你手里拿着一张记录了你所有哥们儿在特定地点的死亡工夫表,第一天只有两个人在场,第三天突然出于战乱只剩下一半,这时候你没法用公式算出一个完美的概率分布,出于分母在变小,分子在消亡。KM 法就是专门为了处理这种“大出血”要么“断档”的战场而生的。 核心逻辑实际上就一句话:盯着那些还在场的人,每天看他们是哪位活到了下一个工夫点,然后叠罗汉,把活下来的概率一层层往下推。别当作这听起来挺玄乎,它就是个好办的累积过程。我们定义一个状态 $S_t$ 为工夫 $t$ 时还活着的样本人数。
然后看工夫 $t+1$ 时,还有多少人没死?那就是 $S_{t+1}$ 了。
要是你知道在 $t$ 到 $t+1$ 这段工夫里,总共活下来多少人,那这段工夫每个人活过的概率就是 $(S_{t+1}/S_t)$。把这些概率一个个乘起来,不就拿到了一个从 0 到 1 的阶梯吗?这就是 Kaplan-Meier 曲线,它不是平滑得像油画一样,它充满了断裂的棱角,每一个转折点都是真数据形成的物理冲击。 大量人搞混 KM 和其他的回归模型,特别是 Cox 比例风险模型。别急,这是两码事。KM 是个纯粹的观测者统计,它只关心“哪位活着还活着”,它不关心死亡的缘由是啥,哪怕那天有个特别凶的杀手出现了也没用,它只看生存人数。Cox 模型则不同,它是个多变量分析工具,它能告诉你到底是抽烟、年龄还是经济状况害得了死亡风险的变化。KM 是“描述性”的,用来回答“有多少人活过多久”;Cox 是“预测性”的,用来回答“风险到底有多大”。你能够用 KM 画一张图,但当你想加入年龄和吸烟量做模型时,就得切换到 Cox 了。
这就是 KM 的局限性,它忒老实,只能记录事实,不能预测因果。 举个具体的例子,假设我们在研究某种新药的效果。
第一期,100 个人用这个药,10 个人死了;第二期,为了对比组,又抽了 50 个没吃药的,结局这 50 个里 3 个人死了。
这时候别急着给数据做正态分布的假设检验,这时候直接上 Kaplan-Meier。
你看,第 1 组在确诊后的第 2 天、3 天、5 天内,死亡人数分别是 2、1、0;第 2 组在第 1 天、2、3 天,死亡人数是 1、0、0。我们逐天算:第一天,第 1 组有 98 人活过,概率是 0.98;第 2 天,第 1 组剩 96 人,概率变成 0.96,环比下降 2%;第 3 天,第 1 组剩 95 人,概率 0.95。第 2 组呢,第一天 97 人,第二天 96 人,概率也从 0.97 降到 0.96。别看步调差不多,但要是你要算一下第 5 天到底哪位还活得好,这个阶梯图忒清楚了,一眼就能看出两组在第 4 天有断崖式下跌,而第 2 组可能是掉得更惨。
这时候你再画 R 语言里的 Kaplan-Meier 图,你会发现那些断点精准地落在数据的起伏处,彻底不会像 OLS 那样强行画一条直线去掩盖那些真的断层。 这里有个细节好办被漠视,就是样本量对曲线形状的拍板性影响。 KM 曲线之故此会有那种“锯齿状”要么“阶梯状”的感觉,本质上是出于它依赖的是条件概率的乘积,而不是好办的累加。
随着工夫推移,分母(存活人数)在急剧削减,这意味着每一步的放大倍数都在变小。
要是一启动样本量挺小,比如只有 10 个人,那第四天的预测概率(1/10)就已经挺大了,后面的曲线就不得不卷起来了,变得挺陡。但要是样本量大,比如 1000 人,那每一步的小概率乘积别看最终叠加起来接近 1,但每一步的波动会更小,曲线也就更平滑一些。
这就是为啥在做多中心临床试验要么回顾性研究时,有时候 KM 曲线看起来像平滑曲线,实际上只是样本量大害得的“数学幻觉”。 如何算呢?实际上逻辑挺好办,公式长得挺像那会儿教过的高斯分布,但前提是你要先把数据转换成“哪位还活着”的列表。先按工夫排序,记录下每个人的初始状态。
然后遍历每一天,遍历所有还在场的人,看他们是否死于当天。对于还在场但没死的人,他们的风险是固定的;对于刚好在今天第 $t$ 天去世的人,他们的风险也是固定的。算出来那天还剩多少人,除以一启动活过的人数,就是当天的生存概率。把这些概率乘起来,就是这个人活到 $t+1$ 天的条件概率。最终把这些概率连起来,你就能看到那条充满断裂的生存轨迹。 真正的难点往往不在于算法本身,而在于数据预处理。
要是你把删失的数据硬塞进数组,用一般/平平的循环一算,出来的结局可能是无意义的。
比如有人明明活到了第 10 天,但出于突然生病在第 9 天被截断,这时候要是你的程序直接跳过,你就丧失了那段存有。KM 的核心就是承认这种“存有即被记录”的原则。
要是你把删失当作死亡,那这 50% 的年生存率就是假的;要是你没把删失算进去,那曲线就是缺失的。
故此在实际操作中,大量人会先构建一个“存活状态”的向量,把那些在第 9 天被截断但之前活过的人,标记为“存活到第 9 天”,这样他们在后续的工夫点(第 10 天、第 11 天等)都能被对纳入计算,哪怕他们实际上早就老死在这个工夫点了。 自然,KM 也不是没有槽点。刚刚说了,它不能做多变量分析,也不能做假设检验。
要是你要比较男性和女性的生存率,直接画两条 KM 图别看直观,但这只是描述了现状,并没有告诉你为啥女性死亡率更高。
这时候你得用 Cox 回归。就连更费事,要是你要比较三种不同治疗组的生存率,KM 只能画三条线,放在一起对比,这会影响统计功效,出于样本量被拆分了。
这时候就得用分层 KM 要么 Cox 模型,把样本队列重新打乱,要么用 Cox 的生存函数来拟合。KM 更像是一个观察者,它站在战壕里看着弟兄们一个个倒下,记录每一秒的亮灯,而不要急着去分析为啥。 最终再说说为啥 KM 如此流行。在医学、生物统计、就连社会学和法学领域,它简直是金标准。
为啥?出于它能处理效率随工夫变化的数据,比如医疗资源紧张、样本库老化,要么某些人群好办被长期观察的人群(survivor bias)。它不假设风险恒定,故此它比 Log-Rank 检验更灵活。Log-Rank 假设所有工夫点的风险是恒定的,一旦数据不符合这个假设,Log-Rank 的结论就是错的。但 KM 准风险随工夫变化,哪怕第 1 天所有人都在死,第 100 天只有一个人还在,KM 依然能计算出精确的生存概率。 故此,下次要是你看到一篇论文里没有画 Kaplan-Meier 图,要么只用了 Log-Rank 检验,那大约率是作者懒得动手,要么他们不知道 KM 的了得之处。KM 图就是那条画在数据边缘的线,它记录了数据的真跳动,那些断点,那些空白,那些出于删失留下的痕迹,只有在_km_图上才会被整个呈现。它不供给完美的预测,但它供给最诚实的叙述。
声明:演示网站所有内容,若无特殊说明或标注,均来源于网络转载,仅供学习交流使用,禁止商用。若本站侵犯了你的权益,可联系本站删除。
