想象你是新上任的城市交通规划师。你拿到一份年久失修的路网图,上面画满了路口和道路,却唯独没有标注每条路到底是单行还是双行。你能依靠的只有每天川流不息的车辆:它们的走向、拥堵和绕行习惯,都在悄悄泄露道路的方向。可问题是,好几套完全不同的“单行方案”,可能产生一模一样的车流观察——你只能断定这些方案在你的观测下无法分辨,却无法确定哪一套才是真实路况。这正是 Markov 等价类要讲的故事:因果推断里,数据就像车流观测,因果图(DAG)就像路网图;多张因果图可能编码出完全相同的条件独立性,它们彼此等价。我们能做的是识别出这个“方向迷宫”的边界,然后在关键路口亲手“封路测试”——干预实验——来打破迷局。

岗位关联

掌握 Markov 等价类,你就掌握了因果推断的“元认知”:知道观测数据能确定什么、不能确定什么。这是从相关走向因果的必修课,也是可解释 AI 落地时不可或缺的判断力。

目录
  1. 可视化演示
  2. DAG基础概念
  3. 等价类定义
  4. Verma-Pearl判定定理
  5. CPDAG图表示
  6. PC算法学习
  7. 因果识别应用
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示DAG的Markov等价类:具有相同骨架和v-结构的DAG编码相同条件独立性,构成等价类,用CPDAG表示其中不可区分的边方向。

本节配有交互动效(进入视口后自动加载,约 3KB)。

Markov等价类 同骨架+同v结构=等价DAG CPDAG表示不可区分边方向 D1~D2 iff skel+v-struct 等价类内DAG编码相同条件独立性

DAG基础概念

规划师拿到旧图纸的第一件事,是检查路网有没有“绕圈”的毛病:如果 A 大街通向 B 大道,B 大道通向 C 花园,那么 C 花园就绝不能偷偷修一条回头路回到 A——否则车辆会陷入无限循环,整座城市的交通都会崩溃。因果图同样立下这条“无环”军规:没有任何一条有向路径能绕回起点,这正是“有向无环图”(DAG)名字里“无环”二字的含义。

在因果推断里,每个变量就是一个路口(结点),每条“原因→结果”的单行线就是一条有向边。变量与有向边合在一起,就构成一张因果图。DAG 最值钱的资产,是它编码的条件独立性:当我们已经掌握某些中间变量的取值后,其他变量之间的信息传递就会被切断。在车流隐喻里,这就像你一旦确认了枢纽 B 的拥堵状态,A 与 C 两个路口的车流就变得互不相干。

形式化地说,若给定 Z 时 X 与 Y 的联合分布可以分解为各自条件分布的乘积,就称 X 与 Y 在给定 Z 下条件独立:

判断图中任意两点是否条件独立,靠的是 d-分离准则:信息像车流一样沿有向边按方向流动,遇到“对撞结构”(两条边同时指向一点)时,若没有给定该点则路径被阻断,一旦给定反而被激活。理解了“信息在哪里被切断、在哪里被激活”,我们才能回答一个关键问题:为什么有些车流观察会完全无法区分两套单行方案?这就进入了等价类的核心。

X⊥ ⁣ ⁣ ⁣⊥Y∣Z  ⟺  P(X,Y∣Z)=P(X∣Z)×P(Y∣Z)\displaystyle X \perp\!\!\!\perp Y \mid Z \iff P(X, Y \mid Z) = P(X \mid Z) \times P(Y \mid Z)
这个公式说明:知道了 Z 之后,X 的取值不会给 Y 带来任何额外信息——就像锁定了中间枢纽的状态,两侧车流各走各的。
  1. 条件独立记号读作“在给定 Z 的条件下,X 与 Y 独立”,是整篇文章的通用语言。
    X⊥ ⁣ ⁣ ⁣⊥Y∣ZX \perp\!\!\!\perp Y \mid Z
  2. 联合分布可分解给定 Z 后,X、Y 一起出现的概率等于各自条件概率相乘,说明两者之间没有信息流动。
    P(X,Y∣Z)=P(X∣Z)×P(Y∣Z)P(X, Y \mid Z) = P(X \mid Z) \times P(Y \mid Z)

