在预备学习所奠定的根基上,我们现在正式化因果结构模型(SCM)的框架。尽管您可能对SCM及其相关的有向无环图(DAG)有实际理解,但建立严格的定义对于掌握本课程所涵盖的高级识别策略和估计方法来说是十分必要的。SCM提供了数学工具,可以明确表示因果假定,定义干预,并最终确定是否可以从现有数据中估计因果效应。定义因果结构模型SCM完整描述了系统变量如何获得其值。形式上,因果结构模型 $M$ 是一个元组 $M = \langle U, V, F, P(U) \rangle$,其中:$U$ 是一个外生变量集。这些变量由模型外部的因素决定。它们代表随机背景条件、噪声或未建模的影响。可以把它们看作系统随机性的根本来源。$V$ 是一个内生变量集。这些变量的值由模型内部的其他变量(包括内生和外生变量)决定。它们通常是我们旨在理解其关系的变量,例如处理、结果和混杂因素。$F$ 是一个结构方程集,其中包含针对每个内生变量 $V_i \in V$ 的一个方程。每个方程将 $V_i$ 的值指定为模型中其他变量(包括内生变量 ($PA_i \subseteq V \setminus {V_i}$) 和外生变量 ($U_i \subseteq U$))的函数 $f_i$: $$ V_i = f_i(PA_i, U_i) $$ 此处,$PA_i$ 表示 $V_i$ 的内生父变量集,即根据函数 $f_i$ 直接影响 $V_i$ 的 $V$ 中的变量。与 $V_i$ 相关联的 $U_i$ 代表该变量确定过程特有的外生影响,捕捉了任何未建模的因素或固有的随机性。$P(U)$ 是外生变量 $U$ 上的概率分布。此分布捕捉了影响系统的背景因素之间的潜在相关性和依赖性。重要地,每个方程 $V_i = f_i(PA_i, U_i)$ 都代表一个自主的因果机制。它描述了 $V_i$ 如何根据其直接原因和特定的外生因素来确定,并且独立于控制其他变量的机制。假定及其影响SCM定义隐含着重要的假定:隐式因果充分性: 标准定义假定,对于任何一对内生变量 $V_i, V_j$,任何共同原因要么包含在 $V$ 中,要么其影响通过 $P(U)$ 中的相关性得到体现。如果我们进一步假定外生变量 $U_i$ 相互独立 ($P(U) = \prod P(U_i)$),则模型假定内生变量 $V$ 之间没有未观察到的共同原因。这个强假定在实践中通常不切实际,第4章讨论了处理违背情况(未观察到的混杂)的方法。如果 $U_i$ 不被假定为独立,则它们的依赖结构代表潜在混杂变量。无环性(通常): 大多数入门教程和许多高级方法都假定 $F$ 中编码的因果关系不形成有向环。也就是说,一个变量不能是它自己的祖先。这意味着内生变量 $V$ 之间的关系可以用有向无环图(DAG)表示。我们将在本章后面(“因果图中的环和反馈处理”)具体讨论带环和反馈的模型。模块化/自主性: 这是一个根本假定。它提出,每个机制 $f_i$ 都是独立的,并且原则上可以更改(例如,通过干预)而不影响其他机制 $f_j$(对于 $j \neq i$)。这一特性使我们能够精确定义和分析干预的效果。从SCM到图和分布SCM自然地引出一个因果图(通常是有向无环图)。该图的节点对应于内生变量 $V$。当且仅当 $V_j$ 是函数 $f_i$ 中的一个参数(即 $V_j \in PA_i$)时,存在从 $V_j$ 到 $V_i$ 的有向边。从 $V_j$ 到 $V_i$ 没有边,编码了 $V_j$ 对 $V_i$ 没有直接因果效应这一强的因果假定。考虑一个简单的SCM: $U = {U_X, U_Y, U_Z}$ 假定独立且服从标准正态分布。 $V = {X, Y, Z}$ $F = {$ $X = f_X(U_X) = U_X$, $Z = f_Z(X, U_Z) = \alpha X + U_Z$, $Y = f_Y(X, Z, U_Y) = \beta X + \gamma Z + U_Y$ $}$ $P(U)$ 指定了这些分布(例如,标准正态分布,独立)。这个SCM引出以下图:digraph G { rankdir=LR; node [shape=circle, style=filled, fillcolor="#a5d8ff", fontname="sans-serif", fontsize=12]; edge [arrowhead=vee, color="#495057", fontname="sans-serif", fontsize=10]; X [label="X"]; Y [label="Y"]; Z [label="Z"]; X -> Z [label=" α"]; X -> Y [label=" β"]; Z -> Y [label=" γ"]; subgraph cluster_U { label="外生变量 (U)"; style=dashed; color="#adb5bd"; node [shape=point, style=solid, color="#868e96"]; UX [label=""]; UY [label=""]; UZ [label=""]; } UX -> X [style=dashed, arrowhead=none, color="#868e96"]; UY -> Y [style=dashed, arrowhead=none, color="#868e96"]; UZ -> Z [style=dashed, arrowhead=none, color="#868e96"]; }该图显示了内生变量之间的直接因果影响(实线箭头),并表明了外生影响(虚线,当U被假定为独立时通常省略)。一个SCM $M$ 在内生变量上定义了一个唯一的观测概率分布 $P(V)$。此分布是通过结构方程 $F$ 传播 $P(U)$ 中的不确定性而产生的。SCM中的干预:do算子SCM的能力在于它们能够正式地建模干预。干预,由 $do$ 算子表示,代表一种外部行动,它强制变量 $X \in V$ 接受特定值 $x$,从而覆盖其自然的因果机制。形式上,对SCM $M = \langle U, V, F, P(U) \rangle$ 执行干预 $do(X=x)$ 会创建一个修改后的SCM,表示为 $M_x = \langle U, V, F_x, P(U) \rangle$。唯一的区别在于函数集 $F_x$:变量 $X$ 的原始方程 $X = f_X(PA_X, U_X)$ 被替换为常数赋值 $X=x$。$F$ 中的所有其他结构方程保持不变,这反映了模块化假定。干预分布 $P(Y | do(X=x))$(或更一般地,干预后分布 $P_{M_x}(V)$)是由此修改后的模型 $M_x$ 产生的变量分布。理解 $P(Y | do(X=x))$ 通常在数值上不同于观测条件分布 $P(Y | X=x)$ 是很重要的。$P(Y | X=x)$ 描述了在 $X$ 恰好为 $x$ 的子群体中 $Y$ 的分布,它是从原始SCM $M$ 计算得出的。这反映了被动观察。$P(Y | do(X=x))$ 描述了当我们强制 $X$ 为 $x$ 时 $Y$ 的分布,它是从修改后的SCM $M_x$ 计算得出的。这反映了主动干预。在我们的示例图中,$P(Y | X=x)$ 受路径 $X \rightarrow Z \rightarrow Y$ 和直接路径 $X \rightarrow Y$ 的影响。如果 $X$ 和 $Y$ 共享一个由相关的 $U_X, U_Y$ 代表的未观察到的共同原因,那么 $P(Y | X=x)$ 也会反映这种非因果相关性。然而,$P(Y | do(X=x))$ 仅反映从被干预的 $X$ 沿路径 $X \rightarrow Y$ 和 $X \rightarrow Z \rightarrow Y$ 流出的因果影响。它是在 $X$ 的值被固定为 $x$ 的模型中计算的,切断了指向 $X$ 的任何传入箭头。SCM框架中对干预的这种精确定义是因果效应识别的依据。核心问题变为:我们能否仅使用观测分布 $P(V)$ 和关于因果结构(图)的假定,而无需完全了解函数 $f_i$ 或分布 $P(U)$,来计算 $P(Y | do(X=x))$?do-演算(接下来将详细介绍)为此问题提供了正式规则。掌握SCM形式化是应用这些强大工具的必要第一步。