一句话定义
合成控制法(Synthetic Control Method)是一种因果推断方法:当某项干预只落在极少数单位身上、手边找不到合适的对照组时,用一批未受影响的单位按数据算出的权重加权组合,构造出一个"虚拟对照组",再用它来估计干预效果。它由经济学家 Abadie 及其合作者提出并推广。
它要解决什么难题
要回答"这个改动到底有没有用",最可靠的做法是随机对照试验(Randomized Controlled Trial, RCT),线上场景就是 A/B 测试。但现实里大量问题做不了实验:一座城市试点新政策、一个平台全量换掉推荐算法、一家公司整体调整定价策略——干预是全量的,没有"没被影响的版本"可比。
退一步的做法是找一个相似对象做对照,也就是双重差分(Difference-in-Differences, DID)。麻烦在于:单个对照单位很难在各方面都像处理单位。北京像不像某个省会?人口、产业结构、消费习惯总有几项差得远,一旦不像,"平行趋势"这条假设就站不住。
拼出来的"虚拟双胞胎"
合成控制法的思路是:既然一个不像,那就按比例拼一个出来。
打个比方。你想知道某个学生上补习班的效果,可他没有双胞胎兄弟。于是你从班里挑出几个同学,算出一组配比——"六成小王、三成小李、一成小张"——拼出一个"虚拟的他"。这个虚拟人在补习之前的历次大考、平时作业、作息习惯上,和真人几乎重合。补习之后,真人比虚拟人高出多少分,就是估计出的效果。
关键在最后那句"算出来的配比":权重不是研究者拍脑袋定的,而是解一个优化问题求出来的——每个权重非负、加起来等于 1,让合成单位在干预前的多条特征轨迹上尽可能贴近处理单位。这个约束有两个好处:一是合成结果不会跑到数据范围之外,避免外推出荒唐值;二是权重通常稀疏,往往只有少数几个单位拿到明显权重,"这个虚拟人由谁拼成"是可解释、可检查的。
估计出差距后,还要做安慰剂检验(placebo test):把每个对照单位轮流当成"假处理组"跑一遍流程,看真实处理单位的差距在所有结果里是否足够极端。如果一半的假单位都能造出同样大的差距,那这个结论就不可信。
和相邻概念的区别
| 方法 | 怎么构造反事实 | 主要代价 |
|---|---|---|
| A/B 测试 | 随机分组,直接观测 | 很多场景做不了,或成本太高 |
| DID | 找一个对照单位,假定趋势平行 | 对照单位不像时假设失效 |
| 倾向得分匹配(Propensity Score Matching, PSM) | 在个体层面挑相似样本配对 | 高维特征下难匹配,丢弃大量样本 |
| 合成控制法 | 多个单位加权组合成一条轨迹 | 需要较长的干预前时间序列 |
对实际工作的意义
对做产品、做算法的人,合成控制法填的正是"无法灰度、只能全量"这块空白:全站改版、区域试点、品牌广告投放、政策级调整,都可以用它估一个反事实。对普通职场人,它的思维方式更值得借用——判断一件事的效果时,先问"如果没有它,本来会是什么样",再用数据和权重去逼近那个"本来",而不是凭感觉找一个参照物。
三个前提别忽略
一是干预前要有足够长的历史数据,否则拟合不可靠;二是候选对照单位不能受干预波及(比如相邻城市也被同款政策覆盖),否则"干净"的对照就被污染;三是它通常只能回答一个或少数几个处理单位的效果,做不了 A/B 测试那种大样本、看异质性的活儿。具体工具实现和参数细节,以相应库的官方文档为准。
