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

2023-11-15

因果模型四:实现因果模型的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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • Java设计模式(25):责任链模式(职责链模式)

    25 责任链模式 25 1 问题引入 采购需求 采购员需要采购一批教学器材 对器材采购金额有分级审批权限 如果金额小于等于3000元 由教学主任审批 0 lt x lt 3000 如果金额小于等于10000元 由院长审批 3000 lt x
  • 服务器网站关联数据库,web服务器如何与数据库关联

    web服务器如何与数据库关联 内容精选 换一换 通过PostgreSQL客户端连接实例的方式有非SSL连接和SSL连接两种 其中SSL连接通过了加密功能 具有更高的安全性 登录弹性云服务器 创建并登录弹性云服务器 请参见 弹性云服务器快速入
  • 【Transformer】13、Augmented Shortcuts for Vision Transformers

    文章目录 一 背景 二 动机 三 方法 3 1 增强残差连接 3 2 使用循环映射进行高效实现 四 效果 论文链接 https arxiv org abs 2106 15941 代码链接 未开源 一 背景 Transformer 已经在计算
  • Cocos2d-x的SprideMonkey的JavaScript与C++的交互(一) - 函数操作

    最近也是换了份新工作 搞棋牌平台了 标新立异呵呵 哥哥使用node js来开发这套东东 公司什么底子也没有 在西安就这样吧 最近正在搞 扑克 由于是服务器很多逻辑都是js的所以 希望cocos2d x的客户端也可以js搞起 但是已经用c 写
  • perl regex是什么_如何在Perl单行代码中使用Regex匹配多行

    perl regex是什么 Perl one liners with perl s regular expression statement can be a very powerful text processing tools used
  • python读取、显示图片及灰度转换的方法

    目录 matplotlib PIL opencv 中文路径问题 灰度转换 python常用的图片操作库有matplotlib PIL以及opencv 我用jupyter notebook对这三种方法进行了尝试和比较 matplotlib m
  • 信创领航,合作共赢

    参与本次会议的成员有 广州天河信创产业联盟秘书长林坚武 广州天河科技园信息产业联合会秘书长王飞 北明软件事业部总经理周丽娟 盛祺信息副总经理闫建 天亿马营销中心总经理梁志杰 观必达总经理缪明宝 省信息工程资源部总监周燕莉 高科信息生态总监王
  • DHCP详解及实操

    目录 一 DHCP简介 二 DHCP工作原理 租约四部曲 续租 1 租约四部曲 编辑 2 续租 编辑 三 DHCP网络实验准备 3 1 准备实验环境 3 2 DHCP相关信息 四 DHCP实验部署 4 1 DHCP基本功能实验 4 2 保留
  • log4net配置(web中使用log4net,把web.config放在单独的文件中)

    成功例子一 vs2003建立的asp net项目 log4net文件放在web config文件中 1 添加log4net dll的引用 可以用源码自己生成 无所谓了 下载dll都行 2 web config中添加 注意放对位置 在
  • Redis学习:redis.conf详解

    Redis conf配置文件是关于Redis重要属性的 配置好redis conf 了解里面的属性很重要 下面是我从github上直接拷贝的代码 Redis configuration file example Note that in o
  • 设计模式-桥接模式

    文章目录 前言 桥接模式的核心概念 为什么要使用桥接模式 桥接模式的示例代码 使用场景 桥接模式优缺点 前言 当我们谈到设计模式时 桥接模式 Bridge Pattern 是一种结构型设计模式 用于将抽象部分与其实现部分分离开来 以便它们可
  • 数据驱动的数字化转型:从流程驱动到数据驱动

    数字化时代已经到来 1996年的时候 Being Digital 的作者Negroponte就提出数字化生活的概念 而20年以后的今天 我们已经进入了数字化的生活 移动互联网 物联网 手机 各种社交媒体 电子支付等各种数字化技术把我们的生活
  • top查询机器情况

    top命令 是Linux下常用的性能 分析工具 能够实时显示系统 中各个进程的资源占用状况 类似于Windows的任务管理 器 下面详细介绍它的使用方法 top 02 53 32 up 16 days 6 34 17 users load
  • 虚拟机Ubuntu与主机复制文字

    执行以下几条命令即可 sudo apt get install open vm tools sudo apt get install open vm tools desktop 重启
  • 【翻译】白人男性在改善性别多样性方面的作用是什么?

    我们都知道 或者说现在应该知道 多元化的团队和组织更成功 更有创造力 有更好的留任率 并能带来更健康的工作场所文化 强调这些观点的数据是很多的 然而 技术团队在这方面往往是落后的 艾米丽 张在她的书 Brotopia 中认为 在一个如此有力
  • vhdl语言入门_初学Chisel语言,看这篇就够了:最方便简洁的入门资料整理

    声明 本文是我一个很优秀的学生总结的 放出来供广大chisel语言爱好者参考 Chisel Constructing Hardware In a Scala Embedded Language 是UC Berkeley开发的一种开源硬件构造
  • Python代码实现图像语义分割

    Python代码实现图像语义分割的步骤详解 原文链接 https www jb51 net article 187249 htm 在网上看到了这篇 代码简洁 身为还没完全入门的小白 每跑通一个程序真的都好开心 1 环境部署 在进行项目设计前
  • Gitee教程(超详细、简单)

    目录 前提 Gitee上传代码到远程仓库 1 打开Git Bash Here 2 配置用户和邮箱 3 初始化仓库 4 添加项目文件至本地仓库 5 将待提交区域的修改提交到本地 Git 仓库 并添加提交注释 必不可少 6 将本地仓库与远程仓库
  • blob字段怎么查看是乱码_MySQL乱码的原因和设置UTF8数据格式

    MySQL使用时 有一件很痛苦的事情肯定是结果乱码 将编码格式都设置为UTF8可以解决这个问题 我们今天来说下为什么要这么设置 以及怎么设置 MySQL字符格式 字符集 在编程语言中 我们为了防止中文乱码 会使用unicode对中文字符做处
  • 因果模型四:实现因果模型的python工具——pycasual

    因果模型四 实现因果模型的python工具 pycasual 关于因果模型 我们在前三篇文章中简单介绍了因果模型的研究发展历程 一个因果模型的数学化求解过程和因果模型在医学和商业领域的两个应用实例 今天我们就来简单介绍一个实现因果模型的py