「调整后 OR 变大了」不是混杂的证据:优势比的非可折叠性,一个 1.72 对 2.00 的算术
【锚点】只钉一个判断:在 logistic 回归里,「调整前后效应量变了」不能当作混杂存在的证据——因为优势比(OR)【非可折叠】:即使完全随机化、零混杂,边际 OR 也不等于条件 OR。
【显式】流行病学与临床论文里流通着一条规则:「加入某个协变量后 OR 变化超过 10%,说明它是混杂因素」(常被追溯到 Mickey & Greenland 1989, Am J Epidemiol 129:125-137)。这条规则在风险差(RD)与风险比(RR)上大体成立,在 OR 上系统性失效。
【隐式】失效的机制是链接函数,不是数据。构造一个完全随机化的例子(X ⊥ Z,无混杂):
- Z=0 层:未暴露风险 0.100 → 暴露风险 0.182(层内 OR = 2.00)
- Z=1 层:未暴露风险 0.500 → 暴露风险 0.667(层内 OR = 2.00)
- 两层各占 50%
边际:未暴露 0.300,暴露 0.424。 边际 OR = (0.424/0.576) / (0.300/0.700) = 0.737 / 0.429 = 【1.72】。
每一层的 OR 都恰好是 2.00,边际 OR 却是 1.72——它甚至不在任何一层的取值范围内。而边际 RD = 0.424 − 0.300 = 0.124,恰好是两层 RD(0.082、0.167)的等权平均。同一份数据,RD 可折叠,OR 不可折叠。
【流程节点链路】起点:X 随机化 ⇒ X ⊥ Z、无混杂 → 节点1:层内 OR 均为 2.00(0.100→0.182;0.500→0.667)→ 节点2:按 50/50 混合得边际风险 0.300 与 0.424 → 节点3:边际 OR =(0.424/0.576)/(0.300/0.700)=1.72 → 节点4:边际 RD = 0.124 = 两层 RD 的等权平均 → 终点:1.72 ≠ 2.00 且 1.72 ∉ {2.00},而 RD 完全可折叠。
【细微】所以 1.72 和 2.00 都不是错的:它们是两个不同的估计目标——边际(人群平均)OR 与条件(层内/个体)OR。非可折叠性是 logit / probit 链接的数学性质(Greenland, Robins & Pearl 1999, Statist Sci 14:29-46;Pang, Kaufman & Platt 2016, Stat Methods Med Res 25:1925-1937),不是偏倚。反过来说,「调整后效应量变大」在 logistic 模型里是默认会发生的事,尤其当协变量强烈预测结局时。
【极难发现】两个后果,第二个更少被说: 1. 「变化 >10% ⇒ 混杂」这条筛查规则在 logistic 回归里会把【纯精度变量】(只与 Y 相关、与 X 无关)误判为混杂。删掉它,估计量确实变了,但它从来不是混杂。 2. 更麻烦的是【估计目标混装】:多中心 RCT 的边际 OR 与「调整后」条件 OR 不能直接合并——合并的不是同一批研究,是两个不同的估计目标。同理,观察性研究用边际结构模型算出的边际 OR,与条件 logistic 的 OR,差的不只是方法,是问的问题。
【显式】一个可检验的推论:如果非可折叠性是主因,那么在同一个随机化样本里,条件 OR 与边际 OR 的比值应当随「结局基线风险跨层差异」单调增大;若差异来自混杂,则该比值在随机化后应当为 1。这是一个能把「非可折叠」与「残余混杂」分开的检验。
结尾问题:既然边际 OR 与条件 OR 是两个估计目标,那么 meta 分析在合并「OR」时,合并的到底是什么?如果各研究报告的估计目标不同,你的合并区间是在给一个不存在的共同参数做区间估计。那么——为什么我们还在用 OR 报告 RCT,而不是直接报 RD 或 RR?







0 Comments