【python因果推断库5】使用 CausalPy 进行贝叶斯geolift 分析2

目录

NHEFS 数据

评估平衡

估计平均处理效应

结论


再次,InversePropensityWeighting 类封装了检查倾向性得分分布以及在不同加权方案下评估平均处理效应的功能。

result1.plot_ATE(method="raw", prop_draws=10, ate_draws=500);

这里我们在三个图板中绘制了以下内容:

第一个图展示了按照处理组和对照组划分的倾向性得分分布的镜像抽样,分别用黄色和蓝色表示,灰色则表示通过加权创建的伪人群。
第二个图展示了在每种抽样下,经过重新加权后这些组的预期结果。
第三个图展示了得出的平均处理效应估计值。
请注意,在这种加权方案下,ATE(平均处理效应)的期望值略微偏离了真实值。这可能是由于具有极端倾向性得分的个体数量较多造成的——在第一个图中,这些个体的倾向性得分超过了0.9或低于0.1。

让我们来看看使用重叠加权(overlap weighting)方案会发生什么情况?

result1.plot_ATE(method="overlap", prop_draws=10, ate_draws=500);

这里我们看到特定的加权方案能够通过定义不同的伪人群对比来恢复真实的处理效应。这是一个有用的提醒,即虽然倾向性得分加权方法有助于观察数据中的推断,但并非所有的加权方案都是等效的,我们需要谨慎地评估何时应用哪种加权方案最为合适。从根本上说,选择的加权方案应该与试图估计的问题紧密相关。Aronow 和 Miller 的《Agnostic Statistics 基础》aronowFoundations 对原始加权、稳健加权以及双重稳健加权方案之间的差异有很好的解释。从某种意义上讲,这些加权方案提供了一系列逐步改进的估计量,每个都在尝试减少ATE估计的方差。双重稳健方法还试图对模型误设提供一定的保护。重叠加权估计器旨在计算具有重叠倾向性得分的人群中的ATE。这可以用于防止在倾向性得分分布存在大范围非重叠区域的情况下产生不良推断。

NHEFS 数据

现在我们将同样的技术应用于真实数据。

这个来自国家健康和营养检查调查的数据集记录了大约1500名个体在两个时间段内的体重、活动和吸烟习惯等细节。第一个时期建立了基线,而十年后的随访期则进行了跟踪调查。我们将分析个体(trt == 1)是否在随访访问之前戒烟。每个个体的结果代表了两个时期之间相对的体重增加或减少。

df = cp.load_data("nhefs")
df[["age", "race", "trt", "smokeintensity", "smokeyrs", "outcome"]].head()

formula = """trt ~ 1 + age + race + sex + smokeintensity + smokeyrs + wt71 + active_1 + active_2 + education_2 + education_3 + education_4 + education_5 + exercise_1 + exercise_2"""result = cp.pymc_experiments.InversePropensityWeighting(df,formula=formula,outcome_variable="outcome",weighting_scheme="robust",  ## Will be used by plots after estimation if no other scheme is specified.model=cp.pymc_models.PropensityScore(sample_kwargs={"draws": 1000,"target_accept": 0.95,"random_seed": seed,"progressbar": False,},),
)result

评估平衡

result.plot_balance_ecdf("age");

result.plot_balance_ecdf("smokeyrs");

 

result.plot_balance_ecdf("smokeintensity");

 

在所有情况下,重新加权似乎都有积极的效果,并有助于实现条件平衡。

估计平均处理效应

这里我们将使用两种不同的加权方案来突出展示稳健加权和双重稳健加权的功能。我们可以通过向绘图函数传递不同的关键字参数(kwargs)来使用这两种方法。我们仍然在重新加权上面使用逻辑回归模型得到的相同的倾向性得分分布。

result.plot_ATE(method="robust", prop_draws=10, ate_draws=500);

 

result.plot_ATE(method="doubly robust", prop_draws=10, ate_draws=500);

