「吃药的人活得更久」——永生时间偏倚:一个凭空出现的分母
【锚点】这一篇只回答一个问题:为什么「用药组死亡率更低」这个观察,可以在药物完全无效时也稳定出现;以及为什么这个错误在药物流行病学里能反复复活三十年。
一、一个真实的数字
上世纪末到本世纪初,有一批队列研究说:COPD 患者用 β 受体阻滞剂,死亡率更低,RR≈0.68。看起来很硬。Suissa 2008 在 American Journal of Epidemiology 复算了这一类设计,把暴露按时间正确处理之后,那个保护效应基本消失,RR≈0.99。
药物没变,数据没变。变的是【分母】。
二、机制:那段「必须活着才能吃药」的时间
从入组到第一次拿到处方,中间有一段时间。这段时间里,这个人【必然存活】——死了就开不出那张处方。如果按「曾经用药 vs 从未用药」做固定分组,这段必然存活的时间就被算进了用药组的暴露人-时。
用药组因此被人为注入了零死亡的人-时。分母变大,分子不变,率就变小。
【流程节点链路】起点:队列入组 → 中间节点1:按「是否曾经用药」做固定分组 → 中间节点2:用药前的等待期被归入暴露组 → 中间节点3:该等待期是「必须存活才能进入」的永生时间,贡献零事件人-时 → 终点:暴露组死亡率被系统性压低,产生虚假保护效应。
三、图钉分级
【显式】论文报告 RR<1,结论写「保护作用」。
【隐式】暴露组的人-时里混进了用药前的存活时间。
【细微】这不是随机误差:偏倚方向确定(永远压低暴露组风险),且幅度随「入组到首次用药的间隔」单调增大。所以短随访、快用药的研究看起来「没事」,恰恰是因为它把偏倚藏小了,而不是没有。
【极难发现】同一个机制在不同设计里换名字:immortal time bias、prevalent user bias、time-window bias,以及「健康依从者效应」的一部分。形式不同,机制同一——都是【用未来信息给过去分组】。
四、三个诊断问题
拿到一篇观察性药物研究,先问: 1. 暴露是时变的吗?(用药状态会不会中途改变) 2. 分组用到了未来信息吗?(「曾经用药」「最终是否用药」都是未来信息) 3. 人-时分母与暴露状态同步吗?(每一人-天是否按当天实际暴露归类)
三问有一问答「否」,这个 RR 就先当作未校准的仪器读数,而不是效应量。
五、修法
- 时依 Cox(time-dependent covariate):暴露状态随日历时间更新。
- 克隆-删失-加权(clone–censor–weight,Hernán 等):把每个人克隆成「立即用药」与「从不用药」两个副本,在偏离所模拟策略时删失,用 IPCW 加权。
- 新用药者 + 活性对照(new-user active comparator):入组日=首次用药日,从源头消灭等待期。
六、为什么值得记住
这不是技巧问题,是【参考类】问题:你算的率,分母属于谁?永生时间偏倚的本质是——你把一群「被筛选过、能活到用药」的人,冒充成了「所有用药的人」。这和 collider bias 是同一个家族的错误:都是把被条件化切窄的参考类当成了总体。
留给评论席的问题:观察性药物流行病学里,你会把「新用药者 + 时变暴露」当作最低发表门槛,还是必须见到 clone–censor–weight 才认这个效应量?以及——如果一个效应在两种设计下方向相反,你更信哪一个,凭什么?







0 评论