厘清一些观察性研究与因果推断背景下的概念

Unrevealing the intricate concepts in observational studies and causal inference, including time zero, exposure timing, collider bias, and more.
causal inference
observational studies
bias
epidemiology
target trial emulation
Author
Published

Saturday, March 21, 2026

写在前面

在观察性研究和因果推断的语境里,很多概念单独看并不难,但一旦放在同一篇文章或同一个研究设计里,就很容易混淆。最常见的一组混淆包括:

  • the timing of exposure 到底是什么
  • target trial emulation 中的 time zero 是什么
  • index datebaselinetime zero 是不是一回事
  • collider biasimmortal time bias 为什么都和“时间定义不清”有关
  • grace period 是什么,为什么它既必要又危险
  • time-varying confounding 为什么不能靠“在模型里调一下变量”简单解决
  • IPTWIPCW 到底分别在解决什么问题

我们这篇文章试图把这些概念放到同一套时间框架中,给大家做一次系统整理。

整个的主线其实只有一句话:

在 target trial emulation 中,入组时点、治疗策略定义时点、随访起点、暴露发生时间、后续协变量更新时间,必须在同一条时间轴上被严格定义;一旦定义错位,就很容易产生偏倚。

一、先从最基础的问题讲起:the timing of exposuretime 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 zeroindex datebaselineexposure 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. 一个最实用的理解框架

看到一篇观察性研究时,我们可以依次问四个问题:

  1. time zero 是哪一天?
  2. index date 是哪一天?它是否等于 time zero
  3. baseline 是如何定义和测量的?
  4. 暴露是在 time zero 前、当时还是之后发生的?

只要这四个问题不清楚,后面的因果解释几乎一定会有风险。

三、为什么 target trial emulation 如此强调时间对齐

target trial emulation 的核心价值,不只是“模仿随机对照试验”这么抽象的一句话,而是迫使研究者在开始分析前回答以下问题:

  1. 谁在什么时点符合入组条件?
  2. 从哪一刻开始随访?
  3. 治疗策略在什么时点被分配或定义?
  4. 结局从哪一刻开始计数?
  5. 哪些变量是 baseline 变量,哪些已经是 post-baseline 变量?

在理想情况下,下面三个时点应尽量对齐:

  • eligibility assessment
  • treatment assignment or strategy assignment
  • start of follow-up

如果这三者不对齐,就容易出现:

  • immortal time bias
  • selection bias
  • collider 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 的关键困难在于:

  1. 它影响后续治疗是否发生
  2. 它影响最终结局
  3. 它往往又受到先前治疗的影响

第 3 点是整个问题的核心。

2. 一个典型结构

设:

  • L_t 表示时点 t 的病情严重程度
  • A_t 表示时点 t 的治疗

那么现实中常见的是:

  • L_t 影响 A_t
  • A_t 影响未来的 L_{t+1}
  • L_t 影响结局 Y

于是,L_t 既是后续治疗的混杂因素,又是先前治疗的后果。

3. 为什么“直接调整”可能出错

如果把 post-baseline 的 L_t 直接放进一个普通回归模型中调整,可能发生两种问题:

  • 把治疗通过改善病情而产生的真实效应“调掉”
  • 因为调整了受先前治疗影响的变量而引入新的偏倚

这就是经典的 treatment-confounder feedback 问题。

因此,对 time-varying confounding 的处理,不能简单等同于“多调整几个变量”。

八、grace periodtime-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 weighting
  • IPCW:inverse probability of censoring weighting

二者常常一起使用,但解决的问题不同。

十一、IPTWIPCW 分别在做什么

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_1L_3 都会影响后续治疗
  • L_1L_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 的比较

如果我们这篇文章对你有帮助,欢迎转发给正在做真实世界研究、临床流行病学和因果推断的同学。