【Python实战因果推断】19_线性回归的不合理效果9

news2025/2/23 3:54:07

目录

De-Meaning and Fixed Effects

Omitted Variable Bias: Confounding Through the Lens of Regression


De-Meaning and Fixed Effects

您刚刚看到了如何在模型中加入虚拟变量来解释不同组间的不同干预分配。但是,FWL 定理真正的亮点在于虚拟变量。如果您有大量的组别,为每个组别添加一个虚拟变量不仅繁琐,而且计算成本高昂。您将创建很多很多大部分为零的列。您可以通过应用 FWL 和了解回归如何在涉及虚拟变量时进行正交化干预来轻松解决这个问题。

您已经知道,FWL 中的除杂步骤涉及从协变量(在本例中为假变量)预测干预:

 model_deb = smf.ols("credit_limit ~ C(credit_score1_buckets)",
 data=risk_data_rnd).fit()
 model_deb.summary().tables[1]

由于虚拟变量基本上是作为组平均值工作的,因此您可以看到,通过这个模型,您预测的正是:如果 credit_score1_buckets=0, 您预测的是 credit_score1_buckets=0 组的平均线;如果 credit_score1_buckets=1, 您预测的是 credit_score1_buckets=1 组的平均线(通过将截距与该组的系数相加得出 1173. 0769 + 2195.4337 = 3368.510638),以此类推。这些正是各组的平均值:

risk_data_rnd.groupby("credit_score1_buckets")["credit_limit"].mean()

也就是说,如果想对干预进行残差处理,可以用更简单有效的方法来实现。首先,计算每组的平均干预治疗量:

 risk_data_fe = risk_data_rnd.assign(
 credit_limit_avg = lambda d: (d
 .groupby("credit_score1_buckets")
 ["credit_limit"].transform("mean"))
 )

然后,为了得到残差,从治疗中减去该组平均值。由于这种方法减去的是干预平均值,因此有时也被称为去干预平均值。如果您想在回归公式中实现这一点,您必须将数学运算包裹在 I(...) 周围: 

 model = smf.ols("default ~ I(credit_limit-credit_limit_avg)",
 data=risk_data_fe).fit()
 model.summary().tables[1]

您在这里得到的参数估计值与您在模型中添加虚拟变量时得到的参数估计值完全相同。这是因为,从数学上讲,它们是等价的。这种想法被称为固定效应,因为你要控制的是一个组内任何固定的因素。它来源于时间结构(面板数据)的因果推断文献

