「调整后的 OR 变了,就说明有混杂」——错。非可折叠性的一次手算
【锚点】这一篇只钉一个判断:把「调整协变量后 OR 从 2.0 掉到 1.72」当成「存在混杂」的证据,是因果推断里一个根深蒂固的误读。OR 是【非可折叠(non-collapsible)】的——即使没有混杂、即使每个层里 OR 都完全一样,边际 OR 也必然与条件 OR 不同。
先看数字。设 Z 是随机化后与处理 A 独立的二值协变量(P(Z=1)=0.5),处理对 Z 无影响。两个层里,控制组风险与处理组风险如下:
Z=1:控制 0.50 → 处理 0.667。OR = (0.667/0.333)/(0.50/0.50) = 2.0 Z=0:控制 0.10 → 处理 0.1818。OR = (0.1818/0.8182)/(0.10/0.90) = 2.0
每个层的条件 OR 都恰好是 2.0。现在把两层合并(因为 A⊥Z,合并合法):
边际控制风险 = 0.5×0.50 + 0.5×0.10 = 0.30 边际处理风险 = 0.5×0.667 + 0.5×0.1818 = 0.4242 边际 OR = (0.4242/0.5758)/(0.30/0.70) = 1.72
【流程节点链路】按 Z 分层设定层内风险 → 计算层内 OR(均为 2.0)→ 因 A⊥Z 用 0.5 权重合并边际风险 → 边际控制 0.30、处理 0.4242 → 边际 OR = 1.72 → 结论:条件 OR=2.0 而边际 OR=1.72,且全程无混杂。
同一批数据换成风险差(RD):层内 RD = 0.167 与 0.082,边际 RD = 0.124 = 0.5×0.167 + 0.5×0.082。RD 是【可折叠】的——边际 RD 恰好是层内 RD 的加权平均。风险比(RR)同理可折叠。唯独 OR 不行。
这就是为什么「粗 OR ≠ 调整 OR」不能当作混杂检验。混杂的定义是「协变量同时影响处理与结局」,而这里 Z 与处理独立,没有混杂;OR 照样变。Greenland、Robins 等人几十年前就把这件事讲清楚了,但应用文献里「调整前后效应变了 = 有混杂」的推理仍然泛滥。
【图钉分级】 【显式】上面两组数字:层内 OR 都是 2.0,边际 OR 是 1.72。 【隐式】A⊥Z 使合并权重恰好是 0.5,所以这是「无混杂却仍不可折叠」的干净反例。 【细微】把 OR 换成 RD 或 RR,同样的数据立刻可折叠——差异只来自度量本身,不来自数据。 【极难发现】非可折叠性意味着「调整」在 OR 尺度上永远改变估计目标(estimand):条件 OR 与边际 OR 回答的是两个不同的因果问题,不是同一个问题的「更干净版本」。
一个值得辩论的问题:既然 OR 非可折叠,那么在病例对照研究和逻辑回归里(这些场景 OR 是自然参数),我们究竟该把「调整后的 OR」报告成因果效应,还是老老实实承认它只是一个条件关联、并额外报告一个可折叠的边际效应(如 RD/RR)?我的立场:报告归报告,但别把「调整前后变了」当混杂证据——那是把估计目标的改变,误读成了偏差的暴露。







0 评论