等价类定义

一天下来,规划师震惊地发现:两份完全不同的单行方案,却产生了分毫不差的车流记录。他恍然大悟——观测数据只能告诉我们“哪些方案长得一模一样”,不能告诉我们“哪个才是真相”。这些互相无法区分的方案被他叠成一摞,命名为“等价类”。

在因果推断里,两个结点集合相同的 DAG,如果编码的条件独立性完全一致,就称它们马尔可夫等价,同属一个 Markov 等价类。比如三条链式 DAG(A→B→C、A←B→C、A←B←C)都满足 A 与 C 在给定 B 时独立,因此在观测层面无法区分。判断等价不需要逐个核对所有独立性,Verma 与 Pearl 发现,只需盯住两样东西。

第一样是骨架:把有向边全部抹去方向后得到的无向图,回答“哪些路口相邻”。第二样是 V 型结构:形如 X→Y←Z 且 X、Z 之间没有边相连的结构,也叫未屏蔽对撞子。在车流隐喻里,V 型结构就像“漏斗式汇合”——两股来路都只能冲进同一个枢纽,而两个源头之间没有直连,这种结构是唯一能“铁证”单一方向的局部模式。形式化的等价定义如下:

就像规划师先掂量“底层连接”和“漏斗汇合”两样清单,就能判断两份方案是否车流等价——这份清单的正式名字,就叫 Verma-Pearl 定理。

G1∼G2  ⟺  ∀ X,Y,Z,  [X⊥ ⁣ ⁣ ⁣⊥Y∣Z]G1=[X⊥ ⁣ ⁣ ⁣⊥Y∣Z]G2\displaystyle G_1 \sim G_2 \iff \forall\, X, Y, Z,\; \bigl[ X \perp\!\!\!\perp Y \mid Z \bigr]_{G_1} = \bigl[ X \perp\!\!\!\perp Y \mid Z \bigr]_{G_2}
两个 DAG 等价,当且仅当它们编码的每一个条件独立性都完全一致。这就是“车流分毫不差”的数学版本。
  1. 等价记号G₁ 与 G₂ 属于同一等价类,记作 G₁ ∼ G₂。
    G1∼G2G_1 \sim G_2
  2. 全称量化对所有互不相交的变量集合 X、Y、Z 都成立,一个也不能少。
    ∀ X,Y,Z\forall\, X, Y, Z
  3. 独立性相同在 G₁ 中成立的条件独立性,在 G₂ 中同样成立;反之亦然。
    [X⊥ ⁣ ⁣ ⁣⊥Y∣Z]G1=[X⊥ ⁣ ⁣ ⁣⊥Y∣Z]G2\bigl[ X \perp\!\!\!\perp Y \mid Z \bigr]_{G_1} = \bigl[ X \perp\!\!\!\perp Y \mid Z \bigr]_{G_2}

Verma-Pearl判定定理

有了等价类的直觉,规划师还需要一把快刀:如何不用把两份方案的所有细节逐一比对,就能断定它们是否同属一摞?答案是把目光聚焦在两类“关键证据”上:底层连接是否一致,漏斗式汇合的位置是否一致。

定理的表述非常干净:两个 DAG 马尔可夫等价,当且仅当它们的骨架相同且 V 型结构集合相同。这是充要条件——既不多,也不少。特别要注意,V 型结构必须“未屏蔽”:如果父结点 X 与 Z 之间也有一条边直接相连,那么这个对撞子就被屏蔽了,箭头方向的信息也随之丢失,不能再作为判定证据。

G1∼G2  ⟺  Skel(G1)=Skel(G2) ∧ VStr(G1)=VStr(G2)\displaystyle G_1 \sim G_2 \iff \mathrm{Skel}(G_1) = \mathrm{Skel}(G_2) \ \wedge\ \mathrm{VStr}(G_1) = \mathrm{VStr}(G_2)

