【Python实战因果推断】21_倾向分1

目录

The Impact of Management Training

Adjusting with Regression


之前学习了如何使用线性回归调整混杂因素。此外,还向您介绍了通过正交化去偏差的概念,这是目前最有用的偏差调整技术之一。不过,您还需要学习另一种技术--倾向加权。这种技术涉及对治疗分配机制进行建模,并利用模型的预测对数据重新加权,而不是像正交化那样建立残差

本文内容更适合于有二元或离散干预的情况。不过,我还是会展示一种扩展方法,让你可以将倾向加权用于连续干预。

The Impact of Management Training

科技公司的一个普遍现象是,有才华的个人贡献者(IC)会向管理层发展。但是,由于管理层所需的技能往往与他们成为优秀个人贡献者的技能大相径庭,因此这种转变往往绝非易事。不仅对新任管理者,而且对他们所管理的人员来说,都要付出高昂的个人代价。

一家大型跨国公司希望减少这种过渡的痛苦,决定投资对新任经理进行经理培训。同时,为了衡量培训的效果,该公司尝试随机挑选经理人参加这一项目。我们的想法是,比较那些经理参加了培训的员工与那些经理没有参加培训的员工的敬业度得分。通过适当的随机化,这种简单的比较就能得出培训的平均干预效果。

遗憾的是,事情并没有那么简单。有些经理不想参加培训,就干脆不来了。还有一些人即使没有被指定接受培训,也设法接受了培训。结果,本来是一项随机研究,到头来却变成了观察研究

现在,作为一名必须阅读这些数据的分析师,你必须通过调整混杂因素,使治疗和未治疗的数据具有可比性。为此,你会得到有关公司经理的数据以及描述他们的一些协变量:

 import pandas as pdimport numpy as npdf = pd.read_csv("data/management_training.csv")df.head()

处理变量是intervention,您感兴趣的结果是 engagement_score,即该经理的员工的平均标准化敬业度得分。除了干预和结果之外,该数据中的协变量还有

department_id 该部门的唯一标识符、
tenure 经理在公司工作的年限(作为一名员工,不一定是作为一名经理)
n_of_reports 经理所拥有的报告的数量
gender  管理者性别分类变量
role 公司内部的工作类别
department_size  同一部门的员工人数
department_score  同一部门的平均参与度得分
last_engagement_score 该经理在上一轮敬业度调查中的平均敬业度得分
您希望通过控制部分或全部这些变量,在估计管理培训与员工敬业度之间的因果关系时,可以设法减少甚至消除偏差。

Adjusting with Regression

在进行倾向加权之前,我们先用回归法来调整混杂因素。一般来说,在学习新知识时,最好能有一些值得信赖的基准进行比较。这里的想法是检查倾向加权估计值是否至少与回归估计值一致。现在,让我们开始吧。

首先,如果只是比较治疗组和对照组,您会得到以下结果:

 import statsmodels.formula.api as smfsmf.ols("engagement_score ~ intervention",data=df).fit().summary().tables[1]

但话说回来,这个结果很可能是有偏差的,因为干预并非完全随机。为了减少这种偏差,您可以根据数据中的协变量进行调整,估计出以下模型:

engagement_i=\tau T_i+\theta X_i+e_i,

其中,X 为所有混杂因素,加上一列常数作为截距。此外,性别和角色都是分类变量,因此您必须在 OLS 公式中用 C() 将它们包起来:

 model = smf.ols("""engagement_score ~ intervention + tenure + last_engagement_score + department_score+ n_of_reports + C(gender) + C(role)""", data=df).fit()print("ATE:", model.params["intervention"])print("95% CI:", model.conf_int().loc["intervention", :].values.T)ATE: 0.267790857667685695% CI: [0.23357751 0.30200421]

请注意,这里的效果估计值比您之前得到的效果估计值要小得多。这在一定程度上表明存在正偏差,即员工参与度已经较高的经理更有可能参加了经理培训项目。好了,前言到此为止。让我们来看看倾向加权是怎么回事。

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

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

相关文章

p标签文本段落中因编辑器换行引起的空格问题完美解决方案

目录 1.修改前的代码:2.修改后的代码3.总结 在HTML文档中,如何要在(p标签)内写一段很长的文本段落,并且没有 换行。由于IDE或者编辑器界面大小有限或需要在vue中逻辑处理动态显示文本,一行写完太长&#x…

Eslint prettier airbnb规范 配置

1.安装vscode的Eslint和prettier 插件 eslint:代码质量检查工具 https://eslint.nodejs.cn/docs/latest/use/getting-started prettier:代码风格格式化工具 https://www.prettier.cn/docs/index.html /* eslint-config-airbnb-base airbnb 规范 esl…

高德地图轨迹回放并提示具体信息

先上效果图 到达某地点后显示提示语&#xff1a;比如&#xff1a;12&#xff1a;56分驶入康庄大道、左转驶入xx大道等 <!doctype html> <html> <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"…

【前端CSS3】CSS显示模式(黑马程序员)

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、CSS元素显示模式&#xff1a;☀️☀️☀️2.1 什么是元素显示模式2.2 块元素2.3 行内元素2.4 行块元素2.5 元素显示模式的转换 三、总结&#x1f680;&#x1f680;&#x1f680; 一、前言&#x1f680;&#x1f…

巴图自动化Modbus协议转Profinet协议网关模块连智能仪表与PLC通讯

一、现场要求:PLC作为控制器&#xff0c;仪表设备作为执行设备。执行设备可以实时响应PLC传送的指令&#xff0c;并将数据反馈给PLC&#xff0c;从而实现PLC对仪表设备的控制和监控&#xff0c;实现对生产过程的精确控制。 二、解决方案:通过巴图自动化Modbus协议转Profinet协议…

