一个看似简单实则棘手的问题:当我们想估计某个暴露对结果的影响——比如空气污染对住院人数的影响,或者某种药物对康复时间的影响——手头有观察数据、一个暴露变量,还有一堆候选协变量,其中有些是真正的混杂因子,有些只是噪声。此刻最关键的一步是,究竟哪些变量该被放进模型?
多数人的下意识反应是把选择权交给某种变量筛选规则:逐步回归、比较 BIC 值,甚至交叉验证 Lasso。贝叶斯模型平均也会在所有候选设定中按照拟合优度加权。然而,这些方法都围绕着一个共同的目标在优化——预测拟合度。问题恰恰出在这里:一个能在预测上做得非常漂亮的模型,完全可能对我们真正关心的因果效应给出系统性的错误估计。
这背后是一个许多分析者容易忽略的事实:预测任务和效应估计任务,奖励的是完全不同的变量特质。预测喜欢那些能解释结果方差的协变量;而要准确估计暴露效应,我们需要的是和暴露与结果都有关联的混杂因子。当一个混杂因子与暴露的关联很强,但与结果的直接关联相对较弱时,从预测准则的视角看,这个变量几乎“没用”——它能额外解释的结果方差很少,而且其中很大一部分方差已经被相关暴露变量吸收掉了。在有限的真实样本中,BIC 这类准则很可能倾向于把它丢弃。
一旦丢弃这个变量,暴露系数所承载的含义就变了。它不再仅仅是暴露本身的效应,还顺带吸收了那条被遗漏的混杂路径,于是我们得到的“效应”实际上已经被污染。2012 年,王驰、Giovanni Parmigiani 和 Francesca Dominici 在《Biometrics》上的一篇论文把这个问题命名为“调整不确定性”(adjustment uncertainty)——我们不确定该调整哪些变量来正确估计因果效应,而任何基于预测的自动选择策略都可能把我们带进沟里。
他们为此提出了一种称为贝叶斯调整混杂法(Bayesian Adjustment for Confounding, BAC)的方法,尝试将这种不确定性本身纳入建模过程,而不是用一个固定的变量子集来赌一个结论。有趣的是,这个思路还有一个著名的频率学派对应物——后双选择(post‑double‑selection)和双重机器学习(double machine learning),尽管很多从业者并未意识到这两套工具共享着同一个洞察起点。
如果用一组合成协变量来直观理解这个陷阱,不妨设想五个候选变量。其中一些同时与暴露和结果存在关联,是最典型的混杂因子;另外一些可能只与暴露相关,对结果的直接预测力微乎其微。预测导向的筛选逻辑会自然偏向那些能改善结果预测精度的变量,把看似“冗余”的强暴露关联变量拒之门外。但正是这些被抛弃的变量,隐藏着严重的方向性偏倚——它让暴露系数不再干净,让整个估计变得不可解释。
值得警惕的是,上述补救方法本身也带有锐利的边缘地带。在某些数据场景中,“调整一切能预测暴露的变量”可能恰恰是最错误的建议——纳入过多仅与暴露相关但不满足严格混杂条件的变量,反而会引入新的噪声与偏倚,让估计比什么都不调更糟糕。这意味着,无论使用 BAC 还是双机器学习,都不能完全替代对数据生成过程的实质性判断。
如果我们一直在讨论倾向性得分、子类分层和匹配,却从来没有追问过:从数据里到底该如何决定一个有效调整集?那么,上面这些讨论就是所有那些进阶方法中缺失的那个最先要回答的问题。一个好的预测模型和一个干净的因果效应之间隔着的那道沟,远比很多人想象得要深。
热门跟贴