python 因果推断_[Python]因果检验工具

本文介绍了如何使用causality.inference模块进行Pearl的IC*因果关系推断,展示了变量间的统计相关性和因果关系实例。非参数效应估计部分探讨了如何估计变量间的因果效应,包括调整变量影响。项目尚在发展中,涉及优化如快速互信息计算和用户图形输入等功能。
摘要由CSDN通过智能技术生成

安装过程

如果你已经安装了 pip,那么你只需运行以下代码即可。

因果推理

causality.inference 模块中将会包含多种推断变量之间因果关系的算法。但是到2016年1月23日为止,我只实现了 Pearl(2000) 提出的 IC* 算法。

此时,我们已将变量的关系图储存到 graph中,在这个图中每个变量表示一个节点,每条边则表示给定搜索路径中其他变量的情况下,相邻节点之间的统计相关性。如果两个变量之间存在统计相关性,那么箭头方向处的变量将被存在 arrow 中。如果两个变量之间同时满足真正的因果关系,此时 marked=True。如果我们打印出模型的拟合结果,我们可以很明显的看出变量之间存在的关系:

从上述结果中我们可以看出,x2与x4,x3与x4,x4与x5之间存在统计相关性,此外我们还可以看出 x4到x5 之间存在真正的因果关系。这个结果与 Pearl(2000) 文章中的图 2.3(d) 相吻合。

非参数效应估计

causality.nonparametric 模块是一个利用观测数据集对因果分布进行非参数化估计的工具。你可以提供一个变量的容许集用来控制,它用来度量给定原因时一个效应的因果反应分布,或给定原因时这个效应的期望值。

我最近已经添加了调整功能,你可以通过调整有向图中变量X的父节点来估计一组变量Y和一组变量X之间的因果效应。

此时,你可以利用以下代码来观察调整结果:

如果我们没有对变量 x1 进行调整,由于 x2,x1,x3 之间存在一个搜索路径,那么我们将会错误地认为 x2 是 x3 的因果原因。

其他注意事项

这个项目还处于早期阶段,程序的运行时间较长。未来的一段时间内,我将会不断对其进行优化,其中主要包括:实现快速互信息计算,O(NlogN)

加快整合控制变量的九三过程

增加用户提供的图形,并找出容许集

确定变量间因果效应的捷径方法

Pearl, Judea. Causality. Cambridge University Press, (2000)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值