从观测数据判定因果结构的一个重要障碍是未观测到的共同原因(通常称为潜在变量或隐匿混杂因子)可能存在。像基本PC算法这样的标准算法在因果充分性的假设下运行,意思是所有被测变量的相关共同原因都已被测量。当此假设不成立时(这在实际系统中很常见),这些算法可能生成不正确的因果图,导致虚假联系或遗漏因果链。本节详述了即使无法保证因果充分性也能进行因果关系判定的方法。潜在变量的难题设想一个简单的真实因果结构,其中一个未观测变量 $U$ 混杂了被测变量 $X$ 和 $Y$ 之间的关系:$X \leftarrow U \rightarrow Y$。如果 $U$ 未被测量,假设因果充分性的算法可能仅基于观测到的统计依赖性($X \not\perp Y$)错误地推断 $X$ 和 $Y$ 之间存在直接边(例如,$X \rightarrow Y$或$Y \rightarrow X$)。类似地,如果 $X$ 和 $Y$ 都导致 $Z$,但也被 $U$ 混杂($X \leftarrow U \rightarrow Y$, $X \rightarrow Z$, $Y \rightarrow Z$),标准算法可能难以正确确定涉及 $Z$ 的边的方向,特别是如果以 $Z$ 为条件导致 $X$ 和 $Y$ 之间产生依赖性(碰撞效应)。在因果关系判定中处理潜在变量,涉及检测它们的潜在影响并表示由此产生的结构不确定性,而不一定是识别潜在变量本身。基于约束的潜在变量因果关系判定:FCI算法快速因果推断(FCI)算法是一种基本基于约束的方法,明确设计用于处理潜在变量。与PC不同,FCI不假设因果充分性。它旨在推断在所有与观测到的条件独立性兼容的可能的基础有向无环图(DAGs)中都成立的因果结构属性,包括那些含有潜在混杂因子的图。部分祖先图(PAGs)FCI不输出单个DAG或马尔可夫等价类DAG(如PC那样),而是输出一个部分祖先图(PAG)。PAG表示一类与数据一致的DAG,包括那些含有潜在变量的图。PAGs使用更丰富的边标记来表示潜在隐匿混杂因子引入的不确定性:$X \rightarrow Y$: 有向边表示在所有与数据兼容的可能的基础DAGs中,$X$是$Y$的因果祖先。$X \leftrightarrow Y$: 双向边表示在所有兼容的基础DAGs中,$X$和$Y$被某个潜在变量混杂。$X \text{ o}{-}\text{o } Y$: 带圆圈的无向边表示关系的不确定性。在不同的兼容DAGs中,它可能是$X \rightarrow Y$,$Y \rightarrow X$,或$X \leftrightarrow Y$(混杂)。$X \text{ o}\rightarrow Y$: 部分有向边表示$Y$不是$X$的祖先,但关系可能是$X \rightarrow Y$或$X \leftrightarrow Y$。digraph PAG_Example { rankdir=LR; graph [bgcolor="#f8f9fa"]; node [shape=circle, style=filled, fillcolor="#ffffff", fontname="Helvetica", color="#495057"]; edge [fontname="Helvetica", color="#495057"]; X [label="X", fillcolor="#a5d8ff"]; Y [label="Y", fillcolor="#a5d8ff"]; Z [label="Z", fillcolor="#a5d8ff"]; W [label="W", fillcolor="#a5d8ff"]; L [label="L?", style=dashed, color="#adb5bd", fontcolor="#adb5bd"]; // 表示一个潜在的隐变量 X -> Y [label="确定祖先", color="#1c7ed6"]; Y -> Z [taillabel="o", dir=forward, arrowhead=normal, arrowtail=odot, label=" Y非祖先\n X->Y 或 X<->Y", color="#f76707"]; X -> Z [label="<->", arrowhead=normal, arrowtail=normal, dir=both, style=dashed, comment="混杂边示例", color="#fa5252"]; // 表示,如果确定,FCI直接输出<-> Z -> W [label="o-o", arrowhead=odot, arrowtail=odot, dir=none, comment="不确定边示例", color="#ae3ec9"]; // 重新绘制以明确匹配FCI输出样式 X -> Y [label=" X->Y", color="#1c7ed6", penwidth=1.5]; // 确定祖先 subgraph cluster_confounder { label=""; color=white; Y; Z; Y -> Z [dir=both, arrowhead=normal, arrowtail=normal, color="#fa5252", penwidth=1.5, constraint=false, label=" Y<->Z"]; // 混杂 } Z -> W [dir=forward, arrowhead=normal, arrowtail=odot, color="#f76707", penwidth=1.5, label=" Z o-> W"]; // Y不是Z的祖先,Z->W 或 Z<->W X -> W [dir=none, arrowhead=odot, arrowtail=odot, color="#ae3ec9", penwidth=1.5, label=" X o-o W"]; // 不确定相邻/混杂 // 视觉上添加潜在变量(非PAG输出的一部分) L -> Y [style=dashed, color="#adb5bd", arrowhead=none]; L -> Z [style=dashed, color="#adb5bd", arrowhead=normal]; }带有不同边类型的PAG示例。$X \rightarrow Y$表示确定的因果祖先关系。$Y \leftrightarrow Z$(视觉上用双箭头表示)表示确定的混杂关系。$Z \text{ o}\rightarrow W$表示$W$不是$Z$的祖先,但$Z$可能导致$W$或者它们可能存在混杂。$X \text{ o}{-}\text{o } W$表示关于$X$是否导致$W$,$W$是否导致$X$,或者它们是否共享一个共同混杂因子的不确定性。虚线节点$L$表明与$Y \leftrightarrow Z$一致的潜在变量结构。FCI工作方式FCI通过迭代测试条件独立性,其操作与PC类似。然而,它确定邻接关系和方向的规则更为复杂,以应对潜在变量。它通常包括:邻接搜索: 查找无法被任何其他已观测变量子集分离的变量对。碰撞器检测: 基于特定独立性模式识别潜在碰撞器($X \rightarrow Z \leftarrow Y$),但需谨慎,因为潜在变量可以模仿这些模式(例如,$X \leftrightarrow Z \leftrightarrow Y$)。方向传播: 应用一套复杂的方向规则(源自Spirtes, Glymour和Scheines),即使存在潜在变量也稳健。这些规则使用已识别的邻接关系和潜在碰撞器尽可能地确定边的方向,从而产生PAG标记。像RFCI(真正快速因果推断)和**FCI+**这样的扩展旨在提高FCI的计算效率和(在某些情况下)准确性,特别是对于高维数据集。FCI/PAGs的局限性与解释尽管功能强大,FCI伴随着重要的考量:较弱的结论: 主要输出是PAG,表示一类可能的因果DAG。这本质上不如假设因果充分性的算法输出那么具体。提取明确的因果陈述需要仔细解释PAG的边。对CI测试的依赖: 像所有基于约束的方法一样,FCI的准确性在很大程度上取决于基础条件独立性(CI)测试的可靠性。CI测试中的错误(由于有限样本、非线性关系、非高斯噪声等)可能导致生成的PAG出现错误。通常需要对CI测试的显著性阈值($\alpha$)进行敏感性分析。计算成本: FCI通常比PC的计算成本更高,特别是方向确定阶段。它的复杂度可能随着变量数量和图的密度而增加,效率不高。RFCI提供了显著的速度提升,但有时信息量可能略有减少。基于分值的方法与潜在变量标准基于分值的算法,例如贪婪等价搜索(GES),通常假设因果充分性。它们根据评分标准(例如BIC, BDeu)搜索最符合数据的DAG马尔可夫等价类。当存在潜在混杂因子时,真实的因果结构可能无法仅通过观测变量的任何DAG表示,可能导致GES收敛到不正确的结构。尽管有研究扩展基于分值的方法来处理潜在变量(例如,通过显式建模潜在变量或使用对某些类型混杂有效的分值),但这些方法通常比FCI更复杂,且通用性较差。像线性非高斯无环模型(LiNGAM)这样的方法有时可以在特定假设(误差项的非高斯性)下区分直接因果关系与混杂,但它们不为任意潜在变量结构提供通用解决方案。其他方法和考量利用多样数据: 如其他章节所述,结合干预数据或利用异构数据集有时可以提供额外信息,以解决潜在变量引起的模糊性,从而可能加强从FCI等算法得出的结论。识别潜在变量位置: 前沿研究侧重于不仅是处理潜在变量,还要试图推断它们在特定变量之间的存在,甚至估计它们的数量。这通常涉及模型比较技术或寻找指示隐变量的特定独立性模式。代理变量: 在某些情况下,如果无法直接测量混杂因子,有时可以使用代理变量(与潜在混杂因子相关,但不在感兴趣的因果路径上的变量)。像近端因果推断(第4章介绍)这样的技术利用代理变量进行识别和估计,这与FCI等因果关系判定算法代表了一种不同的方法。实践实现要点causal-learn等Python库提供了FCI、RFCI及相关算法的实现。使用这些工具时:密切关注条件独立性测试的选择和配置(例如,高斯数据的Fisher Z检验,非线性关系的基于核的CI测试如KCIT)。尝试CI测试的显著性水平(alpha),因为生成的PAG可能对此参数敏感。准备好应对处理大型数据集时可能出现的长时间计算。侧重于正确解释PAG输出,承认边标记中编码的不确定性。总结有效处理潜在变量对于从观测数据进行可信的因果关系判定是根本性的。因果充分性假设通常不切实际。像FCI这样的基于约束的算法提供了一种有原则的方式来推断因果结构,同时承认隐匿混杂因子的可能存在,生成表示内在不确定性的部分祖先图(PAGs)。尽管标准基于分值的方法难以处理潜在变量,并且针对特定情况存在专门方法,FCI仍然是潜在混杂下一般因果关系判定的标准方法。解释生成的PAGs需要谨慎,认识到它们代表的是因果模型的等价类,而非单一的确定性结构。