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

目录

Debiasing Step

Denoising Step

 Standard Error of the Regression Estimator


Debiasing Step

回想一下,最初由于混杂偏差,您的数据看起来是这样的、 随着信贷额度的增加,违约率呈下降趋势:

根据 FWL 定理,您可以通过拟合一个回归模型来预测混杂因素对信用额度的干预情况,从而对这一数据进行去伪存真。然后,您可以求出该模型的残差:\widetilde{line}_i=line_i-\widehat{line}_i 。这个残差可以看作是与去伪存真模型中使用的变量不相关的干预结果。这是因为,根据定义,残差与产生预测结果的变量是正交的。

这一过程将使残差\widetilde{line}以零为中心。您还可以选择将平均干预值\overline{line}加回来: \widetilde{line}_i=line_i-\widehat{line}_i+\overline{line}

这对于去偏是不必要的,但它将\widetilde{line}放在与原始line相同的范围内,这更适合于可视化的目的:

 debiasing_model = smf.ols('credit_limit ~ wage + credit_score1 + credit_score2',data=risk_data).fit()risk_data_deb = risk_data.assign(# for visualization, avg(T) is added to the residualscredit_limit_res=(debiasing_model.resid+ risk_data["credit_limit"].mean()))

如果您现在运行一个简单的线性回归,将结果风险与去干预化或残差化的处理结果线性回归,您就已经得到了信用额度对风险的影响,同时控制了去干预化模型中使用的混杂因素。这里得到的 β1 参数估计值与之前运行完整模型得到的参数估计值完全相同,在完整模型中包含了干预和混杂因素:

 model_w_deb_data = smf.ols('default ~ credit_limit_res',data=risk_data_deb).fit()model_w_deb_data.summary().tables[1]

但还是有区别的。看看 p 值。它比你之前得到的要高一些。这是因为你没有应用去噪步骤,而去噪步骤的作用是减少方差。尽管如此,考虑到所有的混杂因素都包含在去噪模型中,仅通过去噪步骤,您就可以得到信用额度对风险的因果影响的无偏估计值。您还可以通过绘制除权后的信用额度与违约率的对比图来直观地了解情况。你会发现,这种关系不再像数据有偏差时那样向下倾斜:

Denoising Step

去偏步骤对于估算出正确的因果效应至关重要,而去噪步骤虽然没有那么重要,但也是不错的选择。它不会改变干预效果估计值,但会减小其方差。在这一步中,您将对干预结果与非治疗的协变量进行回归。然后,您将得到结果的残差

\widetilde{default}_i=default_i-\widehat{default}_i

同样,为了达到更好的可视化效果,您可以将平均默认设置率添加到去噪默认设置变量中:\widetilde{default}_i=default_i-\widehat{default}_i+\overline{default}

 denoising_model = smf.ols('default ~ wage + credit_score1 + credit_score2',data=risk_data_deb).fit()risk_data_denoise = risk_data_deb.assign(default_res=denoising_model.resid + risk_data_deb["default"].mean())

 Standard Error of the Regression Estimator

既然我们在讨论噪声,我想现在是了解如何计算回归标准误差的好时机。回归参数估计的 SE 由以下公式给出:

SE\big(\hat{\beta}\big)=\frac{\sigma(\hat{\epsilon})}{\sigma(\tilde{T}\big)\sqrt{n-DF}},

其中,\hat{\epsilon} 是回归模型的残差,DF 是模型的自由度(模型估计的参数数)。

 model_se = smf.ols('default ~ wage + credit_score1 + credit_score2',data=risk_data).fit()print("SE regression:", model_se.bse["wage"])model_wage_aux = smf.ols('wage ~ credit_score1 + credit_score2',data=risk_data).fit()# subtract the degrees of freedom - 4 model parameters - from N.se_formula = (np.std(model_se.resid)/(np.std(model_wage_aux.resid)*np.sqrt(len(risk_data)-4)))print("SE formula: ", se_formula)

这个公式很好,因为它能让你进一步直观地了解一般回归,特别是去噪步骤。首先,分子告诉你,你能预测的结果越好,残差就越小,因此估计值的方差就越小。这正是去噪步骤的目的所在。它还告诉你,如果干预方法能很好地解释结果,其参数估计的标准误差也会更小。

有趣的是,误差还与(残差化)干预处理的方差成反比。这也很直观。如果干预措施的方差很大,就更容易衡量其影响。

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

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

相关文章

c文件读写

格式输入输出 文件指针 FILE *pf 文件打开 fopen("文件名",打开方式)  文件名:普通字符串 打开方式:读、写、文本文件、二进制文件 rt、wt、at、rb、wb、ab、rt、wt、at、rb、wb、ab (r 为读,w 为写, 为读写&…

解锁机器学习潜力的钥匙:深度剖析交叉验证集的应用与魅力

一、为何需要交叉验证集 在构建机器学习模型时,我们通常会面临一个关键问题:如何确保模型在新数据上的表现与在训练数据上一样出色?这涉及到模型的泛化能力——即模型对未见过的数据做出准确预测的能力。传统的训练集/测试集划分方法虽然简单…

亿纬锂能社招入职通用职业能力测评大易题库及薪资待遇

一、亿纬锂能薪资待遇 1. **平均工资**:根据职朋职业圈的数据,惠州亿纬锂能股份有限公司的平均工资为10924元/月。网易新闻的报道则提到,亿纬锂能的月收入平均值为16598元。 2. **工资区间**:在亿纬锂能,工资收入有多…

使用dot来画流程图

Dot是一种图形描述语言,属于Graphviz软件的一部分。Graphviz是一个用于可视化图形(图表、网络图等)的开源工具集。使用Dot语言,你可以创建并描述节点和边,从而生成图形。以下是如何使用Dot语言画图的基本步骤&#xff…

【CSAPP】-attacklab实验

目录 实验目的与要求 实验原理与内容 实验设备与软件环境 实验过程与结果(可贴图) 实验总结 实验目的与要求 1. 强化机器级表示、汇编语言、调试器和逆向工程等方面基础知识,并结合栈帧工作原理实现简单的栈溢出攻击,掌握其基…

游游的水果大礼包(枚举)

题目链接:https://ac.nowcoder.com/acm/problem/255193 题解 题目解析 就拿第一个例子来看,当选择组成1个一号礼包和1个二号礼包时最大的价值是3元,而选择2个二号礼包时,最大的价值是4元,因此选择2个二号礼包。 算法…

2-23 基于matlab的小波变换碰磨故障信号的特征提取

基于matlab的小波变换碰磨故障信号的特征提取,可以画出信号原图,轴心轨迹,频谱图以及多层小波变换的重构信号。程序已调通,可直接运行。 2-23 小波变换 碰磨故障信号 轴心轨迹 - 小红书 (xiaohongshu.com)

html+css+js写的多人在线积分系统

可以添加成员&#xff0c;成员名称自定义 可以对各个成员加分减分➕➖ 可以删除成员 源码在图片下面&#xff0c;记得点赞加关注❤️❤️❤️ 界面 源代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8">…

2.2.5 C#中显示控件BDPictureBox 的实现----ROI交互续2

2.2.5 C#中显示控件BDPictureBox 的实现----ROI交互续2 1 ROI数组作用说明 变量&#xff1a;m_ROIs[5] ROI 使用效果图 ROI数组说明 2 ROI显示逻辑图 ROI 交互主要是在设定状态下&#xff0c; runmode下只要普通显示即可 3 主要ROI显示函数函数 判断当前鼠标是否获取…

怎么快速给他人分享图片?扫描二维码看图的简单做法

现在通过二维码来查看图片是一种很常见的方法&#xff0c;通过二维码来查看图片不仅能够减少对手机存储空间的占用&#xff0c;而且获取图片变得更加方便快捷&#xff0c;只需要扫码就能够查看图片&#xff0c;有利于图片的展现。很多的场景中都有图片二维码的应用&#xff0c;…

个人微信二次开发

​ 由于自身在机器人方面滚爬多年&#xff0c;现在收藏几个宝藏机器人 推荐一下自己常用的机器人&#xff1a; 适合有技术开发的公司&#xff0c;可以自主开发所需要的功能&#xff01;十分齐全 测试问文档&#xff1a;https://www.wkteam.cn/ 有需要的兄弟可以看一下&#…

音视频同步的关键:深入解析PTS和DTS

&#x1f60e; 作者介绍&#xff1a;我是程序员行者孙&#xff0c;一个热爱分享技术的制能工人。计算机本硕&#xff0c;人工制能研究生。公众号&#xff1a;AI Sun&#xff0c;视频号&#xff1a;AI-行者Sun &#x1f388; 本文专栏&#xff1a;本文收录于《音视频》系列专栏&…

STM32 ADC精度提升方法

STM32 ADC精度提升方法 Fang XS.1452512966qq.com如果有错误&#xff0c;希望被指出&#xff0c;学习技术的路难免会磕磕绊绊量的积累引起质的变化 硬件方法 优化布局布线&#xff0c;尽量减小其他干扰增加电源、Vref去耦电容使用低通滤波器&#xff0c;或加磁珠使用DCDC时尽…

vue+js实现鼠标右键页面时在鼠标位置出现弹窗

首先是弹窗元素 <div class"tanchuang move-win1"id"tanchuang1"><el-button>111</el-button></div>然后在需要弹窗的地方监听点击事件&#xff0c;可以将这个方法写在页面载入事件中 // 获取弹窗元素 var tanchuang document.…

lua中判断2个表是否相等

当我们获取 table 长度的时候无论是使用 # 还是 table.getn 其都会在索引中断的地方停止计数&#xff0c;而导致无法正确取得 table 的长度&#xff0c;而且还会出现奇怪的现象。例如&#xff1a;t里面有3个元素&#xff0c;但是因为最后一个下表是5和4&#xff0c;却表现出不一…

一篇文章搞懂时间复杂度和空间复杂度

不知道小伙伴们有没有刷过力扣上的算法题&#xff0c;我在上研究生的时候&#xff0c;刷过了前40道题&#xff0c;上面的算法题&#xff0c;我觉得还挺难的&#xff0c;当你写完代码的时候&#xff0c;就可以提交自己写的代码到系统上&#xff0c;系统会给你写的代码计算时间复…

页面速度是如何影响SEO的?

搜索引擎使用复杂的算法来衡量您网站的重要方面&#xff0c;以决定是否向您发送流量。 搜索引擎使用您网站的小元素来确定您网站的质量和真实性&#xff0c;然后此操作将转化为您的网页在搜索引擎结果页面 中出现的位置。提高您在 SERP 中的排名的过程称为搜索引擎优化 (SEO)。…

第57期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

Datawhale - 角色要素提取竞赛

文章目录 赛题要求一、赛事背景二、赛事任务三、评审规则1.平台说明2.数据说明3.评估指标4.评测及排行 四、作品提交要求五、 运行BaselineStep1&#xff1a;下载相关库Step2&#xff1a;配置导入Step3&#xff1a;模型测试Step4&#xff1a;数据读取Step5&#xff1a;Prompt设…

Yi-1.5 9B Chat 上线Amazon SageMaker JumpStart

你是否对简单的API调用大模型感到不满足&#xff1f;是否因为无法亲自部署属于自己的大模型而烦恼&#xff1f; 好消息来了&#xff0c;Amazon SageMaker JumpStart 初体验 CloudLab实验上线啦&#xff01; 本实验将以零一万物最新发布的中文基础模型 Yi-1.5 9B Chat 为例&am…