结构因果模型(SCM):三要素、干预与do算子、因果效应的识别与计算
各位同学,今天我们聊一个硬核话题——结构因果模型。说实话,我在保险精算领域摸爬滚打这么多年,真正让我觉得「因果推断落地了」的,就是SCM这套框架。它不像传统统计模型只告诉你「相关」,而是直接告诉你「如果我把某个变量改了,结果会怎样」。
你想想看,在保险定价里,我们经常要回答这类问题:如果给所有高风险客户都装上车载监控,事故率能降多少?如果强制要求投保人做健康体检,理赔成本会怎么变?这些问题,用传统回归是回答不了的。但SCM可以。
SCM三要素:因果图、结构方程、外生变量
结构因果模型由三部分组成,缺一不可。我习惯把它们比作一个「因果引擎」的三个齿轮。
- 因果图(DAG):有向无环图,节点是变量,箭头表示因果关系。比如「驾龄 → 事故次数」,箭头方向就是因果方向。
- 结构方程:每个内生变量都有一个方程,描述它如何被父节点和外生变量决定。比如:
事故次数 = f(驾龄, 驾驶习惯, 随机误差)。 - 外生变量:不受模型内其他变量影响的变量,通常包含随机扰动项。说白了,就是「老天爷决定的」那部分。
核心要点:SCM假设每个变量都有一个「数据生成机制」,这个机制是稳定的。干预就是改变这个机制,而不是仅仅改变变量的取值。
我在做车险定价项目时遇到过一个问题:直接用历史数据回归,发现「驾龄越长,事故越少」。但这是因果吗?不一定。因为驾龄长的人可能本身就更谨慎,或者开的车更安全。SCM帮我把这些混淆因素显式地画出来,然后才能做真正的因果推断。
干预与do算子:从「看到」到「做到」
传统统计学的条件概率 P(Y|X=x) 回答的是「看到X等于x时,Y的分布」。而因果推断关心的是 P(Y|do(X=x)),即「强制把X设为x时,Y的分布」。这两者天差地别。
举个例子:P(事故 | 驾龄=1年) 是「我看到一个驾龄1年的人,他出事故的概率」。而 P(事故 | do(驾龄=1年)) 是「我把所有人的驾龄都强制改成1年,事故率会变成多少」。前者是观察,后者是干预。
do算子怎么计算?核心思想是:删除所有指向被干预变量的箭头,然后计算条件概率。为什么?因为干预切断了X和它的父节点之间的关联,X不再受其他因素影响了。
避坑指南:我曾经在项目里直接用回归系数当因果效应,结果被业务方质疑「为什么你的建议和实际效果差这么多?」后来才发现,回归系数里混杂了选择偏差。用do算子重新算一遍,结果才靠谱。
因果效应的识别与计算
识别因果效应,说白了就是回答一个问题:在给定因果图的情况下,能不能用观测数据估计出 P(Y|do(X=x))?
常用的识别策略有三种:
- 后门准则:找到所有同时影响X和Y的混淆变量,把它们控制住。比如研究「驾驶培训 → 事故率」,需要控制「年龄」这个后门变量。
- 前门准则:当存在中间变量M时,可以通过M来估计X对Y的效应。比如「药物 → 胆固醇 → 心脏病」,如果药物和心脏病之间有未观测的混淆,可以通过胆固醇这个前门来估计。
- 工具变量:找一个只影响X、不影响Y(除了通过X)的变量Z。比如用「距离驾校的距离」作为工具变量,来估计「参加驾驶培训」对事故率的影响。
计算上,我常用的是调整公式:
P(Y|do(X=x)) = Σ_z P(Y|X=x, Z=z) * P(Z=z)
其中Z是满足后门准则的变量集合。这个公式看着简单,但实际应用时,Z的选择非常关键。选少了有混淆偏差,选多了可能引入碰撞偏差。
注意:不要盲目把所有变量都放进Z里。如果某个变量是X的「后代」或者「碰撞器」,控制它反而会引入偏差。我见过太多人在这里翻车。
知识体系图:SCM核心逻辑
下面这张图是我自己梳理的SCM知识框架,帮你把三要素、干预、识别串起来:
一个实际案例:车险理赔成本归因
最后,我分享一个真实项目中的例子。某保险公司想评估「安装车载监控设备」对理赔成本的影响。直接比较安装和未安装的客户,结果发现安装组的理赔成本反而更高。为什么?因为安装设备的客户本身风险就高(自选择偏差)。
我们用SCM建模:
- X = 是否安装设备(1/0)
- Y = 理赔成本
- Z = 历史事故次数(混淆变量,同时影响X和Y)
因果图很简单:Z → X, Z → Y, X → Y。后门路径是 Z → X ← Y?不对,应该是 Z → X 和 Z → Y,所以Z是后门变量。我们用后门调整公式:
E[Y|do(X=1)] = Σ_z E[Y|X=1, Z=z] * P(Z=z)
算完之后,发现安装设备实际上降低了15%的理赔成本。这个结论和之前的朴素对比完全相反。你看,这就是因果推断的价值。
个人经验:做这类分析时,我建议先用DAG把所有可能的因果路径画出来,再和数据团队讨论。很多时候,画图的过程就能发现遗漏的混淆变量。别急着跑模型,先把图画清楚。
好了,SCM的核心内容就这些。记住三要素、do算子的含义、以及三种识别策略。下次遇到「如果...会怎样」的问题,先画个图,再决定用什么方法。