【Python实战因果推断】68_图因果模型3

目录

Forks

Immorality or Collider


Forks

继续前进,让我们考虑一个叉状结构。在这个结构中,你有一个共同的原因:同一个变量导致了图中下方的两个其他变量。在叉状结构中,关联通过箭头逆向流动:

例如,假设你对统计学的了解使你对因果推断和机器学习有了更多的了解。然而,了解因果推断并不会帮助你学习机器学习,反之亦然,因此这些变量之间没有直接的联系

这个图告诉你,如果你不知道一个人的统计学水平,那么知道他们擅长因果推断会让他们也擅长机器学习的可能性更高,即使因果推断并不能直接帮助你学习机器学习。这是因为即使你不知道某人的统计学水平,你也可以从他们的因果推断知识中推断出来。如果他们擅长因果推断,他们可能也擅长统计学,这使得他们也擅长机器学习的可能性更大。叉尖端的变量即使不互相因果,也会一起变动,仅仅因为它们都是由同一件事情引起的。在因果推断文献中,当处理因素和结果之间有共同的原因时,我们将那个共同原因称为混淆变量。

叉状结构在因果推断中如此重要,值得再举一个例子。你知道技术招聘人员有时会要求你解决一些你可能永远不会在申请的工作中遇到的问题吗?比如要求你反转二叉树或在Python中计数重复元素?好吧,他们基本上是在利用关联通过以下图中的叉状结构流动这一事实

招聘者知道优秀的程序员往往是顶尖的工作者。但在面试你的时候,他们不知道你是否是一个优秀的程序员。所以他们会问你一个问题,只有你才是优秀程序员时才能回答。这个问题不必是关于你在申请的工作中会遇到的问题。它只是表明你是否是一个优秀的程序员。如果你能回答这个问题,你很可能是一个优秀的程序员,这意味着你也很可能会是一个好员工。

现在,假设招聘者已经知道你是一个优秀的程序员。也许他们从你以前的公司认识你,或者你有一个令人印象深刻的学位。在这种情况下,知道你是否能回答申请流程中的问题,对于你是否将成为一个好员工来说,没有提供更多信息。从技术角度讲,可以说回答问题和成为一个好员工是独立的,一旦你考虑到你是一个优秀的程序员。

更一般地说,如果你有一个叉状结构,两个由共同原因引起的变量是相互依赖的,但在你对共同原因进行条件化后,它们是独立的。或者可以表示为:T\not\perp YT\perp Y|X

Immorality or Collider

唯一剩下的结构是不道德结构(而事实上,这是一个专业术语)。不道德结构指的是两个节点共享一个子节点,但它们之间没有直接的关系。另一种说法是,两个变量共享一个共同的结果这个共同结果通常被称为碰撞点,因为两条箭头在此处相撞

在不道德结构中,两个父节点彼此独立。但如果对共同结果进行条件化,它们就变得相互依赖。例如,考虑有两种方式可以获得职位晋升。你可以擅长统计学,或者讨好你的老板。如果我不对你的职位晋升进行条件化,也就是说我不知道你是否会得到晋升,那么你的统计学水平和讨好老板的能力是独立的。换句话说,知道你擅长统计学并不能告诉我你有多擅长讨好老板。另一方面,如果你确实得到了职位晋升,突然间,知道你的统计学水平就能告诉我你讨好老板的程度如果你不擅长统计学,但得到了晋升,你可能很擅长讨好老板。否则,你得到晋升的可能性将非常小。相反,如果你擅长统计学,你更可能不擅长讨好,因为擅长统计学已经解释了你的晋升。这种现象有时被称为解释消除,因为一个原因已经解释了结果,使得另一个原因变得不太可能

作为一般规则,对碰撞点进行条件化会打开关联路径,使变量变得相互依赖。不对它进行条件化则会关闭这条路径。或者可以表示为:T\perp YT\not\perp Y|X

重要的是,如果你不是对碰撞点进行条件化,而是对碰撞点的结果(直接或间接的)进行条件化,你也可以打开同样的依赖路径。继续我们的例子,现在假设得到职位晋升会大幅增加你的薪水,这给我们带来了下一个图:

在这个图中,即使你不对碰撞点进行条件化,但对它的结果进行条件化,碰撞点的原因就变得相互依赖。例如,即使我不知道你的晋升,但我知道你有巨额的薪水,你对统计学的了解和讨好老板的能力就变得相互依赖拥有其中一个会使你拥有另一个的可能性降低。

贝叶斯因果推断是一种使用贝叶斯网络(Bayesian Network)进行因果关系推断的方法。贝叶斯网络是一种概率模型,用于表示变量之间的依赖关系和因果关系。在贝叶斯网络中,节点表示变量,边表示变量之间的依赖关系。通过观察节点的状态,可以推断其他节点的状态。 在Python中,可以使用PyMC3库来构建贝叶斯网络模型。《Python贝叶斯分析》这本书从实际应用和编写程序的角度解释了贝叶斯统计的关键概念,并介绍了如何使用PyMC3来构建概率模型。这本书不要求读者具备生物学方面的基础知识,但需要读者具备使用Python编写程序的经验\[1\]。 贝叶斯因果推断的一个挑战是数据的结构与贝叶斯网络的独立性不一致。贝叶斯网络的推断算法旨在从概率中推断因果关系,与任何实验无关。因此,贝叶斯网络的推断是基于概率观察数据进行的。此外,贝叶斯网络的推断是从特定前提中得出一般性结论,与理论假设的表述无关。这是因为贝叶斯网络的推断是演绎的,而不是从因果假设的表述中得出的\[3\]。 因此,Python中的贝叶斯因果推断可以通过构建贝叶斯网络模型,并使用PyMC3库进行推断。这种方法可以帮助我们从观察数据中推断因果关系,并进行因果推断分析。 #### 引用[.reference_title] - *1* [Python贝叶斯分析 PDF 完整原版](https://blog.csdn.net/weixin_39850143/article/details/110996376)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [数学推导+纯Python实现机器学习算法12:贝叶斯网络](https://blog.csdn.net/weixin_37737254/article/details/102920363)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [贝叶斯因果网络_因果关系和贝叶斯网络](https://blog.csdn.net/weixin_26752765/article/details/108132740)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水木流年追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值