Robust Test-Time Adaptation in Dynamic Scenarios--论文阅读

论文笔记 资料 1.代码地址 https://github.com/BIT-DA/RoTTA 2.论文地址 https://arxiv.org/abs/2303.13899 3.数据集地址 coming soon 1论文摘要的翻译 测试时间自适应(TTA)旨在使预先7训练的模型适用于仅具有未标记测试数据流的测试分布。大多数以前的TTA方法已经在…

为什么要卸载手机上面的抖音?

删除抖音等社交媒体应用可能出于多种原因&#xff0c;这里列举一些常见的考虑因素&#xff1a; 1. **时间管理**&#xff1a; 抖音和其他社交媒体平台可能会占用大量时间&#xff0c;影响个人的日常生活和工作学习效率。 这个对于自己而言是一个客观存在的事情&#xff1a; 2.…

安卓请求服务器[根据服务器的内容来更新spinner]

根据服务器的内容来更新spinner 本文内容请结合如下两篇文章一起看: 腾讯云函数node.js返回自动带反斜杠 腾讯云函数部署环境[使用函数URL] 现在有这样一个需求,APP有一个下拉选择框作为版本选择,因为改个管脚就变成一个版本,客户需求也很零散,所以后期会大量增加版本,这时候每…

数据预处理:统计关联性分析/数据清洗/数据增强/特征工程实例

专栏介绍 1.专栏面向零基础或基础较差的机器学习入门的读者朋友,旨在利用实际代码案例和通俗化文字说明,使读者朋友快速上手机器学习及其相关知识体系。 2.专栏内容上包括数据采集、数据读写、数据预处理、分类\回归\聚类算法、可视化等技术。 3.需要强调的是,专栏仅介绍主…

gitLab使用流程

标题1.配置账户 git config --global user.name git config --global user.email mygitlabmali.cn 标题2.生成秘匙 ssh-keygen -t rsa -C “mygitlabmail.cn” 。 //输入命令后一直回车 &#xff0c;输入命令后一直回车&#xff08;密码可以不填&#xff09;&#xff0c;至…

Anaconda+Pycharm两个软件从头到尾下载流程

前言&#xff1a; 1、使用教程前&#xff0c;请将电脑上的所有的Python卸载掉。再下载Anaconda&#xff0c;Anaconda这个软件里面就含有python。 彻底删除python方法&#xff1a; 1、计算机——属性——高级系统设置——环境变量 2、查看电脑用户自己设计的环境变量&#x…

Xilinx FPGA:vivado关于RAM的一些零碎的小知识

一、xilinx fpga嵌入式存储单元 RAM----随机存取存储器&#xff1a;上电工作时可以随时从任何一个指定的地址写入&#xff08;存入&#xff09;或读出&#xff08;取出&#xff09;信息。缺点是一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时性存储程序、数…

下载安装MySQL

1.软件的下载 打开官网下载mysql-installer-community-8.0.37.0.msi 2.软件的安装 mysql下载完成后&#xff0c;找到下载文件&#xff0c;双击安装 3.配置环境变量 4.自带客户端登录与退出

护网蓝队面试

一、sql注入分类 **原理&#xff1a;**没有对用户输入项进行验证和处理直接拼接到查询语句中 查询语句中插⼊恶意SQL代码传递后台sql服务器分析执行 **从注入参数类型分&#xff1a;**数字型注入、字符型注入 **从注入效果分&#xff1a;**报错注入、布尔注入、延时注入、联…

测试引擎模拟接口实战

在上一章的内容中&#xff0c;我简单介绍了整个微服务的各个子模块&#xff0c;还封装了一些工具类。 当然&#xff0c;若还没完成上次内容的也可以点击右侧的传送门------传送门 EngineApplication 在开发测试引擎模拟接口之前&#xff0c;还需要给xxx-engine创建一个Sprin…

bpftrace几种使用实例

1. 排查内存泄漏 memory.c memory.bt 可以执行相关memory&#xff0c;用bpftrace追踪malloc和free的过程 修改memory.bt&#xff0c;加上malloc和free统计&#xff0c;重新执行 2. 验证tcp连接关闭是应用关闭还是内核关闭 nginx服务启动后&#xff0c;会处于监听状态&…

imx6ull/linux应用编程学习(9)串口应用编程

什么是串口&#xff1f; 串口全称叫做串行接口&#xff0c;串行接口指的是数据一个一个的按顺序传输&#xff0c;通信线路简单。使用两条线即可实现双向通信&#xff0c;一条用于发送&#xff0c;一条用于接收。串口通信距离远&#xff0c;但是速度相对会低&#xff0c;串口是一…

GPU相关的一些截图(备查,待整理)

GPU相关的一些截图 这里记录一些与GPU相关的截图,方便查阅

MySQL8 快速导入数据指令load Data 最全详解

MySQL8 快速导入数据指令load Data 最全详解 修改mysql配置文件修改my.ini文件进入mysql,进入库"ceshi"查询你导入的数据表导入数据查询导入的数据 项目基础windows版本MySQL8 修改mysql配置文件 找到mysql的安装目录下的my.ini文件 C:\ProgramData\MySQL\MySQL Serv…

【双出版加持!录用率高!见刊、检索更稳定!】第六届结构抗震与土木工程研究国际学术会议 (ICSSCER 2024,8月16-18)

随着社会的发展&#xff0c;城市规模的不断扩大&#xff0c;建筑形态也趋于多样化和复杂化&#xff0c;建筑结构形式逐渐由规则简单向高层、大跨甚至特殊复杂的方向发展。而房屋建筑是人们正常生活和生产活动的基本场所&#xff0c;房屋建筑结构的安全必须得到充分保障。但是&a…