驳斥因果图#
现在我们已经为我们的问题获得了因果图,一个自然的问题是:这个因果图正确吗?换句话说,该图与可用数据一致吗?
为了回答这个问题,我们利用一个事实:每个因果图都蕴含了一组关于其节点的条件独立性陈述。这些条件独立性被称为局部马尔可夫条件(Local Markov Conditions,简称 LMCs)。如果数据集不满足图中蕴含的任何一个 LMC,那么该图就是无效的。
为了理解局部马尔可夫条件,让我们考虑一个包含三个节点:X、Y 和 Z 的系统。这些节点可以排列成三种图结构
链式,Z→X→Y
分叉式,Z←X→Y
对撞式,Z→X←Y
前两种图蕴含了在给定 X 的条件下,Z 和 Y 应该是独立的。而第三种图蕴含了 Z 和 Y 是独立的,但在以 X 为条件时它们会变得不独立。要理解这些条件是如何推导出来的,你可以阅读关于 d-分离 的内容。
给定一个候选图和一个数据集,我们可以使用这些条件来驳斥给定的图。例如,如果用户为一个数据集提供了链式图,我们可以检查 Z ⫫ Y | X 是否成立。如果不成立,那么我们可以得出结论:用户提供的图对于该数据集来说不是一个有效的 DAG。然而,如果数据集满足这个约束,并不意味着用户提供的图是有效的。真实的图很可能是分叉式图,它也蕴含了相同的条件独立性。因此,这种检验可以驳斥一些不正确的图,但通常不能唯一确定数据集的正确图。回到我们的例子,如果用户发现他们的链式图无效,他们可以修改图并提出对撞式图。此时,驳斥检验中的条件独立性约束将无法使该图失效,然后就可以进行下游分析了。
对于更大的图,条件独立性检验的数量可能很多。DoWhy 可以自动列举并运行这些检验。另请参阅示例 Notebook 用户给定有向无环图的证伪。接下来,我们将展示如何检验单个独立性约束,然后检验完整图的有效性。