因果模型四:实现因果模型的python工具——pycasual

关于因果模型,我们在前三篇文章中简单介绍了因果模型的研究发展历程、一个因果模型的数学化求解过程和因果模型在医学和商业领域的两个应用实例。今天我们就来简单介绍一个实现因果模型的python工具:pycasual。
pycasual的开发者来自于因果研究中心(Center for Casual Discovery),是一个集合了目前因果研究领域中多种主流算法的因果模型工具包。工具不仅仅局限于python语言,同样支持R语言,java命令行模式以及可以直接拖拉拽的工具软件,更多详细的内容可以参考他们的官方网站:pitt.edu。今天这篇文章,我们就通过一个简单的官方数据案例,来展示一下pycasual如何应用。

首先通过pandas导入案例数据,数据中有5个变量,我们的目的就是要在这5个变量之间建立起一个因果关系网络。

导入pycasual工具并初始化。

定制化先验信息。在因果模型三这篇博客中,我们通过两个实际应用案例表明,想要最终获得一个基本符合逻辑的因果关系模型,先验信息的加入十分必要。这其实是让因果发现算法能够站在巨人的肩膀上,本质上是让算法在我们的经验逻辑框架之上,去完善因果关系的细节。pycasual这个工具包就支持先验的设定。如上图forbid这个变量就指定了TangibilityCondition不能够成为Impact的原因,也就是说最终出来的因果图不能够出现一条从TangibilityCondition指向Impact的边。require这个变量指定了Sympathy必须是TangibilityCondition的一个原因。第三行tempForbid这个变量限制了TangibilityCondition和Imaginability之间不能够互为因果,即这两个变量之间不能出现任何方向的边。下一行temporal这个变量指定了所有变量的时间顺序,类似于我们上一篇博客中提到的那个医学领域的例子,他们将所有的相关变量按照时间顺序分为了体质类、童年类、入职类、培训类等等。这里的例子中,我们把这5个变量分为了三个阶段,第一阶段变量:TangibilityCondition和Imaginability;第二阶段变量:Sympathy和AmountDonated;第三阶段变量:Impact。最后初始化先验信息prior,打印出prior可以看到我们设定的所有信息都已经满足。

然后,我们从search库中初始化tetrad变量,打印出所有目前他们已经封装好的算法如上图,可以看到我们在因果模型二这篇文章中详细介绍的线性非高斯无环模型(lingam)也在其中。

然后,选择一个算法,初始化这个因果模型,这里我们选择了fast-ges算法进行初始化。

最后,把样本数据喂到因果模型中,执行算法,得到结果,并把结果画出来就得到了上图中所示的因果模型图。可以看到,我们之前指定的从Sympathy到TangibilityCondition的有向边是存在的,我们限制的TangibilityCondition和Sympathy、Impact之间不存在边的联系,除了我们指定的从Sympathy到TangibilityCondition的边之外,其它变量都是按照我们设定的时间顺序进行因果定向的。
对于更多的数据和算法的实例,可以参照pycasual的github网站:bd2kccd,这里同样讲明了安装pycasual所需要的支持环境。对于各种算法和检验方法的的一个详细描述,我们可以参考这个网站:Tetrad。

