肺研周见

临床因果思维引擎指南

by JQ李白@Likemed

你手上有一篇论文。摘要最后一句写着:"A 组的总生存显著优于 B 组(HR 0.74, 95%CI 0.58–0.95, P=0.016)。" 现在你要决定的不是这句话是不是真的,而是它能信到什么程度,以及它该不该改变你明天的处置。 这份指南讲的就是这件事的做法。它不是因果推断教科书,而是一套读法:面对一篇具体的研究,从哪里下手、按什么顺序拆、用什么工具、在哪一步该停下来。

0. 先立一个视角:论文是引擎的输出

0.1 一台完整的因果引擎

要从数据得到一个可信的因果结论,需要走完一条完整的链。珀尔把它画成一台机器,称为"因果推断引擎"——它吃三样东西(假设、问题、数据),吐三样东西(能不能答、用什么公式答、答案是多少)。

正在载入图形...

九个框的含义:

是什么在论文里通常出现在
① 知识研究者对疾病与诊疗流程的理解不出现(留在作者脑子里)
② 假设从知识里挑出来、明确写下的部分引言末尾、讨论的局限性段落
③ 因果模型变量之间谁影响谁极少出现(近年才有论文附 DAG)
④ 可验证的蕴涵这张图预言数据里该有什么模式几乎从不出现
⑤ 问题到底要估计什么量方法第一段(常常含糊)
⑥ 被估量把因果问题翻译成可算公式常常缺失,直接跳到模型
⑦ 数据队列、样本量、随访方法、表 1
⑧ 统计估计Cox、logistic、倾向评分、IPW统计方法段
⑨ 估计值HR、95%CI、P 值结果、摘要

0.2 论文交付给你的,往往只有引擎的尾段

看上面那张表的右列:一篇典型的临床论文写清楚的是 ⑦⑧⑨,也就是数据 → 统计 → 数字。而 ①–⑥ 这一整段——知识、假设、因果结构、目标量、被估量——要么没写,要么只以"我们调整了年龄、性别、分期、ECOG"这样一句话的形式一笔带过。

这不完全是作者的错。期刊格式、篇幅限制、审稿传统都在鼓励这种写法。但后果很实在:引擎前半段的所有判断,被默认交给读者去补完——而大多数读者不会补,于是那些判断就悄悄消失了,一个第一层的关联被当成第二层的因果读走。

0.3 所以读者的任务是:反向重建

读懂一篇研究的因果,本质是把作者没写出来的那大半台引擎倒着拆出来,然后在每一站问三个问题:

这一步他做了吗?做对了吗?如果没做,我要为此打多少折扣?

这份指南的第 2 节把这个过程拆成六道工序。工序的顺序刻意与引擎的方向一致(先目标量,最后才看数字),而不是与论文的阅读顺序一致(摘要先给你数字)。这个顺序上的对抗,是全篇最要紧的一件事——先看数字,你的判断就已经被锚定了。

0.4 一把随身的分诊尺:三层阶梯

在下手之前,先给这篇研究定级。所有与因果有关的问题分三层:

