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

目录

The Impact of Management Training

Adjusting with Regression


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

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

The Impact of Management Training

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

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

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

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

 import pandas as pd
 import numpy as np
 df = 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 smf
 smf.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.2677908576676856
 95% CI: [0.23357751 0.30200421]

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

东哥教你如何用Orange Ai pro为家里做一个垃圾分类检测机器

前言 最近入手了一块香橙派(Orange Ai Pro)的板子,他们的口号是:为AI而生,这让一个算法工程师按捺不住了, 之前主要是在RKNN和ESP32等设备上部署AI模型,看到官方介绍的强大AI算力,很…

how to use Xcode

Xcode IDE概览 Xcode 页面主要分为以下四个部分: 工具栏(ToolBar area):主要负责程序运行调试,编辑器功能区域的显示 / 隐藏;编辑区(Editor area):代码编写区域&#xf…

前端面试题(CSS篇二)

一、请解释一下 CSS3 的 Flex box(弹性盒布局模型),以及适用场景 相关知识点: Flex是FlexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为Flex布局。行内元素也可…

Unity之VS脚本自动添加头部注释Package包开发

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之VS脚本自动添加头部注释Package包开发 TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取&…

Swift 中的方法调用机制

Swift 方法调用详解:与 Objective-C 的对比、V-Table 机制、Witness Table 机制 在 iOS 开发中,Swift 和 Objective-C 是两种常用的编程语言。尽管它们都能用于开发应用程序,但在方法调用的底层机制上存在显著差异。本文将详细介绍 Swift 的…

CD4017 – 带解码输出的十进制计数器

CD4017 IC 是一个十进制计数器,它有 10 个输出,分别代表 0 到 9 的数字。计数器在(14号引脚)每个时钟脉冲上升时增加 1。计数器达到 9 后,它会在下一个时钟脉冲时从 0 重新开始。 引脚名称管脚 #类型描述VD…

【常用工具】Linux命令行Restful接口调试神器——curl脚本

最近的工作经常要涉及到在Linux服务器端和外部系统联调接口,由于Postman无法在命令行使用,这里浅记一个curl脚本模板: #!/bin/bash # 请求标题 TITLE # token信息 TOKEN # url信息 URL # 请求方式 METHODPOST # Restful请求报文 BODYecho -e…

暑假学习DevEco Studio第2天

学习目标: 掌握页面跳转 学习内容: 跳转页面 创建页面: 在“project”窗口。打开“entry>src>main>ets”,右击“pages”,选择“New>ArkTS File”,命名“Second”,点击回车键。 在页面的路由&#xff0…

Go语言--函数类型、匿名函数和闭包

在Go语言中,函数也是一种数据类型,我们可以通过 type 来定义它,它的类型就是所有拥有相同的参数,相同的返回值的一种类型。 语法 通过type给函数类型起名,然后通过名字进行函数的调用 好处:多态 通过统…

【营销策划模型大全】私域运营必备

营销策划模型大全:战略屋品牌屋、电商运营模型、营销战略、新媒体运营模型、品牌模型、私域运营模型…… 该文档是一份策划总监工作模型的汇总,包括战略屋/品牌屋模型、营销战略模型、品牌相关模型、电商运营模型、新媒体运营模型和私域运营模型等&…

​​服务拆分的原则

目录 一、单一职责原则 二、服务自治原则 三、单向依赖 一、单一职责原则 单⼀职责原则原本是面向对象设计中的⼀个基本原则, 它指的是⼀个类应该专注于单⼀功能. 不要存在多于⼀个导致类变更的原因 在微服务架构中, ⼀个微服务也应该只负责⼀个功能或业务领域, 每个服务应该…

C++ | Leetcode C++题解之第216题组合总和III

题目&#xff1a; 题解&#xff1a; class Solution { private:vector<vector<int>> res;void backtracking(int k, int n, vector<int> ans){if(k 0 || n < 0){if(k 0 && n 0){res.emplace_back(ans);}return;}int start (ans.size() 0 ?…

恒创科技:HTTP错误码403禁止意味着什么,怎么修复它?

HTTP错误码403禁止意味着客户端无权访问特定网页或服务器。403 错误表示客户端存在问题&#xff0c;无论用户使用的是哪种网络浏览器&#xff0c;都可能发生这种情况。幸运的是&#xff0c;阻止服务器允许访问特定页面的问题通常可以修复。以下是一些常见原因和相应的解决方案。…

【Android源码】Gerrit安装

前言 如果你打开 https://android.googlesource.com/platform/manifest&#xff0c;就会发现&#xff0c;google官方管理Android源码&#xff0c;使用的是Gerrit。Android系统源码是非常大的&#xff0c;用Git肯定是不适合。对于大型项目&#xff0c;得用Gerrit&#xff0c;今…

背包问题(一)

一.P3985 不开心的金明(01背包变式) 解析: 一开始没有看数据范围,直接当01背包直接写了,结果最后4个测试点RE,一看到数据范围就老实了,1e9的数据,数组直接炸,所以不能直接使用一维的01背包.看了一下题解,部分人是通过极差对数据进行分类,按照300进行分开,使用贪心和dp一起做. …

7_1_SVPWM概述

1、SPWM 正弦脉宽调制法&#xff08;SPWM&#xff09;是将每一正弦周期内的多个脉冲作自然或规则的宽度调制&#xff0c;使其依次调制出相当于正弦函数值的相位角和面积等效于正弦波的脉冲序列&#xff0c;形成等幅不等宽的正弦化电流输出。 通过调整占空比使等效电流近似为正弦…

DT浏览器很好用

DT浏览器是一款简单的浏览器&#xff0c;又是强大的浏览器&#xff0c;界面简洁大方&#xff0c;软件使用流畅。DT浏览器的网址收藏&#xff0c;人工智能写作&#xff0c;书法笔记等功能与众不同。DT浏览器的图文识别功能和笔记本搭配使用&#xff0c;可以对内容编辑修改和保存…

时序模型综述论文

时序模型综述论文&#xff1a; A Survey of Time Series Foundation Models: Generalizing Time Series Representation with Large Language Model

c++ String

1.string类 还记得我们数据结构学的串吗&#xff0c;现在在c中&#xff0c;我们有了c提供的标准库&#xff0c;它是一个写好的类&#xff0c;非常方便使用 1. string是表示字符串的字符串类 2. 该类的接口与常规容器的接口基本相同&#xff0c;再添加了一些专门用来操作strin…