这里需要注意的是,虽然 (a) 控制组和处理组的倾向性得分分布看起来大致重叠,并且 (b) 两种加权方案在这里恢复了实质上相似的效果,但双重稳健估计量的方差要紧密得多。这种双重稳健估计量的设计特性在精确估计处理效应时非常重要。并不能保证稳健加权和双重稳健加权方案总是会给出相似的结果,因此这些方法之间的差异可能指向倾向性得分模型的问题。

注:
我们对 CausalPy 中逆倾向性得分加权的实现仅限于一个简单的倾向性得分的逻辑回归模型。然而,`InversePropensityWeighting` 实验类中的分析程序可以在任何 arviz 推断数据对象上运行,只要能够将倾向性得分后验分布识别为 `p`。这就开放了使用非参数倾向性得分设计的可能性,如在这里更深入讨论的那样。{cite:p}forde2024nonparam

结论

这结束了我们对逆倾向性加权实验的简短介绍。倾向性建模和倾向性加权是在因果推断中强有力的工具,它们的应用远不止于此处实现的用例。思考倾向性得分机制以及是什么驱动了不同的选择效应通常是因果建模的良好开端。如果能够很好地建模治疗选择的驱动因素,则倾向性得分调整通常是一种很好的方法来恢复感兴趣的因果量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/416661.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DDS基本原理--FPGA学习笔记

DDS信号发生器原理: timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2024/09/04 15:20:30 // Design Name: hilary // Module Name: DDS_Module //module DDS_Module(Clk,Reset_n,Fword,Pword,Data);input Clk;input Reset_n;input [31:0]…

ROS2 2D相机基于AprilTag实现3D空间定位最简流程

文章目录 前言驱动安装下载安装方式一:方式二: 相机检测配置config文件编译、运行程序注意 内参标定标定板运行程序 apriltag空间定位标签打印下载安装可视化结果 前言 AprilTag是一种高性能的视觉标记系统,广泛应用于机器人导航、增强现实和…

ComfyUI中IC-Light节点的Detail Transfer节点参数测试

🎆背景 ic-light是一个能重绘画面光影的节点,但是在重绘的过程中,难免会将图像本身的细节进行重绘,尤其是在电商的场景中,文字和商品的细节很多时候会被重绘的乱七八糟。 针对这种情况,Comfyui-IC-Light节…

Java Web全栈开发技术指南

本文还有配套的精品资源,点击获取 简介:Java Web开发涉及前端JavaScript、后端Java Servlet、JSP等技术。本指南涵盖了JavaScript、JSP、Servlet、MVC模式、Web容器、HTML/CSS/JS、AJAX、RESTful API、JSON、前后端分离、数据库连接和操作以及安全性等…

Mysql8.0安装以及递归表达式使用

mysql安装 以centos7为例安装! 安装wget yum install wget -y 给CentOS添加rpm源,并且选择较新的源 官网地址 wget dev.mysql.com/get/mysql84-community-release-el7-1.noarch.rpm 下载安装的rpm源文件 yum install mysql84-community-release-el7-1.no…

国有企业如何高效开展虚假贸易排查?

▶虚假贸易排查最新动向 2023年10月,有关文件提出“十不准”,严禁央企开展各类虚假贸易业务。 2024年5月,明确表示将依法加大对排斥限制潜在投标人、规避招标、串通投标、以行贿手段谋取中标等违法犯罪行为的惩处力度。 2024年7月&#xf…

深智城基于超融合数据库MatrixOne的一站式交通大数据平台改造

在智慧交通应用中,数据处理需求极为复杂,涉及人、车辆、道路和环境等多个方面,产生了大量异构数据。交通管理人员需要对这些数据进行实时分析和决策,以应对各种交通事件。然而,在实际生产中会发现数据处理缺陷、管理复…

负载均衡 Ribbon 与 Fegin 远程调用原理