1. 骨架相等:去掉所有箭头方向后,两图的“哪些路口相邻”完全一致。

Skel(G1)=Skel(G2)\mathrm{Skel}(G_1) = \mathrm{Skel}(G_2)

2. 逻辑与:两个条件必须同时成立,缺一不可。

∧\wedge

3. V 型结构集合相等:未屏蔽对撞子的位置在两图中一一对应。

VStr(G1)=VStr(G2)\mathrm{VStr}(G_1) = \mathrm{VStr}(G_2)

为什么这两样就够?因为 d-分离的格局完全由骨架和 V 型结构决定:其余方向无论怎么翻转,条件独立性清单都不会变。规划师从此只需检查两份地图的连接关系与漏斗位置,就能断言车流等价——哪怕箭头画得完全不同。

CPDAG图表示

一个等价类可能包含很多张 DAG,总不能把所有候选方案都摊在桌上吧?规划师想出一个聪明的办法:把确定的方向画成实线箭头,把拿不准的方向画成双头线——一张“半定向地图”就浓缩了整个等价类。

这张图就是完全部分有向图,简称 CPDAG。构造规则很直观:对于等价类中的每一条边,如果所有成员 DAG 都一致地取 X→Y,那么它是强制边,方向已被数据钉死;如果某些成员取 X→Y、另一些取 X←Y,那么它是不确定边,用一条无方向的边 X—Y 表示。这样,等价类的信息被无损压缩进一张图。

[G0]={G∣G∼G0},X→Y 为强制边  ⟺  X→Y∈G, ∀ G∈[G0]\displaystyle [G_0] = \left\{ G \mid G \sim G_0 \right\}, \qquad X \to Y\ \text{为强制边} \iff X \to Y \in G,\ \forall\, G \in [G_0]

1. 等价类集合:[G₀] 把“所有走起来一样的单行方案”收进同一个集合。

[G0]={G∣G∼G0}[G_0] = \left\{ G \mid G \sim G_0 \right\}

2. 全称量词:对集合中每一个成员 G 都成立,才配叫“强制”。

∀ G∈[G0]\forall\, G \in [G_0]

3. 强制边判定:方向在所有成员中一致,说明观测数据已经把方向钉死。

X→Y∈GX \to Y \in G

CPDAG 是等价类的“身份证”:一张图,一族方案,清清楚楚标出哪些方向已被数据确认、哪些仍悬而未决。对工程实践来说,这张诚实的“半定向地图”远比一张武断的全定向图更有价值。

PC算法学习

光有理论还不够,规划师决定亲自上街勘测:第一步,摸清哪些路口真的相连;第二步,寻找漏斗式汇合点;第三步,利用几条交通铁律把方向尽量传播到全城。这套三步勘测法,就是 PC 算法。

在忠实性假设下——即数据中的条件独立性完全由图结构编码,不多也不少——PC 算法从观测数据中恢复出整个等价类。它的思路不是从零画图,而是从“全连接”开始做减法:对每对变量做条件独立性检验,若发现某个条件集能让二者独立,就删除这条边,并记录下这个“分离集”。

∃ S⊆adj(X)∖{Y} 使 X⊥ ⁣ ⁣ ⁣⊥Y∣S  ⇒  删除边 X—Y\displaystyle \exists\, S \subseteq \mathrm{adj}(X) \setminus \{ Y \} \ \text{使} \ X \perp\!\!\!\perp Y \mid S \;\Rightarrow\; \text{删除边 } X \text{—} Y

1. 邻接集合:adj(X) 是当前图中 X 的全部邻居结点。

adj(X)\mathrm{adj}(X)

2. 条件集存在性:在 X 的邻居中(不含 Y)能找到某个 S 使二者独立。

∃ S⊆adj(X)∖{Y}\exists\, S \subseteq \mathrm{adj}(X) \setminus \{ Y \}

3. 删边决策:条件独立成立,意味着 X—Y 之间没有直接因果连接。

