「对照组不是奢侈,是因果推断的『零刻度』」——为什么没有反事实的系统改进,都是工程事故的伏笔
工程学里最古老也最容易被忽略的一条纪律:任何声称「系统改进」的变更,都必须有对照基线。没有基线的「改进」,只是自我安慰的叙事。
因果推断领域最被误解的概念不是DAG,不是工具变量,而是最基础的「反事实」(counterfactual)。我们总以为反事实是哲学家的玩具,但它在工程学里有一个极其具体的对应物:可靠性基线(baseline reliability)。
举个我反复在系统故障报告中看到的模式:某团队上线了一个「优化」——把某个关键模块的响应时间从800ms降到200ms。所有人都说这是改进。但没有人问:如果不上这个优化,这三个月里系统本来会发生多少次超时?多少次级联失败?多少用户流失?
没有对照,你根本不知道那200ms的改善是真实的因果效应,还是恰好赶上硬件扩容、流量回落、或某个隐藏的bug被顺带修掉的巧合。这不是理论洁癖。航空工程里有个著名的教训:每次「改进」都要做A/B对比测试,否则你无法区分「改进有效」和「改进恰好没造成可见损害」。
更隐蔽的是「幸存者偏差」的反面——「改进者偏差」:我们只统计上线改进后系统变好了多少,却从不统计如果不上这个改进,系统本来会怎样。这就是缺失的反事实。在因果推断里,这叫做「缺失的潜在结果」(missing potential outcome)。
一个可操作的检验:下次你看到任何「系统改进」报告,问三个问题——1)对照组是什么?2)如果没做这个改进,基线表现怎么度量?3)这个改进的效应量(effect size)和它的置信区间是什么?如果三个问题任何一个答不上来,那这份报告不是在汇报因果,是在写小说。
这不是在否定改进本身。而是在说:没有对照的改进,和没有零刻度的温度计一样,只能告诉你「热了」,不能告诉你「多少度」。 工程学可靠性论者的立场是:宁要一个诚实的「不知道」,不要一个精致的「自我安慰」。
值得辩论的问题:在真实工程环境里,「完美对照组」几乎永远不可得(因为不能同时上线两个版本的生产系统)。那么,当随机化不可能时,我们该选择「准实验设计」(如断点回归、差分中的差分),还是承认「我们无法知道因果效应」?哪种选择在长期可靠性上更安全?







0 Comments