写在前面
在观察性研究和因果推断的语境里,很多概念单独看并不难,但一旦放在同一篇文章或同一个研究设计里,就很容易混淆。最常见的一组混淆包括:
the timing of exposure到底是什么target trial emulation中的time zero是什么index date、baseline、time zero是不是一回事collider bias、immortal time bias为什么都和“时间定义不清”有关grace period是什么,为什么它既必要又危险time-varying confounding为什么不能靠“在模型里调一下变量”简单解决IPTW和IPCW到底分别在解决什么问题
我们这篇文章试图把这些概念放到同一套时间框架中,给大家做一次系统整理。
整个的主线其实只有一句话:
在 target trial emulation 中,入组时点、治疗策略定义时点、随访起点、暴露发生时间、后续协变量更新时间,必须在同一条时间轴上被严格定义;一旦定义错位,就很容易产生偏倚。
一、先从最基础的问题讲起:the timing of exposure 和 time zero 是一回事吗
结论先说:
不是同一回事,但关系极其密切。
1. the timing of exposure 是什么
the timing of exposure 指的是:
暴露或治疗发生在什么时候。
例如:
- 患者在确诊当天开始用药
- 患者在住院后第 3 天才接受干预
- 患者在感染前已经连续服药多年
这些都属于 exposure 的时间定位问题。
2. time zero 是什么
time zero 指的是:
研究正式开始计时的时点。
也就是:
- 从这一刻开始判断谁进入风险集
- 从这一刻开始计算随访时间
- 从这一刻开始观察结局
- 从这一刻开始比较不同治疗策略
在 target trial emulation 中,time zero 对应于理想随机试验中的“随机分组并开始随访”的时点。
3. 两者的关系
两者的关系可以概括为:
time zero是整项研究的时间原点the timing of exposure是暴露相对于这个原点的位置
所以,暴露可以发生在:
time zero之前time zero当下time zero之后
它们概念不同,但必须对齐。因为只要暴露定义和 time zero 不匹配,偏倚就很容易出现。
二、time zero、index date、baseline、exposure timing 之间的区别与联系
这四个概念经常一起出现,因此最容易混。
1. time zero
如前所述,time zero 是研究开始比较结局的起点。
2. index date
index date 是数据库研究中常用的术语,通常指:
给每个研究对象定义的锚点日期。
它常用于:
- 划定基线窗口
- 划定暴露窗口
- 划定随访窗口
在很多研究中,index date 实际上就承担了 time zero 的角色,但严格说:
index date更偏向数据管理和操作定义time zero更偏向因果推断和试验设计中的起点定义
3. baseline
baseline 不是单纯一个日期,而是:
围绕起点时刻所定义的起始状态。
它可以指:
time zero当下的变量值time zero前一段窗口中收集到的起始协变量信息
例如:
- 年龄
- 性别
- 既往病史
- 基线实验室指标
- 基线用药史
都属于 baseline information。
4. exposure timing
exposure timing 讲的是暴露相对于 time zero 的发生位置。
例如:
- 在
time zero当天开始治疗 - 在
time zero之前已经长期暴露 - 在
time zero之后几天内启动治疗
5. 一个最实用的理解框架
看到一篇观察性研究时,我们可以依次问四个问题:
time zero是哪一天?index date是哪一天?它是否等于time zero?baseline是如何定义和测量的?- 暴露是在
time zero前、当时还是之后发生的?
只要这四个问题不清楚,后面的因果解释几乎一定会有风险。
三、为什么 target trial emulation 如此强调时间对齐
target trial emulation 的核心价值,不只是“模仿随机对照试验”这么抽象的一句话,而是迫使研究者在开始分析前回答以下问题:
- 谁在什么时点符合入组条件?
- 从哪一刻开始随访?
- 治疗策略在什么时点被分配或定义?
- 结局从哪一刻开始计数?
- 哪些变量是 baseline 变量,哪些已经是 post-baseline 变量?
在理想情况下,下面三个时点应尽量对齐:
- eligibility assessment
- treatment assignment or strategy assignment
- start of follow-up
如果这三者不对齐,就容易出现:
immortal time biasselection biascollider bias- 对 post-baseline variables 的错误调整
- 对 dynamic treatment strategies 的错误建模
四、为什么 time zero 设错会导致偏倚
下面分两类讲。
1. immortal time bias:随访开始太早,暴露定义太晚
immortal time bias 的核心是:
某人必须先“活到未来某个时点”,才有资格被归入暴露组;如果分析时却把这段时间提前算入暴露组,就会让暴露组看起来获益。
例子
研究问题:
住院后使用某药是否降低 30 天死亡率?
错误设计:
- 把住院当天设为
time zero - 只要患者在住院后 7 天内任意一天开始用药,就归入 treated 组
- 但从住院当天起就把这些患者算作 treated
如果某患者第 5 天才开始用药,那么:
- 第 0 天到第 5 天,他实际上还没有接受治疗
- 但若想最终进入 treated 组,他必须先活到第 5 天
于是 treated 组“白赚”了一段必须生存的时间,治疗效果会被高估。
本质
这里的问题不是“治疗启动得晚”,而是:
time zero 与 exposure timing 没有被正确处理。
2. collider bias / selection bias:先按暴露后的事件筛人,再比较暴露
另一类常见错误是:
把研究起点放在一个发生于暴露之后、且可能受暴露影响的事件之后。
这时,入组样本已经被“选择机制”筛过一遍,比较结果可能失真。
五、用 COVID-19、ACEI/ARB 的例子理解 collider bias
一个经典例子来自疫情期间关于 ACE inhibitors 和 angiotensin receptor blockers 的研究讨论。
研究问题大致是:
既往使用 ACE inhibitors 或 ARB,是否会影响 COVID-19 患者的死亡等结局?
这类研究常见的做法是:
- 先筛出所有已经确诊 COVID-19 的患者
- 再在这些人中比较:
- 正在使用 ACEI/ARB 的人
- 未使用 ACEI/ARB 的人
- 然后比较死亡率或其他不良结局
表面看,这似乎很自然,因为研究对象就是“COVID-19 患者”。但这里潜在的问题在于:
“是否感染 COVID-19”这个事件发生在暴露之后,而且可能同时受到暴露与其他危险因素的影响。
1. 问题是如何出现的
假设在当时的理论框架下,有人提出:
ACEI/ARB 可能会增加感染 COVID-19 的概率。
如果这个假设成立,那么:
- 服药者,即使其他感染危险因素较少,也可能因为药物暴露而进入“COVID 患者”样本
- 未服药者,若也进入“COVID 患者”样本,则可能需要具备更多其他危险因素,例如更重的心肺基础病、更高龄或更多暴露机会
这样一来,在“已经感染 COVID-19 的人”这个被筛选过的人群里,可能出现一种人为关系:
- 服药者反而平均更“健康”一些
- 未服药者反而携带更多其他高危因素
这些其他高危因素又会增加死亡风险。
于是,当研究者在“感染者”中比较服药与未服药的死亡率时,看到的差异不再只是药物效应,而混入了样本选择机制造成的差异,这就是潜在的 collider bias。
2. 这个例子的核心逻辑
可以把“感染 COVID-19”想象成一道门。
进入这道门,可能有两条路:
- 路 A:因为服用了某药,更容易感染
- 路 B:因为存在其他多个风险因素,更容易感染
如果研究只纳入已经进门的人,那么在门内人群中就可能出现这种反向关系:
- 有路 A 的人,不必具备太多路 B 的因素也能进门
- 没有路 A 的人,往往需要更多路 B 的因素才能进门
于是门内样本不再可比。
3. 这个例子最终说明了什么
后来作者进一步检查数据,发现:
ACEI/ARB 与是否被诊断为 COVID-19 并无明显关联。
这意味着前述 collider bias 在这项研究中更接近“理论上的潜在问题”,而不是实际中已经造成严重偏倚的问题。
但这个例子非常重要,因为它说明了一个通用原则:
如果入组条件依赖于暴露后的事件,而该事件又同时受暴露和其他危险因素影响,就必须警惕 collider bias。
六、什么是 grace period
现实世界的临床策略往往不是“在 time zero 的那一刻立刻开始治疗”,而是:
- 确诊后 2 天内开始
- 入院后 24 小时内开始
- 手术后 3 天内开始
这时就会出现 grace period。
1. 定义
grace period 指的是:
在研究起点之后,允许治疗在一段合理窗口内启动的时间段。
例如:
- 策略 A:确诊后 2 天内开始抗病毒治疗
- 策略 B:确诊后 2 天内不开始抗病毒治疗
这里“2 天内”就是 grace period。
2. 为什么需要 grace period
因为在真实临床实践中:
- 医生通常需要一定时间评估病情
- 检查结果不一定在入组瞬间全部可得
- 药物启动存在流程上的自然延迟
如果研究强行把策略定义成“必须在 0 秒钟立刻开始”,往往不符合现实,也不符合临床决策过程。
因此,grace period 不是随意放宽,而是:
对真实治疗策略的合理刻画。
3. 为什么 grace period 也会带来偏倚风险
因为在 grace period 内:
- 有人可能先发生结局
- 有人会因为病情恶化而启动治疗
- 有人会因为病情较轻而不启动治疗
如果研究者把“几天后才开始治疗的人”从 time zero 起就算作 treated,仍然会产生 immortal time bias。
所以,grace period 的存在不等于偏倚自动被解决;它只是让治疗策略的定义更真实,但分析方法必须同步调整。
七、time-varying confounding 为什么麻烦
time-varying confounding 指的是:
混杂因素不是固定不变的,而是随时间变化,并且其变化会同时影响后续治疗和结局。
常见例子包括:
- 每日病情严重程度
- 动态氧饱和度
- 炎症指标变化
- 血压、肾功能、SOFA score 的更新
1. 为什么它比普通混杂更复杂
普通 baseline confounder 的处理思路通常是:
- 在模型中进行调整
- 或在倾向评分中纳入
但 time-varying confounder 的关键困难在于:
- 它影响后续治疗是否发生
- 它影响最终结局
- 它往往又受到先前治疗的影响
第 3 点是整个问题的核心。
2. 一个典型结构
设:
L_t表示时点t的病情严重程度A_t表示时点t的治疗
那么现实中常见的是:
L_t影响A_tA_t影响未来的L_{t+1}L_t影响结局Y
于是,L_t 既是后续治疗的混杂因素,又是先前治疗的后果。
3. 为什么“直接调整”可能出错
如果把 post-baseline 的 L_t 直接放进一个普通回归模型中调整,可能发生两种问题:
- 把治疗通过改善病情而产生的真实效应“调掉”
- 因为调整了受先前治疗影响的变量而引入新的偏倚
这就是经典的 treatment-confounder feedback 问题。
因此,对 time-varying confounding 的处理,不能简单等同于“多调整几个变量”。
八、grace period 与 time-varying confounding 的关系
二者不是同一个概念,但经常同时出现。
1. grace period 讲的是什么
它讲的是:
治疗被允许在 time zero 后的一小段时间内启动。
2. time-varying confounding 讲的是什么
它讲的是:
在随访过程中会变化的临床状态,既影响后续治疗决策,也影响结局。
3. 两者为什么常常绑在一起
因为一旦存在 grace period,就意味着在这个窗口内:
- 患者病情可能发生变化
- 医生会依据这些变化决定是否启动治疗
例如:
- 策略 A:确诊后 5 天内开始治疗
- 病人第 2 天突然恶化,于是更可能在第 2 天启动治疗
那么“第 2 天病情是否恶化”就是一个典型的 time-varying confounder。
因此,grace period 越长,time-varying confounding 的问题往往越突出。
九、一个统一时间线:正确设计、immortal time bias 与 collider bias
为了把前面的概念串起来,下面我们用三条文字时间线说明。
1. 正确对齐的设计
研究问题:
新诊断高血压患者,是否在确诊当天开始 ACEI,会影响 1 年内心血管事件风险?
时间线:
- 第 0 天:符合入组条件
- 第 0 天:定义治疗策略
- 第 0 天:开始随访
- 第 1 天以后:观察结局
这里:
- eligibility assessment、treatment assignment、start of follow-up 对齐
- 偏倚风险最小
2. immortal time bias
研究问题:
住院后使用某药是否降低死亡?
错误时间线:
- 第 0 天:住院并开始随访
- 第 5 天:患者才开始用药
- 但分析中从第 0 天起就将其归为 treated
偏倚机制:
- 若患者第 0 到第 5 天死亡,则不可能进入 treated 组
- treated 组获得一段“必须存活”的时间
3. collider bias
研究问题:
既往长期使用 ACEI/ARB 是否影响 COVID-19 相关死亡?
可能有问题的时间线:
- 暴露:感染之前已经存在
- 中间事件:是否感染 COVID-19
- 研究入组:只纳入已感染 COVID-19 的人
- 结局:感染后的死亡
偏倚机制:
- 若“感染 COVID-19”同时受暴露和其他危险因素影响
- 那么只研究已感染者,相当于在一个 post-exposure collider 上条件化
十、从 time-varying confounding 到 IPW:为什么不能只靠普通回归
如果时间变化中的临床状态既影响后续治疗,又受先前治疗影响,那么:
- 在结局模型里直接调这些变量,可能导致偏差
- 不调整,又会留下混杂
这时,经典解决思路之一是:
marginal structural model(MSM) + inverse probability weighting(IPW)
这里的 IPW 通常包括两部分:
IPTW:inverse probability of treatment weightingIPCW:inverse probability of censoring weighting
二者常常一起使用,但解决的问题不同。
十一、IPTW 与 IPCW 分别在做什么
1. IPTW:处理治疗分配的非随机性
如果患者在每个时点接受何种治疗,取决于其既往病情、既往治疗史、其他协变量,那么治疗并非随机分配。
IPTW 的思想是:
对那些“在其历史条件下不太可能接受当前治疗、但实际上接受了该治疗”的个体赋予更大权重,从而构造一个治疗分配更接近随机化的伪总体。
2. IPCW:处理删失的非随机性
删失包括:
- 真实失访
- 因偏离策略而进行的人工删失
- 提前退出观察
如果删失与病情演变、治疗史或其他危险因素有关,那么只分析“未被删失的人”会产生偏差。
IPCW 的思想是:
对那些“本来更容易被删失、但实际上仍留在样本中”的个体赋予更大权重,以补偿与其相似但已被删失的个体。
十二、严谨理解 IPCW:它究竟是什么
1. 从“删失”开始
在因果推断中,censoring 不仅指传统生存分析里的失访,也包括分析策略造成的人为删失。
例如,在 clone-censor-weight 设计中:
- 每个受试者可能被复制到多个策略臂
- 一旦某个克隆体偏离其被分配的策略,就在那一刻被人工删失
这时删失通常不是随机的,而往往与病情变化、临床判断和治疗决策有关。
2. IPCW 的核心直觉
如果某一类患者通常很容易中途被删失,那么最终仍留在样本中的少数这类患者,就需要“代表”那些本来类似、但已经被删失的人。
因此:
- 越容易被删失的人
- 如果实际上没有被删失
- 其分析权重就应越大
3. 形式化表达
设在时点 t:
C_t = 1表示在t被删失C_t = 0表示在t尚未被删失
那么一个人到时点 t 仍未被删失的条件概率,可以写成依赖历史信息的形式:
P(C_1 = 0, C_2 = 0, ..., C_t = 0 | 历史信息)
IPCW 的基本思想就是取其倒数作为权重。更常见的写法是按时点连乘:
w_t = ∏ 1 / P(C_k = 0 | 到 k 时点的既往协变量史、治疗史、删失史)
其含义是:
在每个时点,根据个体到该时点为止的完整历史,估计其“仍然没有被删失”的概率;这个概率越小,说明这类个体越不容易留在样本中,因此其权重越大。
4. stabilized weights
为了避免极端大权重带来方差膨胀,实践中常常使用 stabilized weights。其思想是:
- 分母使用更完整的历史信息来拟合删失机制
- 分子使用较简化的信息结构
这样得到的权重通常更稳定。
十三、IPCW 与 time-varying confounder 到底是什么关系
这是最容易被混淆的一点。
1. 一个准确的结论
IPCW 本身不是“直接处理 time-varying confounding 的工具”;它主要处理的是 informative censoring。
但在很多实际研究中,导致删失非随机发生的因素,恰恰就是那些随时间变化的混杂因素,因此:
- 构建 IPCW 时,常常需要把 time-varying confounders 纳入删失模型
2. 更完整的表述
在 longitudinal causal inference 中,时间变化的协变量通常会同时影响:
- 后续治疗
- 后续删失
- 最终结局
因此常见做法是:
- 用 time-varying confounders 构建治疗模型,得到
IPTW - 用同样的历史信息构建删失模型,得到
IPCW - 最终将二者结合起来进行加权分析
所以,真正处理“time-varying confounding affected by prior treatment”的经典框架,并不是单独 IPCW,而是:
MSM + IPTW,必要时再叠加 IPCW。
十四、为什么不能把 time-varying confounder 直接放进结局模型里
这是因果推断中最容易“看起来合理、实际上错误”的一步。
考虑如下过程:
- 第 0 天:开始随访
- 第 1 天:病情严重程度更新为
L_1 - 第 2 天:根据
L_1决定是否给药A_2 - 第 3 天:病情再次更新为
L_3 - 第 10 天:观察死亡
这里:
L_1和L_3都会影响后续治疗L_1和L_3也会影响死亡- 但
L_3很可能已经受 earlier treatment 的影响
如果此时直接在回归模型中调整 L_3,就相当于调整了一个部分由治疗产生的变量,后果可能是:
- 截断了治疗通过改善病情而产生的真实效应
- 或因条件化于治疗后变量而引入偏差
因此,对这类问题更稳健的做法通常不是“在 outcome model 里直接把所有时间变化变量都调进去”,而是通过权重方法、g-formula 或其他 g-methods 进行处理。
十五、一个把 grace period、time-varying confounding、IPTW、IPCW 串起来的例子
研究问题:
COVID-19 确诊后 5 天内开始某抗病毒药,是否能降低 30 天死亡率?
1. 研究策略定义
time zero:确诊当天- 策略 A:确诊后 5 天内启动药物
- 策略 B:确诊后 5 天内不启动药物
这里的“5 天内”就是 grace period。
2. 现实中的时间变化
在第 1 至第 5 天内,患者的:
- 症状严重程度
- 氧饱和度
- 炎症指标
- 影像学表现
都可能动态变化。
这些变量会:
- 影响医生是否在第 2 天、第 3 天或第 4 天启动治疗
- 同时影响 30 天死亡风险
因此,它们是典型的 time-varying confounders。
3. 如果做 clone-censor-weight,会发生什么
每位患者可能被复制到两个策略臂:
- A 克隆体:代表“5 天内启动治疗”
- B 克隆体:代表“5 天内不启动治疗”
随后:
- 若 A 克隆体到第 5 天仍未启动治疗,则该克隆体被人工删失
- 若 B 克隆体在第 5 天内启动了治疗,则该克隆体被人工删失
4. 为什么需要 IPCW
这些人工删失不是随机的。
例如:
- 病情更差的人可能更容易在第 2 天启动药物
- 因此,“不启动治疗”策略下的克隆体更容易因为偏离策略而被删失
而病情严重程度又与死亡强相关。
如果不对这种删失进行加权纠正,最终留下来的 B 组克隆体会偏向病情较轻者,估计结果将发生偏差。
这就是 IPCW 发挥作用的地方。
5. 为什么还需要 IPTW
即使不考虑删失,患者何时启动治疗本身也不是随机的,而是受到病情演变影响。
因此,还需要使用治疗权重来处理“谁更可能接受治疗”这一非随机机制。
最终的分析通常需要:
- IPTW 处理治疗分配
- IPCW 处理删失机制
- 在加权伪总体中估计结局模型
十六、一个最实用的概念对照表
1. 如果你问的是“研究从哪一刻开始算”
看 time zero。
2. 如果你问的是“数据库里每个人锚定在哪一天”
看 index date。
3. 如果你问的是“起点时这个人的状态如何”
看 baseline。
4. 如果你问的是“暴露发生在什么时候”
看 timing of exposure。
5. 如果你问的是“允许治疗在起点后几天内启动吗”
看 grace period。
6. 如果你问的是“病情等变量会不会在随访中变化,并影响后续治疗和结局”
看 time-varying confounding。
7. 如果你问的是“有人必须先活到将来某个时点才能被归入治疗组吗”
警惕 immortal time bias。
8. 如果你问的是“研究是否按暴露后发生的事件筛选样本”
警惕 collider bias 或更广义的 selection bias。
9. 如果你问的是“删失是否和患者的临床过程有关”
考虑 IPCW。
10. 如果你问的是“后续治疗分配是否由既往病情和治疗史决定”
考虑 IPTW。
十七、写给实际做研究的几点建议
1. 先画时间线,再写模型
在开始分析前,至少应明确画出:
- 入组时点
- 暴露定义窗口
- grace period
- 随访起点
- 结局观察窗口
- 协变量测量窗口
很多设计错误在画时间线时就能暴露出来。
2. 不要把所有 post-baseline variable 都当成“该调整的变量”
看到 post-baseline 变量时,先问:
- 它是否受先前治疗影响?
- 它是否同时影响后续治疗和结局?
如果是,那么它可能是 time-varying confounder,不能简单用普通回归处理。
3. 不要把 grace period 误当成“天然无偏”
grace period 只是策略定义的一部分,不是偏倚的解药。分析方法必须与之对应。
4. 对删失保持高度敏感
特别是在以下情境中:
- 偏离策略后人工删失
- 失访与病情相关
- 转院、停药、出院与疾病进展相关
这些情形下,删失往往不是无信息的。
5. 权重方法不是“自动正确”
使用 IPTW/IPCW 时,仍需认真检查:
- 是否存在未测量混杂或未测量删失决定因素
- positivity 是否成立
- 权重是否出现极端值
- 模型设定是否合理
十八、Takeaways
我们可以用一句话概括这篇文章:
在 target trial emulation 中,几乎所有关键偏倚问题,最终都可以追溯到“时间定义是否与因果问题相匹配”。
更具体地说:
the timing of exposure不是time zero,但必须相对于time zero被清晰界定index date常常与time zero重合,但在概念上不完全等同baseline指的是起点时的状态及其测量窗口- 若把未来才发生的治疗从起点就算作暴露,容易产生
immortal time bias - 若按暴露后发生且可能受暴露影响的事件筛选样本,容易产生
collider bias grace period让治疗策略更贴近真实临床,但也会引入新的分析复杂度time-varying confounding之所以麻烦,在于它常常既影响后续治疗,又受先前治疗影响IPTW主要处理治疗分配的非随机性IPCW主要处理删失的非随机性- 在纵向因果推断中,二者经常结合使用,以在加权后的伪总体中逼近理想 target trial 的比较
如果我们这篇文章对你有帮助,欢迎转发给正在做真实世界研究、临床流行病学和因果推断的同学。