为什么临床试验分析要先说清楚 estimand
最近整理临床试验里 estimand、intercurrent event 和 missing data 的笔记时,我又被一个很朴素的问题拉了回来:同一批试验数据,为什么有时候可以用很不一样的方式分析,而且每一种方式看起来都能讲出一点道理?
后来我发现,问题往往不在模型本身,而在模型之前。我们到底想估计什么?想回答谁关心的问题?治疗效果里的 treatment 指的是最初随机分配的药物,还是包含救援治疗、剂量调整、合并用药之后的治疗方案?如果这些问题没有先说清楚,后面的缺失数据处理、敏感性分析、甚至主要结果解释都会变得很飘。
这里先讲一个更基础的起点:为什么做临床试验分析时,estimand 应该放在统计方法前面。
1. 统计分析不是从模型开始的
很多时候,我们拿到一个临床试验问题,会很自然地先想模型:连续结局是不是用 MMRM?二分类结局是不是用 logistic regression?生存结局是不是用 Cox model?如果有缺失,是不是要 multiple imputation?
这些问题都重要,但它们不是第一步。
第一步应该是研究目标。更具体一点,是这项试验想支持什么样的判断。病人和医生可能关心的是:开始这个治疗方案之后,真实世界里大概会发生什么。监管机构可能更关心:在预先定义的目标人群中,这个治疗策略相对于对照策略的总体获益和风险是什么。药企可能还会关心不同适应证、不同剂量、不同治疗路径下的证据强度。
这些目标不一定冲突,但它们对应的 treatment effect 未必是同一个东西。
比如,同样说 治疗效果,至少可以有几种理解:
- 最初随机分配的研究药物本身的效果;
- 研究药物加上方案允许的剂量调整、合并用药和救援治疗之后的效果;
- 如果某些治疗中断、换药、补救治疗没有发生,理论上会看到的效果;
- 在实际治疗过程中,直到患者停止研究治疗前观察到的效果。
如果不先区分这些问题,统计分析就容易变成一种形式上的技术选择。表面上是在问 用什么模型,实际上还没有说清楚 模型要估计哪个目标。
我之前在写真实世界研究重叠性时也提到过类似的想法:分析之前要先问比较本身能不能成立,而不是直接把所有人放进模型。那篇文章里讨论的是目标人群和可比性,这里讨论的是临床试验里的目标效应。两个问题不完全一样,但背后的习惯是一致的:先定义问题,再选择方法。
2. 同样叫 treatment effect,可能问的是不同问题
Estimand 可以简单理解为 我们真正想估计的治疗效应目标。它不是一个模型名称,也不是一个软件选项,而是把临床问题翻译成统计目标的桥。
一个完整的 estimand 通常至少要说清楚几个属性:
- 目标人群是谁;
- 治疗条件是什么;
- 结局变量是什么;
- 如何处理治疗开始后发生、会影响结局解释或结局存在性的事件;
- 用什么总体层面的效应量来表达差异。
这里最容易被低估的是第四点,也就是 intercurrent event。
临床试验里很少有完美情况。不是每个受试者都会从随机化开始,一直按方案治疗到最后一次随访,中间没有停药、换药、救援治疗、死亡、器官移植、失访或其他治疗改变。真实试验里,治疗开始后发生的这些事件,常常会改变后续结局的含义。
举个简化例子。一个肿瘤试验计划在第 6 个治疗周期后评价最佳总体缓解。部分患者在疾病进展前提前停用研究药物,并接受下一线治疗。第 6 周期后的疗效评价仍然能记录,但它到底代表什么?
如果我们关心的是 开始 A 治疗策略后,包括必要后续治疗在内的总体效果,那么后续治疗后的结局可能仍然相关。
如果我们关心的是 如果没有接受下一线治疗,A 药本身会带来什么效果,那么后续治疗后的结局就不再直接回答这个问题。
同一个观察值,在一个 estimand 下可能是相关数据,在另一个 estimand 下可能需要被视为不再反映目标问题。这就是为什么不能只说 有缺失就插补,也不能只说 发生停药就按 ITT 分析。这些说法太粗了。
3. intercurrent events 为什么会让问题变复杂
Intercurrent event 指的是治疗开始后发生、会影响结局解释或结局存在性的事件。它不是普通的不良事件清单,也不是所有方案偏离的统称。
判断一个事件是不是 intercurrent event,关键不只是它有没有发生,而是它是否改变了我们对目标治疗效应的定义或解释。
常见例子包括:
- 因疗效不足而使用救援治疗;
- 因不良反应而永久停用研究药物;
- 治疗过程中换到另一种有效治疗;
- 死亡导致后续连续结局不再存在;
- 器官移植让原本的器官功能结局失去原来的含义。
这些事件难处理,是因为它们经常夹在两个问题之间。
一方面,它们是治疗后发生的,不能像基线协变量那样在随机化时被平衡掉。另一方面,它们又可能和治疗本身有关。比如,一个治疗组因为疗效不足而更早使用救援治疗,这本身就是治疗策略效果的一部分;如果简单把救援治疗后的数据删掉,可能会把一个重要的治疗差异也删掉。
所以 intercurrent event 不是数据清理阶段才处理的麻烦,而是试验设计和统计分析计划里就应该写清楚的问题。它决定了我们到底是在估计一种实际治疗策略的效果,还是一个假想情景下的效果,或者把某个事件本身纳入复合结局。
这个地方如果前期没有说清楚,后面很容易出现一种尴尬情况:方法部分写得很复杂,结果解释却不知道该落在哪个临床问题上。
4. 一个简化例子:后续治疗到底算不算治疗方案的一部分
还是用前面的肿瘤试验例子。受试者随机接受研究治疗 A 或标准治疗 B,主要终点是第 6 个治疗周期后的最佳总体缓解。试验中,有些人在第 6 周期前接受了下一线治疗。
这时至少有三种不同问题。
第一种问题是:随机进入 A 策略或 B 策略之后,不管中间是否出现下一线治疗,最终在研究规定时间点看到的总体效果如何?
这更接近 treatment policy strategy 的思路。后续治疗被看作治疗路径的一部分,后续观察值仍然有意义。分析上可能保留这些结局,但解释时要说清楚,估计到的不是 A 药的 纯 药理效果,而是包含后续治疗路径在内的策略效果。
第二种问题是:如果患者没有接受下一线治疗,原始随机治疗本身可能带来什么效果?
这更接近 hypothetical strategy。这里需要构造一个假想情景。但假想情景必须具体。只说 如果没有下一线治疗 还不够,因为它可能有不同含义:是患者临床状态好到不需要下一线治疗,还是现实中没有机会获得下一线治疗?这两种情景对应的结局预期并不一样。
第三种问题是:是否接受下一线治疗本身就可以视为治疗失败的一部分?
这更接近 composite variable strategy。如果研究者认为在某个临床语境下,提前使用下一线治疗已经足以说明原治疗策略没有达到期望效果,就可以把这个事件纳入结局定义。例如把这类患者计为无应答。这样做不是统计上的偷懒,而是把临床判断显式写进结局定义。
这三种问题都可能合理,但不能混着用。更不能在方案里像第一种问题那样收集和解释数据,在分析时又像第二种问题那样处理缺失,最后在讨论里按第三种问题来讲故事。
5. 缺失数据处理也要回到 estimand
很多人第一次接触 estimand,会觉得它是临床试验设计阶段的概念,和后面的 missing data 技术关系不大。实际做分析时,二者关系很紧。
缺失数据处理之前,至少要先问三个问题。
第一,缺失发生在什么事件之后?
如果缺失发生在救援治疗之后,而我们的 estimand 采用 treatment policy strategy,那么这些缺失值仍然对应目标问题,需要考虑如何在同类治疗路径中插补。简单从未使用救援治疗的人那里借信息,可能不合适。
第二,事件之后的数据是否仍然 relevant?
如果 estimand 采用 hypothetical strategy,真实世界中事件之后收集到的数据未必直接回答目标问题。这个时候,插补不是普通意义上补一个没测到的值,而是在假想情景下预测一个反事实结局。相应的假设要写清楚,敏感性分析也更重要。
第三,事件之后的数据是否还存在?
对于死亡这类 terminal event,如果原结局是某个死亡后不再存在的连续生理指标,就不能把它简单当成一个可插补的普通缺失值。这个时候可能需要重新定义结局,或者采用复合变量策略,而不是机械地套用 multiple imputation。
这也是我觉得 estimand 对实际分析很有帮助的地方。它不只是让 SAP 看起来更规范,而是逼着我们在插补之前先回答:这个缺失值背后缺的到底是什么?是本来应该观察但没观察到的值,还是目标问题本身已经变了?
如果这个问题没有想清楚,后面无论是 MAR、MNAR、delta adjustment、jump-to-reference,还是 tipping point analysis,都容易变成技术堆叠。方法越多,反而越不容易解释。
Takeaways
做临床试验分析时,先问
想估计什么治疗效应,再问用什么模型。模型是为estimand服务的,不是反过来。Intercurrent event不是普通的数据麻烦。它会改变治疗、结局、人群或结果解释,因此应该在方案和 SAP 中提前定义处理策略。缺失数据处理要回到目标问题。插补前先判断事件后的数据是否 relevant、是否 collectable、是否仍然存在,再选择 MAR/MNAR 和敏感性分析方法。