文章目录 一、什么是负载均衡二、Ribbon 负载均衡2.1 Ribbon 使用2.2 Ribbon 实现原理 (★)2.3 Ribbon 负载均衡算法 三、Feign 远程调用3.1 Feign 简述3.2 Feign 的集成3.3 Feign 实现原理 (★) 一、什么是负载均衡 《服务治理:Nacos 注册中心》 末尾提到了负载均…

信息安全发展阶段与形式

关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客 0x01:信息安全的发展阶段 信息安全的发展阶段可以参照下面的思维导图: 0x02:我国的信息安全形式 2013 年,“棱镜门” 事件在全球持续发酵&#xf…

idea配置连接数据库的操作方法(适配不同版本)

文章目录 一、IDEA找不到database图标的解决方法二、链接数据库 一、IDEA找不到database图标的解决方法 首先很多小伙伴说我左右侧边栏都找了找不到数据库图标 解决办法: 第一种:选择 View --> Tool Windows --> Database 如果你的idea版本在这里…

ASP源码 发布站改制最终版 原来3000ok网通大站的源程序

ASP源码 新服发布站改制最终版 原来3000ok网通大站的源程序 这个是非常完整 兼容性很强的。 后台地址:http://你的域名/admin 账号:admin 密码:admin 会员发布地址:http://你的域名/gamevip 源码下载:https://downlo…

Splasthop 安全远程访问帮助企业对抗 Cobalt Strike 载荷网络攻击

一、背景 根据 FreeBuf(标题为:潜藏系统2个月未被发现,新型网络攻击瞄准中国高价值目标)和 The Hacker News(标题为:New Cyberattack Targets Chinese-Speaking Businesses with Cobalt Strike Payloads&a…

『功能项目』项目优化【21】

我们打开上一篇20主角身旁召唤/隐藏坐骑的项目, 本章要做的事情如以下几点: 1.优化资源包Resources下的层级分类 2.优化脚本包Scripts下的脚本分类 3.地形Terrain的优化(只让主角点击地面移动跳过其他石头山树等其他物体) 首…

Windows系统下的Spark环境配置

一:Spark的介绍 Apache Spark 是一个开源的分布式大数据处理引擎,它提供了一整套开发API,包括流计算和机器学习。Spark 支持批处理和流处理,其显著特点是能够在内存中进行迭代计算,从而加快数据处理速度。尽管 Spark …

Lua 代码编码规范

lua代码格式 vscode stylua 插件 配置文件stylua.toml column_width 240 line_endings “Unix” indent_type “Spaces” --使用空格 很重要,保证不同编辑器打开是一样的 indent_width 4 quote_style “AutoPreferDouble” --字符串引号样式双引号 call_paren…

0.3 学习Stm32经历过的磨难

文章目录 用库函数传参 能否按位或STM32库函数XXX_GetFlagStatus和XXX_GetITStatus的区别关于MDK导入文件后报错 Browse information of one files is not available 用库函数传参 能否按位或 答案是看清况,而不是一股脑的写!(血泪的经验啊&…

以太网通信之UDP

免责声明: 本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济…

DML、DQL、DCL的基础介绍

1.DML、DQL、DCL 1.1DML-介绍 DML英文全称Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作 添加数据(INSERT)修改数据(UPDATE)删除数据(DEL…

github中action作用和讲解

1,简介 GitHub Actions 是 GitHub 的一个自动化功能,它允许你在 GitHub 仓库中自动执行软件开发工作流程。你可以使用 GitHub Actions 来执行各种任务,比如: 自动测试:每当代码被推送到仓库时,自动运行测试…

SpringBoot2:RESTFUL风格接口开发及源码解读

一、RESTFUL简介 Rest风格支持(使用HTTP请求方式,动词来表示对资源的操作) 以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在: /user GET-获取用户 DELETE-删除用户 PUT-修改…