X⊥ ⁣ ⁣ ⁣⊥Y∣S⇒移除边X \perp\!\!\!\perp Y \mid S \Rightarrow \text{移除边}

拿到骨架后,算法在骨架上寻找 V 型结构并定向:若出现 X—Y—Z 而 X、Z 不相邻,则定向为 X→Y←Z。最后用 Meek 规则传播方向——例如已知 X→Y 且 Y—Z 而 X、Z 不相邻,则强制 Y→Z。最终输出的正是上一节那张 CPDAG。勘测手册的最终产物并不是一张全定向的“真相图”,而是一张标明“已知/未知”的诚实地图;剩下的方向,要靠干预实验来补测。

因果识别应用

车流能告诉我们“哪些方案无法区分”,可当市政厅问:“如果封掉 X 路口的某个方向,Z 区域的流量会变成什么样?”等价类内的不同方案会给出大相径庭的预测。这时,观测数据的权力到此为止,真正的主角是干预实验——亲手封路。

这是因果识别的核心困境:等价类成员在观测分布上不可区分,但 do 算子(干预算子)下的分布未必相同。最经典的例子是链 X→Y→Z 与叉 X←Y→Z:两者骨架相同、都没有 V 型结构,因此同属一个等价类;但因果含义天差地别——链中 X 通过 Y 中介影响 Z,叉中 X 与 Z 根本没有因果通路。

链: P(z∣do(x))=∑yP(z∣y) P(y∣x);叉: P(z∣do(x))=P(z)\displaystyle \text{链: } P(z \mid do(x)) = \sum_{y} P(z \mid y)\, P(y \mid x); \qquad \text{叉: } P(z \mid do(x)) = P(z)

1. do 算子:do(x) 对应规划师“封路施工”后的世界,与“看到车流 X=x”完全不同。

P(z∣do(x))P(z \mid do(x))

2. 链式路径求和:X 经 Y 中介影响 Z,要按中间变量 Y 的所有可能取值加权求和。

∑yP(z∣y) P(y∣x)\sum_{y} P(z \mid y)\, P(y \mid x)

3. 叉式无通路:X 与 Z 之间没有因果路径,干预 X 不改变 Z 的分布。

P(z∣do(x))=P(z)P(z \mid do(x)) = P(z)

工程实践的标准姿势因此清晰起来:用 PC 等算法输出 CPDAG,识别出等价类边界;对方向存疑的关键边,再用随机干预(A/B 测试、CRISPR 扰动、自然实验)补测方向。规划师终于明白——观测车流图只能框定“迷宫”的边界,真正的钥匙,是亲手封路测一次。

AI 应用场景

基因调控网络重建

阶段:因果结构学习

解决的问题:研究者只能观测基因表达量,却看不到“哪个基因调控哪个基因”。传统相关性分析只能给出共表达模块,完全无法判断调控方向。基于等价类的 PC 算法输出 CPDAG:骨架还原调控关系,V 型结构给出部分确定方向;方向存疑的边再交给 CRISPR 干预实验(敲低目标基因后测表达变化)定夺。这就像先用车流观察圈定“等价迷宫”,再封路测试关键路口。

具体案例:某团队用单细胞转录组数据跑 PC 算法,得到含数百条边的 CPDAG,其中约 30% 的边已由 V 型结构定向;其余方向未定边通过 20 个候选基因的扰动实验逐一确认,最终构建出细胞命运决定的调控子图。

推荐系统因果去偏

阶段:因果效应估计

解决的问题:日志数据里“曝光→点击”与“兴趣→曝光”往往同属一个等价类,直接回归会把“兴趣驱动曝光”的混杂效应算成曝光的效果,产生选择偏差。等价类视角提醒工程师:观测数据无法区分“曝光塑造兴趣”还是“兴趣驱动曝光”,必须用随机化 A/B 测试(干预)来确定方向,再估计真实的点击因果效应。

具体案例:某推荐团队发现离线指标虚高,用 CPDAG 分析后确认行为图中存在反向因果边,随即设计随机曝光实验修正偏差,线上 CTR 提升 8%。