同一文献中的另一个想法是在回归模型中加入各组的平均干预措施(来自 Mundlak's, 1978)。回归会对所包含的额外变量的干预进行残差处理,因此这里的效果大致相同:

 model = smf.ols("default ~ credit_limit + credit_limit_avg",
 data=risk_data_fe).fit()
 model.summary().tables[1]

Omitted Variable Bias: Confounding Through the Lens of Regression

共同原因--confounders--会使估计的治疗与结果之间的关系产生偏差。这就是为什么你需要将它们考虑在内,例如将它们纳入回归模型。然而,回归对混杂偏差有其自身的特殊看法。当然,到目前为止所说的一切仍然有效。但回归法可以让您更精确地考虑混杂偏差。例如,假设您想估计信用额度对违约的影响,而工资是唯一的混杂因素:

在这种情况下,你知道你应该估计包含混杂因素的模型:default_i=\beta_0+\beta_1\text{lines}_i+\beta_2>\text{wage}_i+e_i,

但如果你估计一个更短的模型,其中忽略了混杂因素:default_i=\beta_0+\beta_1\text{lines}_i+e_i,

由此得出的估计值变得有偏差:

 short_model = smf.ols("default ~ credit_limit", data=risk_data).fit()
 short_model.params["credit_limit"]

 -2.401961992596885e-05

正如你所看到的,看起来信贷额度越高,违约率就越低,这是无稽之谈。但你已经知道了。你不知道的是,你可以精确地判断出这种偏差的大小。通过回归,你可以说,遗漏变量导致的偏差等于包含该变量的模型中的影响加上遗漏变量对结果的影响乘以遗漏变量对包含变量的回归。别担心。我知道这很拗口,让我们一点一点来消化它。首先,这意味着 Y 对 T 的简单回归将是真正的因果参数 τ 加上一个偏差项

\frac{Co\nu(T,Y)}{Var(T)}=\tau+\beta_{omitted}^{\prime}\delta_{omitted}

这个偏差项就是被忽略的混杂因素对干预结果的系数 β 乘以被忽略变量对治疗的回归系数 δ。为了验证这一点,您可以用下面的代码来获得您之前得到的有偏差的参数估计,该代码重现了忽略变量偏差公式:

 long_model = smf.ols("default ~ credit_limit + wage",
 data=risk_data).fit()
 omitted_model = smf.ols("wage ~ credit_limit", data=risk_data).fit()
 (long_model.params["credit_limit"]
 + long_model.params["wage"]*omitted_model.params["credit_limit"])
 
 -2.4019619925968762e-05

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

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

相关文章

鸿蒙架构之AOP

零、主要内容 AOP 简介ArkTs AOP 实现原理 JS 原型链AOP实现原理 AOP的应用场景 统计类: 方法调用次数统计、方法时长统计防御式编程:参数校验代理模式实现 AOP的注意事项 一、AOP简介 对于Android、Java Web 开发者来说, AOP编程思想并不…

【前端】包管理器:npm、Yarn 和 pnpm 的全面比较

前端开发中的包管理器:npm、Yarn 和 pnpm 的全面比较 在现代前端开发中,包管理器是开发者必不可少的工具。它们不仅能帮我们管理项目的依赖,还能极大地提高开发效率。本文将详细介绍三种主流的前端包管理器:npm、Yarn 和 pnpm&am…

错位情缘悬疑升级

✨🔥【错位情缘,悬疑升级!关芝芝与黄牡丹的惊世婚约】🔥✨在这个迷雾重重的剧场,一场前所未有的错位大戏正悄然上演!👀 你没看错,昔日兄弟的前女友关芝芝,竟摇身一变成了…

axios使用sm2加密数据后请求参数多了双引号解决方法

axios使用sm2加密数据后请求参数多了双引号解决 背景问题描述解决过程 背景 因项目安全要求,需对传给后端的入参加密,将请求参数加密后再传给后端 前期将axios降低到1.6.7后解决了问题,但最近axios有漏洞,安全要求对版本升级&…

通过电压差判定无源晶振是否起振正确吗?

在电子工程中,无源晶振作为许多数字电路的基础组件,其是否成功起振对于系统的正常运行至关重要。然而,通过简单检测晶振两端的电压差来判断晶振是否工作,这一方法存在一定的误区,晶发电子将深入探讨这一话题&#xff0…

【AIGC】一、本地docker启动私有大模型

本地docker启动私有大模型 一、最终效果中英文对话生成代码 二、资源配置三、搭建步骤启动docker容器登录页面首次登录请注册登录后的效果 配置模型尝试使用选择模型选项下载模型选择适合的模型开始下载 试用效果返回首页选择模型中英文对话生成代码 四、附录资源监控 五、参考…

浮点类型使用陷阱

引言 当我们进行条件判断时,经常会遇到两个数是否相等的情况,但如果在程序中进行判断一个可以除尽的小数和数学上除出来所得的数是否相等时,就会神奇的发型居然不相等??! 遇到问题 看如下代码 double num5 2.7;//2.7double num6 8.1 / 3;//接近2.7System.out.println(n…

NAS免费用,鲁大师 AiNAS正式发布,「专业版」年卡仅需264元

7月10日,鲁大师召开新品发布会,正式发布旗下以“提供本地Ai部署和使用能力以及在线NAS功能”并行的复合软件产品:鲁大师 AiNAS。 全新的鲁大师 AiNAS将持续满足现如今大众对于数字化生活的全新需求,将“云存储”的便捷与NAS的大容…

学圣学最终的目的是:达到思无邪的状态( 纯粹、思想纯正、积极向上 )

学圣学最终的目的是:达到思无邪的状态( 纯粹、思想纯正、积极向上 ) 中华民族,一直以来,教学都是以追随圣学为目标,所以中华文化也叫圣学文化,是最高深的上等学问; 圣人那颗心根本…

如何配置yolov10环境?

本文介绍如何快速搭建起yolov10环境,用于后续项目推理、模型训练。教程适用win、linux系统 yolo10是基于yolo8(ultralytics)的改进,环境配置跟yolo8几乎一模一样。 目录 第1章节:创建虚拟环境 第2章节:…

tesla p100显卡显示资源不足,api调用失败

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

数据结构JAVA

1.数据结构之栈和队列 栈结构 先进后出 队列结构 先进先出 队列 2.数据结构之数组和链表 数组结构 查询快、增删慢 队列结构 查询慢、增删快 链表的每一个元素我们叫结点 每一个结点都是独立的对象

浅谈“不要卷模型,要卷应用”

目录 1.概述 2.AI技术应用场景探索 3.避免超级应用陷阱的策略 3.1.追求DAU的弊端 3.2.平衡用户活跃度与应用实用性的策略 4.个性化智能体开发 4.1. 用户需求分析与数据收集 4.2. 技术选择与开发 4.3. 个性化算法设计 4.4. 安全性与隐私保护 4.5. 多渠道集成与响应机…

《昇思25天学习打卡营第14天|计算机视觉-ShuffleNet图像分类》

FCN图像语义分割&ResNet50迁移学习&ResNet50图像分类 当前案例不支持在GPU设备上静态图模式运行,其他模式运行皆支持。 ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端…

GraphGNSSLib Series[2]:在CLion中不同Node间进行debug

CLion实现Node debug 步骤: 我了解到的node,大多是通过终端运行,但是使用clion不断debug断点进行调试一直使我很苦恼,所以此次记录一下如何通过clion实现node节点之间通过publisher以及subscriber进行节点话题间的发布与通信&…

App H5+ 实现下载、查看功能 前后端实现(SpringBoot)

<!doctype html><html><head><meta charset"utf-8"><title>维修指南</title><meta name"viewport" content"widthdevice-width, initial-scale1.0, minimum-scale0, maximum-scale0.85, user-scalableyes&quo…

TotalSegmentator---针对CT/MRI数据的自动分割

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ&#xff1a;870202403 公众号&#xff1a;VTK忠粉 前言 本文分享开源软件TotalSegmentator&#xff0c;该开源项目针对CT/MRI数据类型&#xff0c;对主要的解剖学结构进行自动分割&#xff0c;并且被集成到MITK中。希望对各…

GB28181设备如何添加

简介 此篇描述视频网关&#xff08;中间件&#xff09;接入大华、海康、ONVIF设备&#xff08;NVR、摄像头&#xff09;、GB28181设备步骤和流程。 阅读本文档之前建议先阅览视频网关&#xff08;中间件&#xff09;用户使用手册。 接入方式和说明 视频网关&#xff08;中间…

为什么Windows操作系统一定要每年重装一次

在日常使用中&#xff0c;我们的电脑保存了无数的数据&#xff0c;安装和卸载程序&#xff0c;在这个过程中变得越来越慢&#xff0c;越来越容易出现问题。除了升级电脑硬件之外&#xff0c;有一个简单的办法可以让我们的电脑焕然一新&#xff1a;每年重新安装一次操作系统。 …

NFS综合项目

现有主机 node01 和 node02&#xff0c;完成如下需求&#xff1a; 1、在 node01 主机上提供 DNS 和 WEB 服务 2、dns 服务提供本实验所有主机名解析 3、web服务提供 www.rhce.com 虚拟主机 4、该虚拟主机的documentroot目录在 /nfs/rhce 目录 5、该目录由 node02 主机提供的NFS…