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

目录

Regression Theory

Single Variable Linear Regression

Multivariate Linear Regression

 Frisch-Waugh-Lovell Theorem and Orthogonalization


Regression Theory

我不打算太深入地探讨线性回归是如何构建和估计的。不过,一点点理论知识将有助于解释线性回归在因果推理中的作用。首先,回归解决的是最佳线性预测问题。假设 β* 是一个 参数向量:

\beta^\star=argmin E\Big[(Y_i-X_i'\beta)^2\Big]

线性回归可以找到最小化均方误差 (MSE) 的参数。如果将其微分并设为零,就会发现这个问题的线性解如下:

\beta^\star=E[X'X]^{-1}E[X'Y]

也可以用样本估计beta

\hat{\beta}=(X'X)^{-1}X'Y

但不要相信我的话。如果你是那种理解代码胜过理解公式的人,那就自己试试吧。在下面的代码中,我使用 OLS 的代数解来估计你刚才看到的模型的参数(我添加了截距作为最终变量,因此第一个参数估计值将是 β1):

 X_cols = ["credit_limit", "wage", "credit_score1", "credit_score2"]
 X = risk_data[X_cols].assign(intercep=1)
 y = risk_data["default"]
 def regress(y, X):
 return np.linalg.inv(X.T.dot(X)).dot(X.T.dot(y))
 beta = regress(y, X)
 beta
 
 array([ 3.062e-06, -8.821e-05, -4.174e-05, -3.039e-04, 4.0364-01])

如果你回过头来看一下,就会发现这些数字与你之前用 statsmodels 中的 ols 函数估计模型时得到的数字完全相同。

Single Variable Linear Regression

上一节的 β 公式非常通用。不过,研究一下只有一个回归变量的情况还是有好处的。在因果推断中,您经常想要估计一个变量 T 对结果 y 的因果影响,因此,您使用这个单一变量的回归来估计这种影响。

在只有一个回归变量 T 的情况下,与之相关的参数为

\hat{\tau}=\frac{Cov\big(Y_i,T_i\big)}{Var\big(T_i\big)}=\frac{E\big[\big(T_i-\overline{T}\big)\big(Y_i-\overline{Y}\big)\big]}{E\big[\big(T_i-\overline{T}\big)^2\big]}

如果 T 是随机分配的,β1 就是 ATE。重要的是,通过这个简单的公式,您可以了解回归的作用。它是要找出干预和结果是如何共同作用的(用分子中的协方差表示),然后用干预的单位来表示,即除以干预的方差。

Multivariate Linear Regression

原来,除了你之前看到的一般公式之外,还有另一种方法来看待多元线性回归。这另一种方法让我们对回归的作用有了一些了解。

如果你有不止一个回归变量,你可以扩展单变量回归公式以适应这种情况。假设其他变量只是辅助变量,而您真正感兴趣的是估计与 T 相关的参数 τ:

y_{i}=\beta_{0}+\tau T_{i}+\beta_{1}X_{1i}+ . . . +\beta_{k}X_{ki}+u_{i}

\tau可以用以下公式来估计:\hat{\tau}=\frac{Co\nu\left(Y_i,\widetilde{T_i}\right)}{Var\left(\widetilde{T_i}\right)}, 其中\widetilde{T}_i是Ti对所有其他协变量X_{1i}+ . . . +X_{ki}回归的残差。

现在,让我们来体会一下这有多酷。这意味着多元回归的系数是同一回归变量在考虑了模型中其他变量的影响后的二元系数。用因果推理的术语来说,\tau是使用所有其他变量预测 T 后的双变量系数。

这背后有一个很好的直觉。如果能用其他变量预测 T,就意味着它不是随机的。然而,一旦控制了所有干扰变量 X,你就可以让 T 看起来和随机的一样好。为此,你可以使用线性回归从混杂因子中预测它,然后取该回归\widetilde{T}的残差 。根据定义,\widetilde{T}不能被你已经用来预测T的其他变量X来预测。 相当优雅地说,\widetilde{T} 是与 X 中任何其他变量都不相关(不相关)的干预版本。

我知道这很拗口,但实在是太神奇了。事实上,这已经是我答应要教大家的 FWL 定理的工作原理了。所以,如果你还不太理解多元回归部分,也不用担心,因为接下来你将以一种更直观、更形象的方式来复习它。

 Frisch-Waugh-Lovell Theorem and Orthogonalization

FWL 式正交化是您可以使用的第一种主要去杂技术。它是一种简单而强大的方法,可以让非实验数据看起来像是经过随机干预的。FWL 主要是关于线性回归的;FWL 式正交化已经扩展到了更广泛的环境中,你将在第三部分中看到。Frisch-Waugh-Lovell 定理指出,多元线性回归模型可以一次性或分三步进行估计。例如,您可以将违约与信贷限额、工资、信贷评分 1 和信贷评分 2 进行回归,就像您已经做的那样:

 formula = 'default ~ credit_limit + wage+credit_score1+credit_score2'
 model = smf.ols(formula, data=risk_data).fit()
 model.summary().tables[1]

但是,根据 FWL,您还可以将这一估算细分为
1. 去偏步骤,将干预 T 与混杂因素 X 进行回归,得到干预残差 \tilde{T}=T-\hat{T}
2. 去噪步骤:将结果 Y 与混杂变量 X 进行回归,得到结果残差 Y。
3. 结果模型,将结果残差 Y 与干预残差 T 进行回归,得到结果残差 Y = Y - Y 3.
残差 T,得到 T 对 Y 的因果效应的估计值。

毫不奇怪,这只是重述了 "多元线性回归 "中看到的公式。FWL 定理说明了回归模型估计程序的等价性。该定理还指出,您可以分离线性回归中的除杂成分,这就是前面列表中概述的第一步。为了更直观地了解发生了什么,让我们一步一步来分析。

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

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

相关文章

更新!谷歌倾斜摄影OSGB数据V1.2版

谷歌倾斜摄影OSGB数据V1.2版终于来了! 一个月前发布了谷歌倾斜摄影数据生成OSGB数据V1.0版,对谷歌倾斜摄影数据转换工具进行了重大更新,V1.1版主要解决了三个问题:1.支持Cesiumlab等数据处理软件,将OSGB数据转换成3DTi…

OFDM关键技术——PAPR降低技术

OFDM信号的峰均比问题 PAR问题由于不同子载波上N个正弦信号叠加引起,由于各个子载波的幅值和相位相互独立,当子载波数目较大时,由中心极限定理可知,同相分量的幅度服从高斯分布。 峰值功率:0.1033 平均功率&am…

网安小贴士(4)哈希函数

一、前言 哈希函数是密码学中的基础工具,哈希函数在密码学中扮演着至关重要的角色,广泛应用于确保数据的安全性和完整性。随着技术的发展,新的哈希算法和应用场景也在不断出现。 二、定义 哈希函数是一种数学函数,它接受一个输…

计算机I/O系统与外围设备详解:从基础概念到实际应用

计算机I/O系统与外围设备详解:从基础概念到实际应用 在计算机世界中,理解I/O系统和外围设备的基本概念对初学者来说至关重要。本文将详细介绍I/O系统的基础知识、I/O接口、计算机外围设备及其工作原理,帮助基础小白更好地理解这些概念。 I/O…

毫米波雷达深度学习技术-1.7训练一个神经网络

1.7 训练一个神经网络 对于训练神经网络,有两个步骤,即前向传递和误差反向传播。 1.7.1 前向传播和反向传播 在前向传递中,输入被馈送到模型并与权重向量相乘,并为每一层添加偏差以计算模型的输出。密集层或全连接层第l层的输入、…

中画幅巡检相机-SHARE 100M A10

【毫厘之间,洞见非凡】 ——SHARE 100M A10中画幅测量相机,巡检行业的新选择 在巡检行业,精准度是关键,深圳赛尔智控科技有限公司最新推出的SHARE 100M A10中画幅测量相机,基于先进的IMX461影像传感器,拥有…

prometheus 安装node_exporter, node_exporter 安装最新版 普罗米修思安装监控服务器client

1. 本文介绍两种安装方式,一种安装为service,使用systemctl start node_exporter管理,第二种为安装docker内 容器内使用。 1.1 安装到系统内: 1.1.1 github地址: Releases prometheus/node_exporter GitHub ​ 1.1.2 下载命…

解析Linux top 命令输出并生成动态图表

文章目录 0. 引言1. 原理2. 功能3. 程序架构流程图结构图 4. 数据解析模块5. 图表绘制模块6. 主程序入口7. 使用方法8. 总结9. 附录完整代码 0. 引言 在性能调优和系统监控中,top 命令是一种重要工具,提供了实时的系统状态信息,如 CPU 使用率…

PHP电商系统开发指南高级技巧

开发高级 php 电商系统所需的技巧包括:数据库优化:使用索引、规范化数据结构和缓存机制。性能优化:启用页面缓存、优化图像和使用 cdn。购物车管理:使用会话或数据库存储数据,实现实时更新和弃单恢复。支付集成&#x…

windows10如何打开开发者模式

按键盘上的win键或者点击屏幕左下角的开始图标,即可出现如下的界面 在打开的界面中找到设置按钮,点击设置按钮 进入windows设置界面后,找到‘更新和安全’的选项,随后点击进入 进去后在左侧的功能列表中找到‘开发者选…

Transformer模型原理细节解析

基本原理: Transformer 的核心概念是 自注意力机制(Self-Attention Mechanism),它允许模型在处理每个输入时“关注”输入序列的不同部分。这种机制让模型能够理解每个单词或符号与其他单词或符号之间的关系,而不是逐个地线性处理输入。 Transformer 主要由两个部分组成:…

推荐算法学习笔记2.1:基于深度学习的推荐算法-基于共线矩阵的深度推荐算法-AutoRec模型

AutoRec模型 前置知识:推荐算法学习笔记1.1:传统推荐算法-协同过滤算法 AutoRec模型通过引入自编码器结构,将共线矩阵中的用户向量(基于用户的U-AutoRec)或物品向量(基于物品的I-AutoRec)嵌入到低维空间后还…

Ubuntu24.04LTS基础软件下载

librewolf: deb文件link 作用:访问github,无痕浏览,这个速度,不指望了 vscodium: 从deb安装,ubuntu sudo dpkg -i xxx.debpaste-image 插件替代 markdown wps: libreoffice: 替换USTC源 sudo nano /etc/apt/sourc…

Objective-C语法基础

新建一个XCode项目 新建一个类 1、成员变量、属性 1.1、类内使用成员变量&#xff0c;类外使用属性 Role.h #import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGINinterface Role : NSObject {//成员变量&#xff1a;只能类内使用NSString *_name;int _age; }//属…

GOM引擎源码 完整可编译 带微端 附带基础附件

GOM引擎源码 完整可编译 带微端 附带基础附件 时间紧迫&#xff0c;无暇顾及&#xff0c;无意中得到即公布GameOfMir源码未测试&#xff0c;专业人事自行编译测试&#xff01;非诚勿扰&#xff01;源码下载&#xff1a;极速云

招生报名系统教培招生小程序

招生报名系统&#xff1a;轻松实现教培招生新高度 &#x1f680; 招生报名系统&#xff0c;开启智慧教育新时代 在当今数字化快速发展的时代&#xff0c;教育行业也迎来了变革的浪潮。招生报名系统作为这一变革的先锋&#xff0c;为教育机构提供了全新的招生渠道和管理方式。通…

Spring Boot集成DeepLearning4j实现图片数字识别

1.什么是DeepLearning4j&#xff1f; DeepLearning4J&#xff08;DL4J&#xff09;是一套基于Java语言的神经网络工具包&#xff0c;可以构建、定型和部署神经网络。DL4J与Hadoop和Spark集成&#xff0c;支持分布式CPU和GPU&#xff0c;为商业环境&#xff08;而非研究工具目的…

【前端CSS3】一篇搞懂各类常用选择器(黑马程序员)

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文&#xff1a;2.1 基础选择器2.1.1 标签选择器2.1.2 类选择器2.1.3 id选择器2.1.4 通配符选择题2.1.5 类选择器与id选择器区别☀️☀️☀️2.1.6 基础选择器总结&#x1f680; 2.2 复合类选择器2.2.1 后代选择…

Python | Leetcode Python题解之第191题位1的个数

题目&#xff1a; 题解&#xff1a; class Solution:def hammingWeight(self, n: int) -> int:ret 0while n:n & n - 1ret 1return ret

Unity 功能 之 创建 【Unity Package】 Manager 自己自定义管理的包的简单整理

Unity 功能 之 创建 【Unity Package】 Manager 自己自定义管理的包的简单整理 一、简单介绍 Unity Package 是一种模块化的资源管理和分发方式&#xff0c;用于将游戏开发所需的代码、资源、配置文件等内容打包成一个独立的、可重用的组件。Unity Package 可以在多个项目之间…