层级在问什么典型措辞记号
一、关联观察到 A 的人,Y 是多少?相关、预测、伴随、危险因素P(Y│A)
二、干预如果改变 A,Y 会怎样?改善、降低、导致、获益、疗效P(Y│do(A))
三、反事实假如这位患者当初不这样,会怎样?归因、若非、本可以、这次是不是它引起的P(Y_{a'}│A=a, Y=y)

每上一级,都需要下一级根本无法提供的新信息——不是更大的样本量,是不同种类的知识

这把尺子的用法只有一个动作,但它几乎能定位所有过度解读:

分别标出:这篇研究的分析支持的是第几层,作者的结论说的是第几层。两者的差,就是被偷偷加上去的东西。

最常见的偷渡:分析在第一层(观察性关联、调了几个协变量),讨论在第二层("提示应考虑早期使用"),而临床读者接收到的是第三层("我这位患者用了会更好")。

0.5 这份指南的边界

  • 不覆盖统计计算:怎么跑 Cox、怎么算 IPW 权重、怎么选带宽,不在这里。那属于框 ⑧。
  • 不替代专业知识:所有因果判断的原料是你对疾病和诊疗流程的理解。本文只提供整理这份理解的格式。
  • DAG 只是记法:画图不产生知识,只承载知识。一张漂亮但假设站不住的图,只会让错误结论显得更有说服力。
  • 给不出确定性:这套流程的产出是一个有依据的折扣率,不是"可信/不可信"的二值判决。

1. 三十秒定位

拿到一篇研究,先花三十秒做三个判断,再决定要不要投入更多时间。

判断一:它在爬哪一级梯子?

看到这些分析实际支持常见的结论偷渡到
单臂队列、描述性统计、列线图、预测模型 AUC第一层第二层("应作为治疗选择依据")
观察性两组比较 + 多变量调整第二层的尝试(成败取决于识别)第二层(默认成立)
RCT 主要终点 ITT 分析第二层(分配这一步可靠)第三层("这类患者用了会…")
RCT 亚组分析、per-protocol 分析退回第一层或需重新识别第二层
不良事件归因、"若非"论证第三层第三层(但假设常未说明)

判断二:目标量写出来了吗?

在方法第一段找这五样东西:目标人群、A(比较的是哪两个策略)、Y、时间零点、总效应还是直接效应。五样齐了,这篇论文的作者跑过引擎的框 ⑤;缺三样以上,后面的一切精度都可疑。

判断三:有没有立刻出局的红旗?

  • 分组依据是基线之后才知道的信息("完成 4 周期者" "达到缓解者" "接受了二线治疗者")
  • 两组的随访起点不是同一个时刻
  • 协变量选择写的是"单因素分析 P<0.1 者纳入多因素"
  • 结局需要影像评估,但两组的检查频率不同、也没提
  • 摘要用因果动词(改善、降低、延长),方法里却是纯观察性设计且未提识别策略

命中任何一条,都不意味着这篇文章没价值,但意味着你必须走完第 2 节的全部工序才能引用它


2. 六道工序

每道工序的结构相同:要回答什么 → 怎么入手 → 用什么工具 → 常见破绽 → 这一步的局限


工序一 · 目标量:这篇研究到底想估计什么

要回答什么

把作者含糊的"探讨 A 与 Y 的关系",还原成一个精确的、可以判断真假的量。

怎么入手

目标试验的方式提问:如果可以不计成本地做一场随机试验来回答这个问题,那场试验长什么样?把它的方案写出来,一共七行:

目标人群 :谁有资格入组?(要用基线时点就能判定的条件)
策略 A   :干预组具体做什么?(含剂量、时长、停药规则)
策略 B   :对照组具体做什么?("标准治疗"不算答案)
时间零点 :从哪一刻开始计时?(入组=分组=随访起点,三者必须重合)
结局 Y   :怎么定义、谁来判定、什么频率评估?
随访规则 :随访到什么时候?删失怎么处理?
目标效应 :总效应(意向治疗式)还是直接效应(机制式)?

写完这七行,再回头对照论文:**它的数据分析在多大程度上模拟了这场试验?**每一处偏离,都是一个需要单独论证的地方。

工具

  • 目标试验对照表:左栏是你写的七行,右栏是论文的实际做法,中间一栏标"一致 / 偏离 / 无法判断"。三栏表填完,这篇论文的因果结构问题会有一大半自己浮出来。
  • 总效应 vs 直接效应的判别问句:你想知道的是"换用这个方案,整体上会怎样"(总效应),还是"这个方案不通过某个中间环节,还剩多少作用"(直接效应)?前者远比后者常见,也远比后者容易识别。

常见破绽

  • "标准治疗"作为对照:不同中心、不同年代的标准治疗完全不同,这个对照组实际上是好几个策略的混合物。
  • 暴露定义随时间变化却被写成二分类:"使用过 statin"——用了三天和用了三年是同一组吗?
  • 结局定义偷换:主要终点写 OS,实际报告的是"癌症特异性生存",后者需要死因判定,而死因判定本身可能与暴露相关。
  • 目标人群与分析人群不一致:入组标准写的是所有晚期患者,分析人群却只剩"有完整基线检测的人"。

局限

目标试验框架逼你把问题写清楚,但它不保证这个问题值得问,也不保证它能被回答。它只是让含糊之处无处可藏。另外,有些问题(如"吸烟对健康的影响")本来就无法对应一场可实施的试验,此时目标试验只能作为思想工具,不能作为标准。


工序二 · 时间:三条线对齐了吗

要回答什么

在这项研究里,符合入组条件、被分入某组、开始计算随访,这三件事是不是发生在同一时刻?

这道工序单独列出来,因为它是观察性研究中最高频、最隐蔽、也最致命的错误来源,而且它不需要任何统计知识就能查出来。

怎么入手

拿张纸,画一条时间轴,标出三个点:

        合格           分组            随访起点
时间轴 ──┼──────────────┼───────────────┼──────────────▶

然后问:这三个点重合吗?如果不重合,中间那段时间,患者在哪一组?

工具

不死时间检查。经典案例:早期研究发现"长期使用某药的人癌症更少"。问题在于——一个人要被归类为"长期使用者",必须先活得足够久。如果随访从更早的时点开始计,却按患者后来是否成为长期使用者分组,那么"长期使用组"天然排除了早期就发生结局的人。

用图看更清楚:

正在载入图形...

存活时长同时决定了"能否进入暴露组"和"结局好坏"——关联是被分组规则制造出来的,与药物无关。

同类变体(都是同一个毛病):

说法隐藏的不死时间
"接受二线治疗的患者 OS 更长"要活到一线失败后才有机会接受二线
"完成 ≥4 周期者预后更好"要活着且耐受才能完成 4 周期
"达到缓解的患者生存更长"缓解需要时间评估,早期死亡者进不了缓解组
"接受手术者优于未手术者"术前评估、等待期都需要存活
"肿瘤突变负荷高者获益更大"(需二次活检)能做二次活检的人本身状态更好

正确的做法(也是你判断论文是否处理了这个问题的依据):所有人从同一个时间零点开始随访;暴露状态随时间变化(time-varying),或使用地标分析(landmark analysis)、克隆-删失-加权等方法。论文如果只字未提,而分组又依赖基线后信息,这一项就是致命伤,后面的精度全部无意义

常见破绽

  • 表 1 的"基线特征"里出现了只有随访后才知道的变量
  • 方法里写"根据是否接受 X 分为两组",而 X 发生在观察期内的任意时刻
  • 生存曲线从 0 时刻就分开,且暴露组早期几乎没有事件(典型的不死时间信号)

局限

时间对齐是必要条件,不是充分条件。三条线对齐了,混杂问题依然存在。反过来,地标分析虽然解决了不死时间,但它把分析人群变成了"存活到地标时点的人"——这本身是一次选择,需要在工序三里重新画进图。


工序三 · 结构:把作者没画的图画出来

要回答什么

在这项研究里,谁影响谁?作者调整的那些变量,各自站在什么位置上?

怎么入手

画一张 5–8 个节点的骨架图。不要追求完整,超过十个节点的图会失去解释力。步骤:

  1. 先画 A → Y(主链);
  2. 加入你认为在 A 之前、且同时影响 A 和 Y 的因素(混杂候选);
  3. 加入 A 之后发生、且被作者调整了的变量(中介 / 治疗后变量);
  4. 加入"谁进入了分析"这个节点(选择);
  5. 如果结局需要检测才能被看见,把"真实状态"和"观测结果"分开画。

用分组变量代替细碎变量,图会清爽很多:

分组节点包含
患者状态年龄、ECOG、合并症、器官功能
疾病负荷分期、转移部位、肿瘤大小、症状
肿瘤生物学病理、驱动基因、生物标志物
诊疗环境中心、年代、可及性、医生偏好
治疗后过程缓解、毒性、停药、后续治疗
检测过程检查频率、影像质量、随访完整性
选择过程入组、可评估、完成治疗

工具

四种基本结构——任何复杂的图都是它们的组合,每一种对应一条完全不同的调整策略:

正在载入图形...
正在载入图形...
正在载入图形...
正在载入图形...
结构形状不调整时调整了会对应偏倚
ForkA ← C → Y路径打开(有偏)关闭(正确)混杂
PipeA → M → Y打开(这是因果的一部分)切断主链(有偏)过度调整
ColliderA → K ← Y关闭(正确)打开(有偏)对撞偏倚
SelectionA → S ← U → Y,只分析 S=1相当于强制条件化选择偏倚

身份判别表——这是这道工序的核心产出。把论文调整过的每一个变量列进去:

变量时间位置身份该不该调论文调了吗
例:ECOG PSA 之前共同原因应调
例:肿瘤缓解A 之后中介估总效应时不调❌ 调了(问题)
例:完成 2 周期A 之后选择节点不调、且不能作为入选条件❌ 用作了入组条件

一条贯穿全篇的原则:变量的身份由它在因果结构中的位置决定,不由 P 值决定。"单因素分析显著就纳入多因素"这种做法与因果推断完全无关——它既可能漏掉必须调的混杂(因为不显著),也可能调进中介和对撞点(因为显著)。

常见破绽

  • 把中介当混杂调:估总效应时把缓解、毒性、停药、后续治疗放进模型,切断了要研究的因果通道
  • 把对撞点当协变量调:调整了一个同时受 A 和 Y 影响的变量,凭空造出关联
  • 隐性选择没被识别:只分析"可评估病灶者""完成随访者""做了某项检测者"
  • 观测 ≠ 真实:把"影像发现的脑转移"直接当作"真实脑转移",忽略了检查频率的差异

局限

这张图是你替作者画的,箭头来自你的专业判断,不是论文的证据。所以:

  1. 明确标注哪些箭头是论文明说的、哪些是你推断的;
  2. 数据不能告诉你箭头方向——A → BA ← B 在统计上无法区分;
  3. 但图可以被部分证伪:每条缺失的箭头都意味着一条条件独立关系,原则上可以在数据里检验(可惜论文通常不给你这个机会)。

工序四 · 识别:这个问题在这批数据上能不能答

要回答什么

前三道工序确定了"想要什么"和"世界长什么样"。这一道回答最关键的问题:用这批数据,能不能算出那个量?

注意这个问题的形式:它是"能不能",不是"精不精确"。**这个判断是在假设你拥有无限样本量的前提下做出的。**如果答案是"不能",那么再大的队列、再复杂的模型都没有用。

怎么入手

你想要的是 P(Y│do(A))——如果我们主动把所有人的治疗改成 A 会怎样。数据给你的是 P(Y│A)——已经用了 A 的那批人后来怎样了。中间隔着"谁被选去用 A"这个机制。

do 在图上是一次很具体的操作:把所有指向 A 的箭头剪掉。剪掉之后,混杂路径自动消失。随机对照试验之所以可信,正是因为随机化在物理上真实执行了这次剪除——谁接受治疗由随机数决定,不再由病情、体能、医生偏好决定。

观察性研究做不了这台手术,只能在纸面上模拟它。有三条路:

工具

路线一:后门调整(最常用)

找一组变量 C,满足:① 阻断 A 与 Y 之间所有的后门路径(A ← C → Y 这类);② 不包含 A 的后代。满足了,就有:

P(Y│do(A)) = Σ_c P(Y│A, C=c) · P(C=c)

左边是做不到的实验,右边全是数据里能算的量。这个等号就是整件事的核心——它把 do 消掉了。

两个常被忽略的点:右边按目标人群中 C 的分布加权,所以"调整"的本质是把两组重新加权到同一个人群上,而不只是"回归里多放一项";这也解释了为什么标准化、IPW 与回归系数在有交互时会分道扬镳。

路线二:前门准则(关键混杂测不到时)

如果 A 影响 Y 完全通过一个可测量的中介 M,而 M 本身不受那个未测量混杂的影响,就可以把路拆成两段分别估计再串起来。在肿瘤研究里这个条件通常不成立——治疗几乎总有中介之外的通路(毒性、剂量调整、后续治疗机会)。所以它更多是一种提醒:当作者说"这个药通过缓解起效"时,那是一个很强的断言。

路线三:工具变量

找一个变量 Z,它推动 A,但除了通过 A 之外对 Y 没有任何影响。临床候选:随机分组指派(处理依从性与交叉时)、医生或中心的治疗偏好、到专科中心的距离、指南变更的时间断点、孟德尔随机化中的基因型。

代价:排他性限制(Z 只通过 A 影响 Y)无法用数据检验,只能靠专业知识论证。

三条路的取舍:

策略思路换来的假设
后门调整把混杂路径堵住关键混杂全部被测量
前门准则绕开混杂,沿机制拆两段中介拦截全部路径且自身无混杂
工具变量借外部推力撬动 A排他性限制成立(不可检验)

三者都不免费。它们做的是同一件事:**把"必须测全混杂"换成另一组假设。**你的任务不是找到没有假设的方法,而是判断哪一组在这个具体场景里更站得住。

如果三条路都走不通,正确的动作有三个,都不包括"多调几个变量":

  1. 明说这个问题在这批数据上不可识别;
  2. 把结论降级为关联(这依然可以是有价值的论文);
  3. 换一个能被识别的问题(比如从"治疗效应"改成"接受该治疗的人群中的预后因素")。

常见破绽

  • "我们调整了 20 个变量":变量数量与识别与否无关。调错了变量比不调更糟。
  • 调整集里混着治疗后变量:常见于把整张表 1 一股脑放进 Cox。
  • 全治疗队列硬做治疗效应:如果所有人都接受了这个治疗,"治疗 vs 不治疗"根本不可识别。此时应当重构为预后研究。
  • RCT 的 per-protocol 分析被当成因果结论:随机化只保护"分配"这一步,一旦按依从性、完成度筛人,保护就失效了,需要重新识别。

局限

识别的判断永远是条件性的:它是"在这张图成立的前提下"能不能答。图错了,识别的结论也就错了。所以这一步的产出不是"能答/不能答",而是"在以下这几条假设成立的前提下能答,而这几条假设分别有多可信"。把这几条假设列出来,是这道工序最有价值的产出。


工序五 · 估计:数字是怎么来的,有多少信息量

要回答什么

前四道工序都通过之后,才轮到看数字。这一道问:这个数字把参数的可能位置压到了多窄?

怎么入手

把点估计和区间读成一股拉力,而不是一个判决:

  • 点估计 HR=0.74:在所用模型下,最能解释当前数据的参数值在 0.74 附近
  • 95%CI 0.58–0.95:从"相当可观的获益"到"几乎可以忽略的获益",都与数据相容
  • P=0.016:在"完全无效"这个特定假设下,当前或更极端的结果不太常见

三句合起来读:数据把判断推离了"完全无效",但获益的幅度远未被钉死。

工具

信息量三查:

  1. **事件数,不是样本量。**生存分析的信息量来自事件数。1000 人随访 3 个月发生 40 个事件,其信息量不如 200 人随访 3 年发生 120 个事件。
  2. **区间宽度。**窄区间说明数据把参数压得紧;宽区间说明还有大片可能性没被排除。区间跨过无效值不等于"没效",只等于"没排除无效"。
  3. **绝对差,不只是相对值。**同一个 HR,在不同基线风险下对应完全不同的绝对获益。务必找固定时间点的生存率差、中位数差、限制性平均生存时间。

HR 的三个坑(临床论文里最常被误读的量):

  • **HR ≠ 死亡概率下降的百分比。**HR=0.74 说的是瞬时风险比,不是"死亡率下降 26%"。
  • **HR 依赖比例风险假设。**曲线交叉、延迟分离(免疫治疗常见)时,单一 HR 是几条不同时段效应的加权平均,权重还取决于事件何时发生。
  • **HR 随时间内建了一层选择。**能活到后期还在随访中的人,本身就是被筛过的——两组的"幸存者"构成不同,晚期的 HR 因此天然带偏。这不是估计误差,是结构性的。

**该同时去找的东西:**Kaplan–Meier 曲线的形状、固定时间点的绝对差、RMST、事件数随时间的分布、非比例风险的检验。

常见破绽

  • 只报相对值不报绝对值(10% → 7.4% 和 50% → 40% 的 HR 可以一样,临床含义天差地别)
  • 亚组森林图里挑一个显著的说事(多重比较 + 亚组内识别条件通常更差)
  • 用中位数差描述全部获益(尾部长期生存者的获益,中位数看不见)
  • 换了主要终点或分析人群,却没在方法里说明

局限

**精度不能修复偏倚。**这是这道工序最需要记住的一句话。一个识别错误的分析,样本量越大,只是把一个错误的参数估计得越精确。窄区间和小 P 值不是可信度的证据,它们只在前四道工序通过之后才有意义。


工序六 · 更新:我应该移动多少

要回答什么

看完这篇研究,我对这个临床问题的判断,应该从哪里移到哪里?

怎么入手

不要问"这篇文章证明了吗",而要问四件事,按顺序:

1. 看这篇之前,我原本认为效应大概在哪里?为什么?
2. 这组数据往哪个方向拉、拉力有多大?(工序五)
3. 因为设计问题,这股拉力要打几折?(工序一至四)
4. 打完折之后,我现在站在哪里?我还没有相信什么?

第 3 步是这套读法与"看 P 值"的根本差别:**拉力的大小由数据决定,拉力的可信度由设计决定,两者必须分开计价。**一个识别干净的小样本研究,可能比一个识别混乱的大数据研究更值得移动你的判断。

工具

四句话结论模板(可直接用于 journal club 或病例讨论):

看这篇之前,基于 ______,我认为 ______,主要不确定性在 ______。 这组数据把效应中心推向 ______,并明显压低了 ______ 的解释。 但因为 ______(设计问题),我对这股拉力打 ______ 折。 所以我从 ______ 移动到了 ______;我还没有被推到 ______。

最后一句是模板里最重要的一句。明确说出"我还没有相信什么",比说出你相信什么更有价值,因为它标出了下一项研究应该去回答的问题。

两种敏感性分析(判断结论稳不稳的两个方向):

类型问的是常用手段
结构敏感性如果存在一个未测量的混杂,它要多强才能翻转结论?E-value、偏倚分析、负对照结局
信念敏感性换一个同样合理的先验判断,结论还成立吗?先验敏感性分析、不同亚组重复

论文若做了前者,可信度显著提升;一篇没做任何敏感性分析、却给出强因果结论的观察性研究,本身就是一个信号。

常见破绽

  • 一篇定论式阅读:"这项研究证明了 X"——单项研究几乎从不证明任何事,它只移动判断。
  • 不打折的阅读:把发在高影响因子期刊、样本量大、P 值小当作可以跳过工序一至四的理由。
  • 只更新一个参数:只看生存获益,不同步更新毒性、生活质量、成本、可及性——而临床决策需要的是这几个参数的联合更新。

局限

更新的终点不是"该不该用这个药"。统计和因果推断能告诉你获益可能有多大、不确定性有多大、代价可能是什么,但"值不值得"取决于这位患者的基线风险、对毒性的承受、经济状况和价值观。这一步永远不能被计算替代——把它明确留给医患共同决策,是这套流程的正确终点,不是它的失败。


3. 完整走一遍:黎巴嫩免疫治疗断供研究

选一篇真实的、且乍看结果反直觉的研究来走完六道工序。反直觉的结果最能检验这套流程有没有用——因为它不允许你用"符合预期"蒙混过关。

论文:Impact of Lack of Access to Immunotherapy on Survival in Stage IV Non-Small Cell Lung Cancer: A Multicenter Retrospective Study From Lebanon. JCO Global Oncology, 2026-07-22, PMID 42485593.

设计:黎巴嫩多中心回顾性研究,翻阅 500 份病历,纳入经济危机前 73 例、危机期 85 例新诊断 IV 期 NSCLC,共 158 例。经济危机造成药物短缺与治疗中断,形成了被迫减量的场景。

结果:免疫治疗接受者中,全剂量、50%–99%、低于 50% 剂量密度分别占 44.0%、41.4%、14.7%;三组中位 PFS 依次为 6.33、12.86、10.23 个月,差异未达统计学显著(P=0.132)。

先记下那个反常:剂量最低的两组,中位 PFS 反而比全剂量组长一倍左右。如果照字面读,结论会是"减量更好"——这显然荒谬。我们的任务不是宣布它荒谬,而是说清楚这个数字为什么会长成这样,以及它到底能支持什么。

三十秒定位:回顾性观察性研究;分组依据是随访期内实际发生的给药强度;结局是 PFS(需影像评估)。分析支持的层级:第一层。红旗命中两条——分组依据是基线之后才知道的信息;结局需影像评估而两个时期的检查条件很可能不同。


工序一 · 目标量

先写目标试验,再对照:

目标试验(如果能随机)论文实际做法判定
目标人群:新诊断 IV 期 NSCLC一致(但仅限接受了免疫治疗者进入剂量分析)⚠️ 见工序三
策略 A:按标准剂量密度给足全程实际达成的剂量密度 ≥100%❌ 实现值 ≠ 指派策略
策略 B:预先规定的减量方案(如 50%–99%)实际达成的剂量密度落在该区间❌ 同上
时间零点:一线免疫治疗启动日未明确(危机期起点?诊断日?)⚠️ 需查全文
结局:PFS一致
目标效应:总效应未声明⚠️

这一栏是全篇的关键:策略 A/B 的定义错位了。目标试验里的"减量"是一个在时间零点就指派下去的策略;论文里的"剂量密度"是整个治疗过程结束后回头算出来的实现值。两者名字相同,含义完全不同——前者是原因,后者很大程度上是结果。

顺带注意:这篇论文实际上打包了两个不同的比较——危机前 vs 危机期(一个近似自然实验),和剂量密度三分组(一个暴露后分组)。前者的因果结构远比后者干净。混在一起讨论,会让后者借用前者的可信度。


工序二 · 时间

画三条线:

        合格            分组                        随访起点
        (诊断IV期)    (剂量密度算出来时)        (治疗开始)
时间轴 ──┼──────────────────────────────────────┼─────────────▶
                    ↑ 分组所需的信息,
                      要等治疗全程结束后才存在

三条线没有对齐,而且错位方向很特殊,值得仔细拆:

  • 反向路径:早期进展或早期死亡 → 治疗提前终止 → 累积剂量少。这条路径把"预后差"推向"低剂量密度",方向是让低剂量组显得更差
  • 不死时间路径:要因短缺而经历"被迫减量",你必须在短缺持续期间还活着、还在接受治疗。活得越久,暴露在减量情境下的机会越多。这条路径把"活得久"推向"低剂量密度",方向是让低剂量组显得更好

两条路径方向相反,哪条占上风取决于剂量密度的分母怎么定义(是"计划全疗程"还是"实际治疗期内应给的量")——而摘要没说。这本身就是一个结论:在暴露定义澄清之前,这个比较的偏倚方向都无法确定。


工序三 · 结构

把作者没画的图画出来(虚线表示这是我的推断,不是论文的证据):

正在载入图形...

身份判别:

变量身份后果
患者状态 / 疾病侵袭性基线共同原因(fork)状态差者更易减停药,本身预后也差 → 未测量则混杂
在治存活时长反向因果 / 不死时间剂量密度部分是生存的结果而非原因
影像检查频率测量过程危机期查得少 → 进展被发现得晚 → 观测 PFS 被拉长
支付能力 / 转诊渠道基线共同原因危机期能拿到药的人可能本就资源更好
危机期(日历时间)准工具 / 时期效应但它同时影响给药、影像、支持治疗 → 排他性不成立

最值得注意的是"影像检查频率"这一条。PFS 是一个被检出的事件:查得越少,进展被记录得越晚,测出来的 PFS 就越长。经济危机同时压低了给药强度影像频率,而这两件事发生在同一批患者身上——于是低剂量组的 PFS 被系统性地拉长。

**这条路径与观察到的反常方向完全一致,而且它甚至不需要任何真实的生物学效应。**在我看来,它是这组数字最经济的解释。


工序四 · 识别

**目标量一(策略性减量的因果效应):不可识别。**三条理由,任何一条单独成立就足够:

  1. 暴露被定义为实现值而非指派策略(工序一),这个量在目标试验里没有对应物;
  2. 关键混杂——疾病侵袭性、患者状态、支付能力、医生的优先分配决策——基本不可能在回顾性病历中被充分测量;
  3. 结局的测量过程与暴露相关(危机同时改变给药和影像频率),这是一条无法靠调整协变量修复的路径。

有没有可用的工具变量?危机本身看起来像一个外生冲击,是很自然的候选。但排他性限制不成立:危机不只通过剂量密度影响 PFS,它同时改变了影像频率、支持治疗、转诊路径乃至患者的营养与依从状况。这个工具通向结局的路不止一条。

目标量二(危机期 vs 危机前,作为一种"暴露于断供环境"的策略效应):部分可识别。这个比较更接近一次自然实验,时间零点也更容易对齐。代价是日历时间混杂——两个时期的诊断技术、可及药物谱、支持治疗都不同。这是这份数据能支撑的最强的因果性问题,但论文的重点没有放在这里。

**目标量三(描述断供的实际形态):完全可识别,且不需要任何因果假设。**44.0% / 41.4% / 14.7% 这个分布本身就是可靠信息。


工序五 · 估计

  • 样本量:158 例,其中低于 50% 剂量密度组占免疫治疗接受者的 14.7%——大约十几个人
  • 事件数:未报告。生存分析的信息量来自事件数,缺了它无法判断这三条曲线有多少支撑。
  • 区间:三个中位数都没有给区间,只有一个整体的 P=0.132。
  • 非单调性:6.33 → 12.86 → 10.23,随剂量下降先升后降。真实的剂量-反应关系很少长这样;非单调本身就是混杂或偏倚的提示,而不是需要用生物学去解释的现象。

关于那个 P=0.132,有一条纪律必须守住:**它不能被读成"三组无差异"。**这项研究没有按等效性设计,功效极低(最小组十余人),"没测出差异"在这里几乎不携带信息。


工序六 · 更新

看这篇之前,我认为免疫治疗的剂量-暴露-效应关系在治疗窗内相对平坦(这有既往药代与剂量探索研究支持),但主动减量是否安全缺乏可靠证据;同时我对真实世界断供的规模没有具体概念。

这组数据在"减量是否影响疗效"上给出的拉力:方向可疑、强度极弱。数值上低剂量组更好,但至少三条偏倚路径(不死时间、影像频率、支付能力选择)都朝这个方向推,而它们与真实效应无关。

因此这一股拉力我打到接近零折——我在"减量是否安全"这个参数上几乎没有移动。特别地,我没有被推向"减量与全剂量等效",那需要一项按等效性设计的研究。

但这篇文章在另一个参数上明显移动了我:断供发生时,实际剂量密度的分布是 44% / 41% / 15%——超过半数患者没能拿到全剂量。这个量不需要任何因果假设就成立,而且是制定供应中断预案时真正要用的数字。

最终评价:一篇有价值的论文,而且它自己的措辞是克制的——原文没有主张减量获益,也说明了未按等效性设计。风险不在作者,在引用它的人。

正确的引用方式:

  • ✅ "在黎巴嫩经济危机期间,超过半数接受免疫治疗的 IV 期 NSCLC 患者未能获得全剂量,其中 14.7% 剂量密度低于 50%。"
  • ✅ "该研究记录了供应中断的真实形态,可用于制定断药预案。"
  • ❌ "真实世界数据提示免疫治疗减量不影响 PFS。"
  • ❌ "低剂量组 PFS 更长,提示可能存在最佳剂量窗。"

如果要把它变成一项能回答减量问题的研究,需要改三处:把暴露改为时间零点即可判定的指派策略(例如"该中心在该时段的供应状态");对影像评估频率做匹配或敏感性分析;把问题重新表述为等效性/非劣效并据此估算样本量。


4. 一页判决书

读完一篇研究,把结论压缩成这张表。它可以直接贴进文献笔记或 journal club 幻灯。

研究         :
声称的层级   :□ 关联  □ 干预  □ 反事实
分析支持的层级:□ 关联  □ 干预  □ 反事实      ← 两行不一致就是过度解读

目标量       :(七行目标试验里最关键的三行)
时间对齐     :□ 三条线重合  □ 存在不死时间  □ 无法判断
结构问题     :□ 调了中介  □ 调了对撞  □ 隐性选择  □ 观测≠真实  □ 无明显问题
识别         :□ 成立(假设:______)  □ 不成立(原因:______)  □ 无法判断
信息量       :事件数 ____,区间 ____,绝对差 ____
偏倚方向     :□ 倾向夸大  □ 倾向低估  □ 方向不明        ← 比"有偏倚"有用得多
敏感性分析   :□ 做了(______)  □ 未做

我的移动     :从「______」到「______」
仍未被更新   :______
可以怎么引用 :______

其中偏倚方向这一栏值得特别注意:说"这项研究有混杂"几乎不提供信息,因为所有观察性研究都有。有用的判断是混杂朝哪个方向推——如果偏倚方向与观察到的效应方向相反,那么真实效应可能比报告的更大,这个结论反而更稳。

填好之后长这样(第 3 节那篇):

研究         :黎巴嫩免疫治疗断供研究(JCO Glob Oncol 2026, PMID 42485593)
声称的层级   :■ 关联                        ← 作者措辞克制,未越级
分析支持的层级:■ 关联

目标量       :A=实际达成的剂量密度(非指派策略),Y=PFS,时间零点未明确
时间对齐     :■ 存在不死时间(分组依据在随访期内才产生)
结构问题     :■ 隐性选择(仅免疫治疗接受者)  ■ 观测≠真实(影像频率随危机下降)
识别         :■ 不成立(暴露定义错位 + 关键混杂不可测 + 测量过程与暴露相关)
信息量       :事件数未报,无区间,最小组约十余人,P=0.132(未按等效性设计)
偏倚方向     :■ 倾向夸大低剂量组的表现(三条路径同向)
敏感性分析   :■ 未做

我的移动     :从「减量是否安全证据不足」到「减量是否安全证据仍不足」(≈未移动)
             另:从「不清楚断供规模」到「超半数患者未获全剂量,15% 不足半量」
仍未被更新   :减量与全剂量的等效性;断供对 OS 的影响;不同瘤种的可推广性
可以怎么引用 :作为断供实际形态的描述性证据,不作为减量安全性的证据

注意"我的移动"那一栏出现了两行:**一项研究可以在某个参数上完全推不动你,同时在另一个参数上给出确实有用的信息。**把这两者分开记,比给整篇文章打一个"可信/不可信"的总分有用得多。


5. 结论该停在哪一层:措辞对照

写作和讲述时,让句子停在你实际算出来的那一层。

分析实际支持可以这样说不能这样说
关联(描述、预测)"……与更长的 OS 相关""在本队列中,……组的 OS 更长""……改善了 OS""……是获益因素"
干预(识别成立)"在以下假设下,改用 A 策略预计使 2 年生存率提高 X 个百分点""这位患者用 A 会多活 X 个月"
干预(识别存疑)"方向与既有证据一致,但因……本研究不足以支持因果结论""真实世界证据证实了……"
反事实"在 ……假设下,该事件由药物引起的概率区间为 ……""这个不良事件是这个药引起的"

三条容易被忽略的措辞纪律:

  1. **"独立预测因子"不是因果表述。**它只说明在某个模型里系数不为零,与"改变它会改变结局"无关。
  2. **"调整后仍显著"不提升层级。**调整的正确性来自结构,不来自显著性。
  3. 群体量不能直接搬到个体。"人群平均延长 3 个月"与"这位患者能多活 3 个月"之间,隔着一整级阶梯和一整组新假设。

6. 十个"看起来严谨"的信号

这些做法在论文里显得专业,但对因果结论没有帮助,有时反而有害:

  1. "单因素分析 P<0.1 者纳入多因素" —— 变量选择应基于结构,不基于显著性
  2. "我们调整了所有基线特征" —— 表 1 里常混着治疗后变量和对撞点
  3. 倾向评分匹配 —— 只是后门调整的一种实现方式,无法处理未测量混杂;匹配后样本代表性还可能变差
  4. "多变量分析证实了独立相关性" —— 独立性是统计概念,不是因果概念
  5. 超大样本量 —— 只压缩随机误差,对系统偏倚毫无作用
  6. "结果与既往研究一致" —— 如果既往研究有同样的设计缺陷,一致性只是缺陷的复现
  7. 只看 P 值不看区间 —— 显著与否不告诉你效应可能有多大
  8. per-protocol 分析作为"更真实"的补充 —— 它通常引入的是选择偏倚,不是真实性
  9. 亚组森林图里挑显著的解释 —— 亚组内识别条件通常更差,多重比较也未控制
  10. "因果关系需要 RCT 证实"作为万能免责声明 —— 这句话既回避了本研究能不能识别的问题,也忽视了 RCT 自身在随访阶段同样会失去保护

附录 A · 记号对照

读文献时会遇到几套长得像、含义完全不同的记号。混淆它们是解释错误的主要来源。

记号读作层级含义
P(Y│A=1)在用了 A 的人中,Y 的概率包含了"谁被选去用 A"这个机制
P(Y│do(A=1))如果让所有人都用 A,Y 的概率切断了选择机制
E[Y│do(1)] − E[Y│do(0)]总效应 / ATE两个平行世界的对比
E[Y_1 − Y_0│A=1]ETT,用了药的人身上的效应与 ATE 可以差别很大
P(Y_0=0│A=1, Y=1)归因概率 PN药物警戒、"若非"判定
Y_{a, M_{a'}}嵌套反事实自然直接/间接效应的基础
Σ_c P(Y│A,c)P(c)后门调整公式do 翻译成可算量

三条实用提醒:

  • **回归里"加一项"永远是条件化,永远不是 do。**变量塞进模型不会让它获得干预含义;授予干预含义的是图的结构。
  • **P(Y│do(A), M=m)P(Y│do(A), do(M=m)) 完全不同。**前者是挑出一个亚组,后者才是"把 M 固定住"。Y ~ A + M + C 给的是前者,人们几乎总想解释成后者。
  • **中介分析比总效应高一整级。**自然直接/间接效应需要嵌套反事实——要求把 M 设成"如果这个人没用药、他本会有的那个值",这个值从来不存在于任何数据中。

附录 B · 分级读法

不是每篇文章都值得走完六道工序。按用途分级:

五分钟(筛选:这篇值不值得细读)

  1. 三十秒定位(第 1 节的三个判断)
  2. 时间三条线是否对齐(工序二)
  3. 有没有调中介或以治疗后变量筛人(工序三的两条最常见破绽)

任何一条命中,先归入"存疑"堆,不要引用。

三十分钟(要引用、要在科室讲)

  1. 填目标试验七行对照表(工序一)
  2. 画 5–8 节点骨架图 + 身份判别表(工序三)
  3. 判断识别是否成立,并列出所依赖的假设(工序四)
  4. 查事件数、区间、绝对差(工序五)
  5. 写四句话结论 + 一页判决书(工序六、第 4 节)

深读(要据此改变临床实践或写进综述) 在上面基础上补:偏倚方向的定量评估(E-value 或简单偏倚分析)、与既有证据的联合更新、未被更新参数的清单、如果要设计一项更好的研究该改哪三处。


附录 C · 常见结构速查

你看到结构后果该怎么办
调整了治疗后出现的变量A → M → Y主链被切断,总效应被低估或方向不明估总效应时不调
只分析"可评估""完成治疗""有检测结果"者A → S ← U → Y选择偏倚,方向常不可预测改回全人群;或明确重新定义目标人群
调整了同时受 A 和 Y 影响的变量A → K ← Y凭空造出关联不调,也不调它的后代
结局需要检测才能发现,两组检测频率不同真实 → 观测 ← 检测过程检测强度差异被误读为疗效差异把检测过程画进图;改用硬终点
分组依赖基线后信息不死时间暴露组被系统性地"赠送"了生存时间时间零点对齐;time-varying 或地标分析
治疗随时间改变,且中间状态既是前次治疗的结果又影响后续治疗A0 → L1 → A1 → Y普通调整无论调不调都有偏g-methods、IPW、边际结构模型
分层与合并的结论相反辛普森悖论取决于第三变量是混杂还是中介由结构判断,不由数据判断
全队列都接受了同一治疗,却报告"治疗效应"无对照效应不可识别重构为预后研究

参考与延伸

入门

  • Pearl J, Mackenzie D. The Book of Why.(中译《为什么:关于因果关系的新科学》,中信出版集团,2019)——本文的引擎框架、三层阶梯、图手术、辛普森悖论均源自此书。零基础首选。

方法

  • Hernán MA, Robins JM. Causal Inference: What If. Chapman & Hall/CRC, 2020.(识别、混杂、选择偏倚、测量偏倚、工具变量、g-methods 的系统处理)
  • Hernán MA, Robins JM. Using big data to emulate a target trial when a randomized trial is not available. Am J Epidemiol. 2016;183(8):758–764.(工序一的方法来源)
  • Hernán MA. The hazards of hazard ratios. Epidemiology. 2010;21(1):13–15.(工序五中 HR 的结构性问题)
  • Dickerman BA, et al. Avoidable flaws in observational analyses: an application to statins and cancer. Nat Med. 2019;25:1601–1606.(工序二不死时间的标准参考)
  • VanderWeele TJ. Explanation in Causal Inference. Oxford University Press, 2015.(中介与交互;附录 A 中嵌套反事实的正规处理)
  • Greenland S, et al. Statistical tests, P values, confidence intervals, and power: a guide to misinterpretations. Eur J Epidemiol. 2016;31:337–350.(工序五的读数纪律)

工具

  • DAGitty:在线画图,自动给出最小充分调整集、列出可验证的蕴涵、搜索工具变量。工序三画完图后用它复核一遍,比手工数路径可靠。

第 3 节案例出处

  • Impact of Lack of Access to Immunotherapy on Survival in Stage IV Non-Small Cell Lung Cancer: A Multicenter Retrospective Study From Lebanon. JCO Glob Oncol. 2026. PMID 42485593.(本仓库周报 reports/lc/weekly-2026-07-30.md 第 7 条)

本仓库内的两篇专题

  • dag-guide.md:DAG 的完整读图与设计方法(工序三、四的展开)
  • laplace-guide.md:贝叶斯式的证据更新读法(工序五、六的展开)