使用Python检测贝叶斯网络的因果关系检测

虽然机器学习技术可以实现良好的性能,但提取与目标变量的因果关系并不直观。换句话说,就是:哪些变量对目标变量有直接的因果影响?

机器学习的一个分支是贝叶斯概率图模型(Bayesian probabilistic graphical models),也称为贝叶斯网络(Bayesian networks, BN),可用于确定这些因果因素。

在这里插入图片描述

在我们深入讨论因果模型的技术细节之前,让我们先复习一些术语:包括"相关性"(correlation)和"关联性"(association)。

注意,相关性或关联性并不等同于因果关系。换句话说,两个变量之间的观察到的关系并不一定意味着一个导致了另一个。

从技术上讲,相关性指的是两个变量之间的线性关系,而关联性则指的是两个(或更多)变量之间的任何关系。而因果关系则意味着一个变量(通常称为预测变量或自变量)导致另一个变量(通常称为结果变量或因变量)

接下来,我将通过示例简要描述相关性和关联性。

1.1. 相关性

皮尔逊相关系数(Pearson correlation coefficient)是最常用的相关系数。系数强度由r表示,取值区间-1到1。

在使用相关性时,有三种可能的结果:

  • 正相关:两个变量之间存在一种关系,即两个变量同时朝同一方向移动。
  • 负相关:两个变量之间存在一种关系,即一个变量增加与另一个变量减少相关联。
  • 无相关性:当两个变量之间没有关系时。

正相关的一个示例如图 1 所示,图中展示了巧克力消费与每个国家的诺贝尔奖获得者数量之间的关系。

图片

图1:巧克力消费与诺贝尔奖获得者之间的相互关系

巧克力消费可能意味着诺贝尔奖获得者增加。或者反过来,诺贝尔奖获得者的增加同样可能导致巧克力消费增加。尽管存在强烈的相关性,但更有可能的是未观察到的变量,如社会经济地位或教育系统质量,可能导致巧克力消费和诺贝尔奖获得者数量的增加。

换句话说,我们仍然不知道这种关系是否是因果关系。但这并不意味着相关性本身没有用处,它只是有着不同的目的。

相关性本身并不意味着因果关系,因为统计关系并不能唯一限制因果关系。

1.1.2. 关联性

当我们谈论关联性时,我们指的是一个变量的某些值倾向于与另一个变量的某些值共同出现。

从统计学的角度来看,有许多关联性测量方法,例如卡方检验(chi-square test)、费舍尔精确检验(Fisher exact test)、超几何检验(hypergeometric test)等。它们通常用于其中一个或两个变量为有序(ordinal)或名义(nominal)变量的情况。

注意:相关性是一个技术术语,而关联性不是,因此在统计学中对其含义并不总是一致的。这意味着在使用这些术语时,明确说明其含义总是一个好的做法。

为了举例说明,我将使用超几何检验来演示是否存在两个变量之间的关联性,使用泰坦尼克号数据集。

泰坦尼克号数据集在许多机器学习示例中都有使用,众所周知,性别(女性)是生存的一个很好的预测因子。让我演示一下如何计算幸存和女性之间的关联性。

首先,安装 bnlearn 库,并仅加载泰坦尼克号数据集。

问:女性幸存的概率是多少?

图片

零假设:幸存与性别之间没有关系。

超几何检验使用超几何分布来测量离散概率分布的统计显著性。在这个例子中, 是总体大小(891), 是总体中成功状态的数量(342), 是样本大小/抽样次数(314), 是样本中成功的数量(233)。

图片

方程 1:使用超几何检验测试幸存与女性之间的关联性

在 的显著性水平下,我们可以拒绝零假设,因此可以说幸存和女性之间存在统计显著的关联。

注意,关联性本身并不意味着因果关系。我们需要区分边际关联(marginal)和条件关联(conditional)。后者是因果推断的关键构建模块。

2. 因果关系

什么是因果关系(causality)?

因果关系意味着一个independent变量导致另一个dependent变量,并由 Reichenbach(1956)如下所述:

如果两个随机变量 和 在统计上相关( ),那么要么(a) 导致 ,(b) 导致 ,或者(c)存在一个第三个变量 同时导致 和 。此外,给定 的条件下, 和 变得独立,即 。

这个定义被纳入贝叶斯图模型中。

贝叶斯图模型又称贝叶斯网络、贝叶斯信念网络、Bayes Net、因果概率网络和影响图。都是同一技术,不同的叫法。

为了确定因果关系,我们可以使用贝叶斯网络(BN)。

让我们从图形开始,并可视化 Reichenbach 所描述的三个变量之间的统计依赖关系(参见图 2)。节点对应变量,有向边(箭头)表示依赖关系或条件分布。

图片

图 2:有向无环图(DAG)编码条件独立性。(a、b、c)是等价类。(a、b)级联,(c)共同父节点,(d)是具有 V 结构的特殊类别

可以创建四个图:(a、b)级联,(c)共同父节点和(d)V 结构,这些图构成了贝叶斯网络的基础。

但是我们如何确定什么是造成什么的原因?(how can we tell what causes what?)

确定因果关系的概念思想是通过将一个节点保持不变,然后观察其影响来确定因果关系的方向,即哪个节点影响哪个节点。

举个例子,让我们看一下图 2 中的有向无环图 DAG(a),它描述了 由 引起, 由 引起。如果我们现在将 保持不变,如果这个模型是正确的, 不应该发生变化。每个贝叶斯网络都可以用这四个图来描述,并且通过概率论(参见下面的部分),我们可以将这些部分组合起来。

需要注意的是,贝叶斯网络是有向无环图(Directed Acyclic Graph, DAG),而 DAG 是具有因果性的。这意味着图中的边是有向的,并且没有(反馈)循环(无环)。

2.1. 概率论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值