可解释AI的反事实边界

阶段:反事实推理

解决的问题:解释模块常回答“如果当初没有打折,用户会不会购买”这类反事实问题,答案高度依赖因果方向。若方向在等价类内未定,同一问题可能给出矛盾解释。用 CPDAG 显式标注未定向边,AI 系统可以在解释中声明不确定性边界,避免误导性的因果断言。

具体案例:信贷风控解释模块中,对“收入→额度”这类等价类内方向未定的边,系统在解释附注“该结论依赖方向假设”,顺利通过监管审计。

Python 演示

python49 行
# -*- coding: utf-8 -*-# Markov等价类判定: 骨架 + V型结构 (Verma-Pearl定理)  def skeleton(edges):    """返回无向骨架, 用双向邻接集合表示: {(u,v),(v,u)}"""    s = set()    for u, v in edges:        s.add((u, v))        s.add((v, u))    return s  def parents(node, edges):    """返回指定结点的全部父结点集合"""    return {u for u, v in edges if v == node}  def v_structures(edges):    """返回V型结构(未屏蔽对撞子)集合, 每个元素为三元组 (u, v, w)"""    vs = set()    nodes = {n for e in edges for n in e}    skel = skeleton(edges)    for b in nodes:        pa = sorted(parents(b, edges))        for i in range(len(pa)):            for j in range(i + 1, len(pa)):                x, y = pa[i], pa[j]                if (x, y) not in skel:                    vs.add((x, b, y))    return vs  def markov_equivalent(g1, g2):    """判定两个DAG是否属于同一Markov等价类"""    return skeleton(g1) == skeleton(g2) and v_structures(g1) == v_structures(g2)  if __name__ == "__main__":    chain1 = [("A", "B"), ("B", "C")]      # A -> B -> C    chain2 = [("B", "A"), ("B", "C")]      # A <- B -> C (fork)    chain3 = [("B", "A"), ("C", "B")]      # A <- B <- C    collider = [("A", "B"), ("C", "B")]    # A -> B <- C (v-structure)     print("three chains pairwise equivalent:",          markov_equivalent(chain1, chain2),          markov_equivalent(chain1, chain3))    print("chain vs v-structure equivalent:", markov_equivalent(chain1, collider))    print("v-structure set:", v_structures(collider))
目的:用纯 Python 实现 Verma-Pearl 定理,直接判定任意两个 DAG 是否属于同一 Markov 等价类,并输出 V 型结构集合。
  1. s.add((u, v))把无向边双向登记进集合,之后判断“是否相邻”只需一次查表。
  2. return {u for u, v in edges if v == node}父结点就是“有向边终点”对应的起点。
  3. skel = skeleton(edges)提前算好骨架,供后续判断“两个父结点是否相邻”。
  4. for b in nodes:逐个检查每个结点是否充当“漏斗式汇合”的枢纽。
  5. if (x, y) not in skel:只有当两个父结点之间没有边时,才算未屏蔽对撞子,即 V 型结构。
  6. vs.add((x, b, y))记录三元组 (父1, 对撞点,父2),构成 V 型结构集合。
  7. return skeleton(g1) == skeleton(g2) and v_structures(g1) == v_structures(g2)Verma-Pearl 定理的一行落地。

常见误区

误区把 PC 算法输出的带箭头图当成真实因果图:“箭头都画出来了,方向肯定对,直接写进因果报告。”这在初学者中非常普遍。

正解PC 算法在忠实性假设下输出的是 CPDAG,代表整个等价类——只有强制边的方向可识别,不确定边只是“数据无法裁决”。把它当成真实因果图,会制造虚构的因果结论。就像观测车流无法分辨 A→B 与 B→A 两种单行方案,算法画了箭头也不等于事实。

为何常见:算法的输出形态是有向图,绘图库默认渲染箭头,人们很容易把“输出符号”误当成“事实断言”。

误区“两个图都是 A-B-C 的邻接关系,底层连接一模一样,当然等价。”

