相关性 ≠ 因果性,用图的方式打开因果关系

相关性 ≠ 因果性,用图的方式打开因果关系

选自GitHub

作者:David Salazar

编辑:陈萍、魔王

机器学习方法是预测的有力工具,但是很多领域的工作或研究重视对因果关系的讨论。相关性并不意味着因果关系,那么如何识别因果关系呢?

图片[1]-相关性 ≠ 因果性,用图的方式打开因果关系-一鸣资源网

David Salazar 发布了一系列博客介绍因果关系。在之前的文章中,他将因果关系定义为干预分布(interventional distribution),并介绍了两种识别因果关系的策略:后门准则和前门准则。然而,这些准则并不适用于所有因果关系。

那么一般而言,给定因果模型和不完整的度量集,如何确定因果关系可识别呢?

本文提供了一种答案:利用 c-component (confounded component) 概念开发的图标准(graphical criterion),并通过多个实例进行演示。

马尔可夫模型

当我们可以得到因果模型中所有变量的度量值时,则该因果模型为马尔可夫模型。在这种情况下,调整公式(adjustment formula)就是识别策略:如果 X, Pa(X) 的父代存在度量值,则任意因果关系 X→Y 都是可识别的。

图片[2]-相关性 ≠ 因果性,用图的方式打开因果关系-一鸣资源网 图片[3]-相关性 ≠ 因果性,用图的方式打开因果关系-一鸣资源网

因此,我们可以通过对 X 的值求和将 x 从 Q_1 中边缘化。

图片[4]-相关性 ≠ 因果性,用图的方式打开因果关系-一鸣资源网

最后,对 P(v|do(X)) 的估计如下:

图片[5]-相关性 ≠ 因果性,用图的方式打开因果关系-一鸣资源网

在本例中,为了确定因果关系是否可识别,我们需要寻找 X 及其子代之间的双向路径。如果没有,则因果关系可识别。

tidy_dagitty(non_identifiable_example, layout = “nicely”, seed = 2) %>% node_descendants(“x”) %>%mutate(linetype = if_else(direction == “->”, “solid”, “dashed”)) %>%ggplot(aes(x = x, y = y, xend = xend, yend = yend, color = descendant)) geom_dag_edges(aes(end_cap = ggraph::circle(10, “mm”), edge_linetype = linetype)) geom_dag_point() geom_dag_text(col = “white”)

图片[6]-相关性 ≠ 因果性,用图的方式打开因果关系-一鸣资源网

注意,在 X 和 W(X 的子代之一)之间存在一条经过 Z 的双向路径,根据上文介绍的图标准,其因果关系不可识别。

示例 3

third_example x ~ z2, x ~~ z2, x ~~ y, z2 ~~ y, z3 ~ z2, x ~~ z3, y ~ z1 z3)

图片[7]-相关性 ≠ 因果性,用图的方式打开因果关系-一鸣资源网

与前面的示例一样,本例中我们仍需在 X 及其子代之间寻找双向路径。

tidy_dagitty(third_example, layout = “nicely”, seed = 2) %>% node_descendants(“x”) %>% mutate(linetype = if_else(direction == “->”, “solid”, “dashed”)) %>% ggplot(aes(x = x, y = y, xend = xend, yend = yend, color = descendant)) geom_dag_edges(aes(end_cap = ggraph::circle(10, “mm”), edge_linetype = linetype)) geom_dag_point() geom_dag_text(col = “white”)

图片[8]-相关性 ≠ 因果性,用图的方式打开因果关系-一鸣资源网

注意,X 与其 Y 以外的唯一子代(z1)没有双向路径。因此,其因果关系可识别。

可识别性的必要条件是什么?

对于可识别性,本文提到的测试是充分条件但并非必要条件。那么,是否存在充要条件呢?答案是肯定的,Pearl 和 Shipster(2006)提到了一种算法。它扩展了本文中的想法,根据干预前的概率返回因果关系的估计值。它是完备的且等效于 Pearl 的 do-calculus。

在 R 语言中,使用 causaleffect 软件包能够实现该算法。将其用于第一个示例,得到:

图片[9]-相关性 ≠ 因果性,用图的方式打开因果关系-一鸣资源网

first_example_igraph z_2 – x, x – z_1, z_2 – z_1, z_1 – y, y – z_1, x – y, z_1 – y, z_2 – y, simplify = FALSE) %>%set.edge.attribute(“description”, index = c(1, 2, 5, 6), “U”)ce plot(TeX(ce), cex = 3)

总结

在半马尔可夫模型中,变量之间存在隐藏共同原因,这些原因可能会破坏识别策略。本文介绍了一种对可识别性的充分测试方法,它基于隐藏共同原因的本质(用双向边来表示)。如果 X 和它的子代(也是 Y 的祖代)之间存在双向路径,则因果关系不可识别。

本文还提供了一个充分必要条件,并展示了如何在 R 语言中使用它。该条件是完备的,当因果关系可识别时,它返回一个估计量,可用于基于观测数据估计因果关系。

© 版权声明
THE END