因果模型四:实现因果模型的python工具——pycasual相关推荐

  1. 生成模型(四):扩散模型(Diffusion Models)

    本文大纲如下: 生成模型种类 到目前为止,我已经写了三种类型的生成模型,[[生成模型-GAN]].[[生成模型-VAE]]和[[生成模型-Flow based model]]. 它们在生成高质量样本方 ...

  2. 生成模型(四):扩散模型02【第一单元:扩散模型简介】

    第一单元:扩散模型简介 欢迎来到 Hugging Face 扩散模型课程第一单元!在本单元中,你将学习有关扩散模型如何工作的基础知识,以及如何使用

  3. 因果模型五:用因果的思想优化风控模型——因果正则化评分卡模型

    因果模型五:用因果的思想优化风控模型--因果正则化评分卡模型 一.模型中的因果和相关 二.不可知样本选择偏差 三.因果推断 四.因果与评分卡的融合 五.模型效果评估 5.1 人工合成数据效果测试 5. ...

  4. 因果模型一:因果模型入门综述

    因果模型一:因果模型入门综述 一. 为什么要研究因果模型? 二. 因果研究的发展历程 1. C.G. Hempel 1984--因果研究的分水岭 2. 统计相关性模型 3. 虚假原因 三.INUS条件 ...

  5. 【软件工程】几种常见的软件开发模型:(瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型)模型的概念特点优点缺点和不同。

    (瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型)各种模型的概念特点优点缺点和不同. (张海藩,吕云翔)著-软件工程 复习记录 文章目录 一.瀑布模型 二.快速原型模型 三.增量模型 四.螺旋模 ...

  6. 跟着开源项目学因果推断——FixedEffectModel 固定效应模型(十七)

    这个开源项目来源于快手,当然对于快手的开源项目是有前车之鉴的[生存分析--快手的基于深度学习框架的集成⽣存分析软件KwaiSurvival(一)].KwaiSurvival让我觉得是实验代码,今天要接 ...

  7. 用FE-固定效应模型能做因果推断吗?

    全文阅读:https://www.lianxh.cn/news/e1a6f3d1a9596.html 目录 1. 简介 2. 个体固定效应模型的因果识别假设 2.1 线性个体固定效应模 2.2 非参框 ...

  8. python进行机器学习(四)之模型验证与参数选择

    一.模型验证 进行模型验证的一个重要目的是要选出一个最合适的模型,对于监督学习而言,我们希望模型对于未知数据的泛化能力强,所以就需要模型验证这一过程来体现不同的模型对于未知数据的表现效果. 这里我们将 ...

  9. Python计算机视觉——第四章 照相机模型与增强现实

    文章目录 引言 4.1 针孔照相机模型 4.1.1 投影矩阵 4.1.2 三维点的投影 4.1.3 照相机矩阵的分解 4.1.4 计算照相机中心 4.2 照相机标定 4.2.1 相机参数标定实验 4. ...

最新文章

  1. SAP ABAP 因系统维护使ABAP语法不再被支持导致使用很久的程序报错问题之分析
  2. JavaScript基础学习--事件代理
  3. 数据库课程设计结论_结论
  4. 【bfs】Replication G(P7151)
  5. 模型的搜索和优化方法综述:
  6. Linux目录/bin、/sbin、/usr/bin、/usr/sbin的区别
  7. 从数学优化到视觉设计
  8. ubuntu中的tftp用法
  9. LeetCode刷题(17)
  10. 为什么你就是学不会 Numpy ? | 技术头条
  11. Java jta 原理_分布式事务JTA实现Atomikos与Spring集成实践
  12. Matlab的两种除法:左除(\)和右除(/)
  13. 德国计算机专业英语授课,德国留学——细数德国亚琛工大的英语授课硕士专业...
  14. 计算机网络怎么算默认网关,ip地址子网掩码计算器_默认网关怎么计算_ip 掩码 网关的关系...
  15. linux怎么复制文件和移动文件
  16. 从fastq生成vcf文件
  17. 十分nb且详细的Elasticsearch教程
  18. 《智慧彼岸之定心经》
  19. 计算机黑屏修改设置,电脑黑屏密码怎么设置
  20. 云产研见客户的行为分析

热门文章

  1. 苹果7设置不显示网络连接服务器,苹果ios7.1验证失败因为您不再连接到互联网解决方法...
  2. 计算机用户名如何保存,如何安全保存用户名/密码(本地)?
  3. 一路走来:态度决定一切
  4. 诺顿无法启动扫描处理办法
  5. 中国式危机公关9加1策略(第十四章 国外危机应对案例參考)
  6. 攻防世界WEB练习 | easyphp
  7. Linux软链接创建及删除
  8. python之父叫什么-听Python之父-Guido,讲述Python名字的由来
  9. 你永远不知道,你公司的钱都花在了哪里
  10. 格式输入函数scanf