正解骨架相同只是必要条件,还必须比较 V 型结构。A→B←C 与 A→B→C 骨架完全相同,但前者存在未屏蔽对撞子、后者没有,因此属于不同的等价类。就像两座城的底层道路连接一样,一处有“漏斗式汇合”、一处没有,车流特征完全不同。

为何常见:直觉上“方向不重要”被骨架概念强化,而 V 型结构正是反直觉的关键点,容易被忽略。

误区“现在数据这么多,再多采一些样本、把检验做细一点,总能确定到底是链还是叉吧?”

正解这是信息论的硬边界:等价类成员在观测分布上完全一致,再多数据也无法从分布本身区分它们。要打破等价,必须引入干预数据或领域假设。无论你站岗观察多久车流,都无法仅凭车流区分两份“走起来完全相同”的单行方案。

为何常见:深度学习环境下“数据越多越强”的直觉深入人心,而因果结构学习恰恰存在原理性的不可识别。

误区“X→Y←Z 是 V 型结构;如果 X 和 Z 之间还有一条边,那它当然也是 V 型结构。”

正解V 型结构必须是“未屏蔽对撞子”:两个父结点之间不能有边。若 X—Z 之间有边,这个对撞子就被屏蔽了,箭头方向可能变得不可识别。严格定义永远是“未屏蔽”三个字。

为何常见:只记住了“对撞=汇聚到一点”,却漏掉了“父母不相邻”这一核心限定词。

误区“既然观测数据分不清方向,那就多加点特征做倾向评分,效果等同于干预实验。”

正解倾向评分等观测方法只能调整已观测到的混杂,无法改变等价类的信息边界。只有 do(x) 级别的干预(随机实验、A/B 测试、自然实验)才能真正打破对称。封路施工与坐在路边统计绕行方案,是两类完全不同的信息。

为何常见:因果推断课程常把重点放在“调整混杂”上,读者容易高估观测调整的效力、低估干预的不可替代性。

面试题

Q1. 以下哪项是判断两个 DAG 属于同一 Markov 等价类的核心标准?

单选题 · easy

  • A.拥有完全一致的结点集合
  • B.编码的条件独立性完全相同← 正确答案
  • C.拥有完全一致的有向边数
  • D.拥有数目相同的全部路径

答案:B。等价类以“编码的条件独立性集合”为准,而不是边数、结点数或路径数。就像两位规划师给出不同的单行方案,只要车流观察完全一致,就属于同一等价类。A、C、D 描述的只是表面相似,不能保证条件独立性一致。

Q2. Verma-Pearl 定理中,两个 DAG 等价的充要条件是?

单选题 · easy

  • A.结点集合与无环结构都相同
  • B.骨架相同且 V 型结构相同← 正确答案
  • C.条件独立数目与骨架都相同
  • D.有向边数目与结点数都相同

答案:B。定理说骨架相同且 V 型结构相同是充要条件,二者缺一不可。类比两份路网图要“车流等价”,既要底层连接一致,也要漏斗式汇合的位置一致。其余选项要么缺少 V 型结构,要么把必要条件当成了充分条件。

Q3. 仅凭观测数据,以下哪种局部结构的箭头方向必然可识别?

单选题 · easy

  • A.A→B→C 的链式结构
  • B.A←B→C 的叉式结构
  • C.A→B←C 的V型结构← 正确答案
  • D.A←B←C 的链式结构

答案:C。A→B←C 是未屏蔽对撞子(V 型结构),其“两路汇入、父结点不相邻”的模式是观测数据中唯一能铁证方向的局部结构。链式与叉式结构的方向可以整体翻转而不改变条件独立性,就像普通单行线无法从车流看出方向,只有漏斗式汇合能暴露真相。

Q4. 关于 CPDAG 中“不确定边”的准确含义是?

单选题 · mid

  • A.方向一致但尚未被数据验证的边
  • B.等价类成员中存在两种方向的边← 正确答案
  • C.数据不支持但理论上必须存在的边
  • D.因果强度较弱所以方向不明确的边

