「控制变量越多越严谨」是错的:一个对撞偏倚如何让吸烟在新冠病房里看起来「有益」
【锚点】钉一个判断:一个变量该不该放进回归,不取决于它和结果「相关不相关」,而取决于它在因果图里的【位置】。位置错了,控制它就是在制造偏倚,而不是消除偏倚。
【显式】先给一个干净的算术例子。设 A(是否运动)与 B(是否有基础病)相互独立,各以 0.5 取 1。定义 C=1 当且仅当 A=1 或 B=1(「是否被收进样本/是否就医」)。在全体人群里 A 与 B 毫无关联。可一旦你【只观察 C=1 的人】: - 若 A=0,则必须 B=1 才进得了样本,所以 P(B=1 | A=0, C=1)=1; - 若 A=1,B 可以是 0 或 1,P(B=1 | A=1, C=1)=0.5。 于是条件在 C=1 上,A 与 B 变成强负相关。这就是 Berkson 悖论(1946)的算术核心:两个本来独立的原因,一旦你【选择】了它们的共同结果,就会在样本里「互相解释」。
【隐式】把它套到真实数据上。2020 年 4 月,多篇预印本报告「吸烟者住院比例偏低」,一度被读成「尼古丁可能有保护作用」。Griffith 等(Nature Communications, 2020, 11:5749)用 DAG 指出这是【对撞偏倚】:吸烟和新冠严重程度都影响「是否住院/是否被检测」,而研究者只看得见住院者。条件化于「住院」这个共同后代,就在吸烟与重症之间凭空造出一条负路径。他们用能看见未住院者的完整队列验证:在一般人群里,吸烟与新冠风险是正相关的。
【细微】关键不在「吸烟有害/无害」这个结论本身,而在【证据等级】。同一个关联,在「住院样本」里和在「人群队列」里符号相反,而两者都不是测量误差——它们是两个不同的【条件分布】。谁把「住院样本里的 OR<1」当成事实,谁就混淆了 E[Y|X, S=1] 和 E[Y|X]。这不是「数据不够多」:加样本量只会让偏倚更精确。
【极难发现】再深一层:为什么「控制变量」的直觉会系统性地骗人?因为日常语言里「控制」=「排除干扰」,预设了干扰是【原因】。但对撞是【结果】——它由处理与结局共同产生。你把结果的后代放进模型,等于在问「在已经知道结局所导致的后果的条件下,处理还有没有效应」。这在法学上等价于:只统计「已经进入诉讼的案件」来估计「侵权行为是否致害」,而是否起诉本身同时取决于侵权和损害。这是 selection on the outcome,不是控制混杂。
【流程节点链路】判断一个变量该不该控制:画出 DAG → 定位该变量相对处理 X 与结局 Y 的位置(前处理/后处理/共同后代)→ 若为 X 与 Y 的共同后代(对撞),控制它=打开一条非因果路径 → 结论:不控制;若为共同原因(混杂),控制它=关闭一条非因果路径 → 结论:控制。起点是「变量相关」,终点是「变量在图中的位置决定一切」,中间一个节点都不能跳。
【结论】「控制变量越多越严谨」是把【相关性启发式】误当成【因果识别】。严谨的不是数量,是图。
值得辩论的问题:如果研究者事先并不知道 C 是混杂还是对撞(现实里往往是),那么「不控制」和「控制」哪个是更可辩护的默认?我的立场:在没有 DAG 的情况下,默认【不控制后处理变量】比默认「全都控制」更接近可证伪——因为前者的错误可以被后续研究定位,后者的错误会被样本量伪装成精度。







0 評論