目录
Forks
继续前进,让我们考虑一个叉状结构。在这个结构中,你有一个共同的原因:同一个变量导致了图中下方的两个其他变量。在叉状结构中,关联通过箭头逆向流动:
例如,假设你对统计学的了解使你对因果推断和机器学习有了更多的了解。然而,了解因果推断并不会帮助你学习机器学习,反之亦然,因此这些变量之间没有直接的联系。
这个图告诉你,如果你不知道一个人的统计学水平,那么知道他们擅长因果推断会让他们也擅长机器学习的可能性更高,即使因果推断并不能直接帮助你学习机器学习。这是因为即使你不知道某人的统计学水平,你也可以从他们的因果推断知识中推断出来。如果他们擅长因果推断,他们可能也擅长统计学,这使得他们也擅长机器学习的可能性更大。叉尖端的变量即使不互相因果,也会一起变动,仅仅因为它们都是由同一件事情引起的。在因果推断文献中,当处理因素和结果之间有共同的原因时,我们将那个共同原因称为混淆变量。
叉状结构在因果推断中如此重要,值得再举一个例子。你知道技术招聘人员有时会要求你解决一些你可能永远不会在申请的工作中遇到的问题吗?比如要求你反转二叉树或在Python中计数重复元素?好吧,他们基本上是在利用关联通过以下图中的叉状结构流动这一事实:
招聘者知道优秀的程序员往往是顶尖的工作者。但在面试你的时候,他们不知道你是否是一个优秀的程序员。所以他们会问你一个问题,只有你才是优秀程序员时才能回答。这个问题不必是关于你在申请的工作中会遇到的问题。它只是表明你是否是一个优秀的程序员。如果你能回答这个问题,你很可能是一个优秀的程序员,这意味着你也很可能会是一个好员工。
现在,假设招聘者已经知道你是一个优秀的程序员。也许他们从你以前的公司认识你,或者你有一个令人印象深刻的学位。在这种情况下,知道你是否能回答申请流程中的问题,对于你是否将成为一个好员工来说,没有提供更多信息。从技术角度讲,可以说回答问题和成为一个好员工是独立的,一旦你考虑到你是一个优秀的程序员。
更一般地说,如果你有一个叉状结构,两个由共同原因引起的变量是相互依赖的,但在你对共同原因进行条件化后,它们是独立的。或者可以表示为:但
Immorality or Collider
唯一剩下的结构是不道德结构(而事实上,这是一个专业术语)。不道德结构指的是两个节点共享一个子节点,但它们之间没有直接的关系。另一种说法是,两个变量共享一个共同的结果。这个共同结果通常被称为碰撞点,因为两条箭头在此处相撞:
在不道德结构中,两个父节点彼此独立。但如果对共同结果进行条件化,它们就变得相互依赖。例如,考虑有两种方式可以获得职位晋升。你可以擅长统计学,或者讨好你的老板。如果我不对你的职位晋升进行条件化,也就是说我不知道你是否会得到晋升,那么你的统计学水平和讨好老板的能力是独立的。换句话说,知道你擅长统计学并不能告诉我你有多擅长讨好老板。另一方面,如果你确实得到了职位晋升,突然间,知道你的统计学水平就能告诉我你讨好老板的程度。如果你不擅长统计学,但得到了晋升,你可能很擅长讨好老板。否则,你得到晋升的可能性将非常小。相反,如果你擅长统计学,你更可能不擅长讨好,因为擅长统计学已经解释了你的晋升。这种现象有时被称为解释消除,因为一个原因已经解释了结果,使得另一个原因变得不太可能。
作为一般规则,对碰撞点进行条件化会打开关联路径,使变量变得相互依赖。不对它进行条件化则会关闭这条路径。或者可以表示为:和
重要的是,如果你不是对碰撞点进行条件化,而是对碰撞点的结果(直接或间接的)进行条件化,你也可以打开同样的依赖路径。继续我们的例子,现在假设得到职位晋升会大幅增加你的薪水,这给我们带来了下一个图:
在这个图中,即使你不对碰撞点进行条件化,但对它的结果进行条件化,碰撞点的原因就变得相互依赖。例如,即使我不知道你的晋升,但我知道你有巨额的薪水,你对统计学的了解和讨好老板的能力就变得相互依赖:拥有其中一个会使你拥有另一个的可能性降低。