答案:B。不确定边表示在等价类内既有取 X→Y 的成员、也有取 X←Y 的成员,观测数据无法裁决,因此画成无方向边。其余选项混淆了“尚未验证”“数据不支持”“强度弱”等无关语义。类比车流观测无法判断某条路到底往哪边单行,只能标成双头线。

Q5. 关于 Markov 等价类,下列说法正确的有?

多选题 · mid

  • A.同一等价类的成员共享同一个骨架← 正确答案
  • B.同一等价类的成员共享相同V型结构← 正确答案
  • C.观测数据无法区分等价类内的成员← 正确答案
  • D.等价类成员的干预效应估计必然相同

答案:ABC。等价类成员共享骨架、共享 V 型结构,观测分布完全相同,故 A、B、C 正确。D 错误:干预效应未必相同,典型如链 X→Y→Z 与叉 X←Y→Z 同属一个等价类,但 P(z|do(x)) 的答案完全不同。

Q6. PC 算法学习骨架阶段的核心操作是?

单选题 · mid

  • A.对每对变量执行条件独立性检验← 正确答案
  • B.对每对变量计算完整的相关系数
  • C.对每个节点统计其入度与出度的值
  • D.对每条候选边执行随机的干预实验

答案:A。PC 算法从完全图出发,用条件独立性检验删边得到骨架;相关系数、度数统计都不是删边依据,干预实验则超出观测数据范畴。类比规划师先通过车流判断“哪些路口真相连”,再谈方向。

Q7. 关于干预实验在因果识别中的作用,正确的有?

多选题 · mid

  • A.干预可以打破等价类的不可区分性← 正确答案
  • B.干预后的数据分布用 do 算子刻画← 正确答案
  • C.干预实验能可靠区分 X→Y 与 X←Y← 正确答案
  • D.大型观测数据集完全可以替代干预

答案:ABC。干预(像封路施工)改变了数据生成机制,能区分方向;do 算子恰好刻画这种干预后的分布。A、B、C 正确。D 错误:再大的观测样本也突破不了等价类的信息边界,这正是观测与干预的本质区别。

Q8. 链式 X→Y→Z 与叉式 X←Y→Z 同属一个等价类,关于 P(z|do(x)) 说法正确的是?

单选题 · hard

  • A.两种结构下干预效应的估计必然相同
  • B.链式需沿中介路径求和而叉式不需要← 正确答案
  • C.叉式需沿中介路径求和而链式不需要
  • D.两种结构下干预效应都无法进行估计

答案:B。链式结构里 X 经 Y 中介影响 Z,干预效应必须沿 Y 加权求和;叉式结构里 X 与 Z 没有因果通路,干预 X 不改变 Z。这是等价类成员预测相悖的经典案例,也是因果识别的核心困境。

Q9. CPDAG 作为等价类的表示,其核心价值是?

单选题 · hard

  • A.用一张混合方向图唯一代表整个等价类← 正确答案
  • B.从观测数据中筛选出最可能的唯一因果图
  • C.对每条因果边都精确标注出唯一的箭头方向
  • D.用颜色深浅标示每条边的因果效应大小

答案:A。CPDAG 以“强制边+不确定边”的混合方向唯一表示整个等价类,避免过度承诺方向。其余选项要么仍想输出唯一因果图,要么混淆了边的因果效应强弱——CPDAG 表达的是方向信息,不是效应大小。

Q10. 关于强制边(compelled edge)的说法,正确的有?

多选题 · hard

  • A.等价类中所有 DAG 上的方向都一致← 正确答案
  • B.可由 V 型结构与 Meek 规则推导出来← 正确答案
  • C.强制边的方向在观测数据下可识别← 正确答案
  • D.强制边只会出现在骨架的叶子结点上

答案:ABC。强制边在等价类所有成员中方向一致,可由 V 型结构和 Meek 规则推出,且方向在观测数据下可识别,故 A、B、C 正确。D 错误:强制边可以出现在图的任何位置,与是否叶子无关。