R数据分析:工具变量回归的做法和解释,实例解析

第二章 工具变量法(IV)与两阶段最小二乘法 工具变量法(IV): 是为了解决一个违反经典假设问题而设计的,假设条件是:解释变量与随机扰动项不相关。如果出现了违反该假设的问题,就需要找一个和解释变量高度相关的、同时和随机扰动项不相关的变量。要注意的问题是,工具变量的设定除了上述两个条件以外,工具变量的个数至少要大于或者等于解释变量的个数,常数项是默认的工具变量,和随机扰动项不相关的解释变量也可以作为工具变量。 两阶段最小二乘法: 其本质... 阅读详情

前几天看了个视频,是2024年诺贝尔经济学奖得主在分享自己的研究,研究问题是“制度如何形成并影响经济繁荣”,在研究这个问题的时候他的PPT中提到研究的统计过程中用到了工具变量,想着再次大家介绍一下这个方法。说不定利用这个方法,哪天我的读者里面也出个诺贝尔奖得主呢,哈哈哈。

想象一下:你想知道“冰淇淋销量”和“溺水人数”之间是否存在关系。你通过数据发现,冰淇淋销量高的月份,溺水人数也比较多。你可能会得出“吃冰淇淋导致溺水”的结论吗?显然不合理。

问题出在哪里?

这里存在一个“遗漏变量”——气温。

  • 气温升高,人们更喜欢吃冰淇淋,导致冰淇淋销量上升。
  • 气温升高,人们更喜欢去游泳等水上活动,导致溺水人数上升。

所以,冰淇淋销量和溺水人数之间并非直接的因果关系,而是都被气温这个共同的因素所影响。这种因为遗漏变量导致你研究的变量(冰淇淋销量)和影响结果的“其他因素”(这些“其他因素”我们统称为“误差项”)产生关联的情况,就叫做内生性。

内生性指的是,在统计模型中,解释变量(比如“吃冰淇淋”)和误差项(也就是我们没有观测到的其他影响因素)之间存在关联。这会导致模型估计结果产生偏差,我们无法准确地推断出因果关系。

In econometrics, endogeneity refers to the situation where an explanatory variable in a regression model is correlated with the error term

具体来说,内生性通常由以下几种原因引起:

1.遗漏变量(Omitted Variable): 模型中遗漏了一个或多个与解释变量和因变量都相关的变量。

例子: 研究教育程度对工资收入的影响时,如果模型中没有考虑到个人能力,而个人能力同时影响教育程度和工资收入,那么教育程度就与误差项相关,产生内生性。

2.双向因果关系(Simultaneity/Reverse Causality): 解释变量和因变量之间存在互为因果的关系。

例子: 研究广告支出对销售额的影响时,广告支出可以促进销售额的增长,而高销售额也可能反过来导致企业增加广告投入,这就形成了双向因果关系。

3.测量误差(Measurement Error): 解释变量的测量存在误差,导致其与误差项相关。

例子: 调查人们的收入水平时,受访者可能由于各种原因(例如,记忆偏差、隐瞒真实收入等)而提供不准确的信息,这就导致收入的测量存在误差,从而产生内生性。

4.样本选择偏差(Sample Selection Bias): 研究对象的选择并非随机,而是基于某些与因变量相关的因素进行选择,导致样本不具有代表性,从而产生内生性。

例子: 研究大学教育对毕业生收入的影响时,如果只有成功找到高薪工作的毕业生才愿意参与调查,那么样本就存在选择偏差,因为高收入本身就与接受大学教育的意愿和能力相关。

工具变量的概念:

工具变量就像是一个“替身”,它可以帮助我们解决内生性问题。为了解决内生性问题,我们需要找到一个只影响“冰淇淋销量”,而不直接影响“溺水人数”的变量。这个变量就叫做工具变量。一个好的工具变量需要有两个重要特征,一个是相关性,另一个是外生性。

An instrumental variable (IV) is a variable that is correlated with the endogenous explanatory variable but is uncorrelated with the error term in the regression model

我们还是用刚刚“冰淇淋销量”和“溺水人数”的例子来说明: 假设我们找到一个工具变量叫做“太阳镜销量”,这个变量它满足:

  • 相关性(Relevance): 气温升高,人们更喜欢买太阳镜,所以“太阳镜销量”和“冰淇淋销量”是相关的。工具变量与内生解释变量高度相关。这意味着工具变量能够有效地预测内生解释变量的变动。
  • 外生性(Exogeneity): “太阳镜销量”本身并不会直接导致溺水人数增加。它只能通过影响“冰淇淋销量”来间接影响(或者说和“溺水人数”产生表面上的关联)。工具变量与误差项不相关。这意味着工具变量不会通过其他渠道直接影响因变量,只能通过影响内生解释变量来间接影响因变量。

“太阳镜销量”就满足了工具变量的两个关键条件:

  1. 与内生变量(冰淇淋销量)相关。
  2. 与误差项(影响溺水人数的其他因素,例如水域安全措施、游泳技能等)不相关。

工具变量如何工作?

工具变量的目的是将“冰淇淋销量”这个解释变量或者叫做自变量分解成两部分:

  1. 受“太阳镜销量”影响的部分: 这部分和“溺水人数”的“其他影响因素”无关。
  2. 不受“太阳镜销量”影响的部分: 这部分可能和“溺水人数”的“其他影响因素”有关(也就是内生性问题的来源)。

通过工具变量,我们只关注“冰淇淋销量”中不受“其他影响因素”干扰的那部分,从而更准确地估计“冰淇淋销量”和“溺水人数”之间的关系(虽然在这个例子中,我们期望得到的关系是不显著的,也就是吃冰淇淋和溺水没关系)。

再归纳一遍上述思路:就是我们要研究xy的关系,这个关系可能是相当复杂的,复杂到可能根本就无法直接估计,比如社会制度和繁荣的关系;那么这个时候我找到了一个和社会制度强相关的变量Z,并且这个Z和繁荣没关系,那么我们就可以用Z和繁荣的关系去作为xy关系的估计。

但是变量Z其实是不好找的,根本不会存在Z和X完全相关,所以我们依然是要借住统计方法将Z实际起作用的部分抠出来,变成xy的关系可以用受Z影响的x的部分和Y的关系作为估计。

两阶段最小二乘法(2SLS)

工具变量最常用的应用方法是两阶段最小二乘法:

  1. 第一阶段: 用工具变量(太阳镜销量)去预测内生变量(冰淇淋销量),得到“冰淇淋销量的预测值”。这个预测值只包含了“冰淇淋销量”中受“太阳镜销量”影响的部分,因此和“其他影响因素”无关。
  2. 第二阶段: 用“冰淇淋销量的预测值”去预测因变量(溺水人数)。这样得到的估计结果就消除了内生性带来的偏差。

总体来说就是工具变量的本质是寻找一个外生的变动来源,帮助我们分离出内生变量中与误差项无关的部分,从而更准确地估计变量之间的因果关系。

实例解析

假设我们研究教育程度(Education)对工资收入(Wage)的影响。但是,教育程度可能存在内生性问题,因为:

  • 遗漏变量: 例如,个人能力可能同时影响教育程度和工资收入,如果模型中没有控制个人能力,就会导致教育程度与误差项相关。
  • 双向因果关系: 高工资收入也可能反过来激励人们继续接受教育。

我们可以使用“父母教育程度”(Parent Education)作为教育程度的工具变量来消除内生性问题,因为它可能与个人的教育程度相关(父母教育程度高的子女更有可能接受更高的教育),但不太可能直接影响个人的工资收入(除非通过遗传等其他途径,但这种影响相对较弱,可以忽略不计)。

假设我现在有数据如下:

其中wage为因变量工资收入,education为自变量教育程度,parent_edu为工具变量父母教育程度。下面代码便是这个例子中两阶段最小二乘的实操代码

iv_model <- ivreg(wage ~ education | parent_edu, data = data) # |左边是内生变量,右边是工具变量
summary(iv_model, diagnostics = TRUE) #诊断信息,包括弱工具变量检验

代码中要注意公式的写法:ivreg(income ~ edu | paredu, data = data:

  • income ~ edu: 表示要估计的模型,即收入是教育水平的函数。
  • | paredu: 表示paredu是edu的工具变量。

运行代码后输出结果如下:

可以看到模型估计的自变量的系数为0.3461,并且是显著的,意味着受教育程度确实会影响工资收入。

设置参数diagnostics = TRUE,会输出一系列的检验结果:

  • Weak instruments(弱工具变量检验): 。F 统计量(First-stage F statistic)应该足够大(通常大于10),以避免弱工具变量问题。若F统计量过小,则说明工具变量与内生变量的相关性不够强,可能导致2SLS估计的偏差仍然很大。可以看到我们结果P很小,意思是拒绝了弱工具变量的原假设。
  • Hausman test(豪斯曼检验): 用于检验是否存在内生性。原假设是OLS估计是有效的(即不存在内生性)。如果豪斯曼检验拒绝原假设(p 值小于显著性水平),则表明存在内生性,需要使用工具变量回归。可以看到结果中该检验p值大,说明确实存在内生性需要做两阶段最小二乘。
  • Sargan test(萨根检验或过度识别检验): 仅当工具变量个数多于内生变量个数时进行。检验工具变量的外生性是否成立。原假设是所有工具变量都是外生的。如果萨根检验拒绝原假设,则表明至少有一个工具变量不是外生的,模型设定存在问题。在本例中,只有一个工具变量,因此不会有Sargan检验。

总之,工具变量回归是一种重要的计量经济学方法,用于解决内生性问题。正确理解和使用工具变量回归需要仔细考虑工具变量的选择、检验和解释。在实际应用中,应该结合具体的研究问题和数据情况,谨慎使用工具变量回归。

岭回归和lasso回归的r语言代码 setwd("C:/Users/IBM/Desktop/研一课程/2.2回归分析/回归作业")  #设定当前的工作目录 shuju=read.table("shuju.txt",header=T) shuju   #读取数据 #使用lm.ridge来进行岭回归,其好处是可通过GCV自动选择调节系数,但运算结果与书上不同 library(MASS)    #lm.ridge在MASS 阅读详情

相关推荐

spssmoderler线性回归分析实例

一、首先,对回归分析的概念有一个清楚地认知在统计学中,回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。回归分析按照涉及的变量的多少,分为一元回归和多元回归分析;按照因变量的多少,可分为简单回归分析和多重回归分析;按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。在大数据分析中,回归分析是一种预测性的建模技术,...

weixin_42214393的博客 1万+

工具变量(IV)

工具变量

weixin_59939020的博客 1万+

数据分析中的Excel、R、Python、SPSS、SAS和SQL

作为一直想入门数据分析的童鞋们来说,如何选定一门面向数据分析的编程语言或工具呢?注意是数据分析,而不是大数据哦,数据分析是基础了。   数据分析的工具千万种,综合起来万变不离其宗。无非是数据获取、数据存储、数据管理、数据计算、数据分析、数据展示等几个方面。而被提到频率最高的如Excel、R、Python、SPSS、SAS、SQL等。那么,这些工具本身到底有什么特点呢,应该如何合理的使用

嘉数汇 2万+

【初级计量经济学】内生性问题——工具变量法(Stata实现)

以课本案例来讲解内生性问题以及Stata实操,适合初学者自学~

m0_56120502的博客 3万+

R数据分析:孟德尔随机化实操

好多同学询问孟德尔随机化的问题,我再来尝试着梳理一遍,希望对大家有所帮助,首先看下图1分钟,盯着看将下图印在脑海中:上图是工具变量(不知道工具变量请翻之前的文章)的模式图,明确一个点:我们做孟德尔的时候感兴趣的是x和y的关系,也就是小b,但是我们直接去跑x对y的回归肯定是不对的,因为有很多的U,因此我们借助工具变量G(关于工具变量我们之前的文章有详细的解释,请自行查阅),去估计我们感兴趣的小b。

wyhua2008的博客 3627

如何用SPSS进行分组线性回归:从入门到精通

分组线性回归(Grouped Linear Regression)是指在回归分析中考虑不同组别的影响。通过引入分组变量,我们可以为每一组构建独立的回归方程,从而更精确地描述各组之间的差异。这不仅有助于提高模型的解释力,还能揭示隐藏在数据背后的深层次信息。在菜单栏中选择“转换” -> “重新编码为不同变量”。将Region选入“数值表达式”框,并根据需要设定新的分组标签(如“北区”、“南区”等),然后点击“添加”。完成所有分组后,点击“继续” -> “确定”。

cda2024的博客 1618

一元线性回归(R语言)

目录一元线性回归一元线性回归建模的大致思路如下:1. 确定因变量与自变量之间的关系1.1 查看变量间有没有相关关系1.2计算相关系数1.3 检验相关系数2.建立模型,并对模型进行估计和检验2.1 回归模型的拟合2.2 计算回归系数的置信区间2.3 绘制拟合图3.利用回归方程进行预测3.1 利用回归方程进行预测3.2 绘制置信带和预测带3.3 计算 x0 = 500 时销售收入的点预测值、置信区间和预测区间4. 对回归模型进行诊断4.1 回归预测值(pre)、残差(res)、标准化残差(zre)4.2 检验线

M冰的博客 1万+

线性回归模型选择:3个场景解析何时使用 R-Squared 与 Adjusted R-Squared

本文深入解析线性回归模型中R-Squared与Adjusted R-Squared的适用场景,帮助数据分析师在简单线性回归、多重线性回归和模型比较等不同情况下做出明智选择。通过实际案例和代码示例,阐明何时优先使用R²或调整R²,避免常见误区,提升模型评估的准确性。

congju3179的博客 374

R语言学习之数据分析实战(一)

R语言学习之数据分析实战(一) 一、线性回归 回归(regression):通常指那些用一个或多个预测变量,也称自变量或解释变量,来预测响应变量,也称为因变量、效标变量或结果变量的方法。 普通最小二乘回归法(OLS) 以women数据集为例: lm()函数 formula:需要拟合的形式,y~x data:需要使用的数据集,数据框的形式 R表达式中常用的符号 使用lm()函数对women数据集进行回归分析 > fit <- lm(weight ~ height, data=wome

weixin_44211964的博客 9681

stata 工具变量法【计量经济系列(七)】

stata 工具变量法【计量经济系列(七)】 1. 内生性 2. 工具变量3. 2SLS (二阶段最小二乘法) 4. 弱工具变量5. 工具变量外生性的过度识别检验 6. 豪斯曼检验6.1 传统豪斯曼 6.2 杜宾-吴-豪斯曼检验(DWH)

侯小啾技术博客 2万+

【Python计量】内生性问题、工具变量法与二阶段最小二乘法2SLS

我们以伍德里奇《计量经济学导论现代方法》的”第15章工具变量估计与两阶段最小二二乘法“的案例15.5为例,使用美国女性教育回报数据MORZ,学习工具变量法的Python实现。

mfsdmlove的博客 1万+

R语言在临床数据分析中的应用(多因素回归全解析)

掌握临床数据的R语言多因素分析,系统解析多因素回归在医学研究中的应用。涵盖逻辑回归、Cox模型等核心方法,适用于预后因素筛选与疗效评估。提供完整代码示例与结果解读,助力科研高效建模,值得收藏。

ProceNest的博客 914

R数据分析:工具变量回归与孟德尔随机化,实例解析

原谅我又拖更好久,没办法,欸,就是懒,但是所有的单子都是保质保量完成的哈。,今天给大家写工具变量和孟德尔随机化,文章略微有些长,请大家准备好清醒的头脑,和半个小时的阅读时间哈。 啥是工具变量回归 Instrumental variable procedures are needed when some regressors are endogenous (correlated with the error term). The procedure for correcting this endogen

Codewar的博客 9283

[数据分析]:分层回归分析

在分层回归分析中,使用 Anova() 函数(通常来自 car 包)进行模型比较是一种常用的方法,用于检验在逐步添加自变量后,模型是否显著地改进了对因变量的预测。Type II ANOVA 考虑了模型中除当前变量之外的所有其他变量的影响,而 Type III ANOVA 考虑了模型中所有其他变量的影响,无论它们是否在当前变量之前或之后进入模型。多重决定系数表示模型解释的因变量变异性的比例,而调整后的决定系数考虑了模型中自变量的数量,用于比较不同大小的模型。同时,注意检查模型的显著性(通过F检验)。

G_sea_young的博客 3620

R数据分析:交叉滞后模型基础与实例解析

最近问纵向数据分析的同学贼多,像潜增长,GEE,多水平,之前都有写,今天偷空出个简易的交叉滞后教程哈,大家只要遇到像causal models,cross- lagged panel models,linear panel models 和autoregres-sive cross- lagged models 这些,都要反应过来他们都是一个东西,都叫面板模型,统一的数据特点就是把变量纵向测量很多波,然后想探讨变量间的关系,最简单的情形就是两波的时候啦,如下图: 我们看着这个图,可以自然而然地写出

Codewar的博客 1万+

R数据分析:结构方程模型的分组比较,实例解析

做结构方程的时候分组比较用的比较多,咨询的同学也多,之前写过mplus的做法,今天就再给大家写个用R的,不论你是做中介还是做验证性因子分析,等等,反正用结构方程能做的都可以套这个方法,而且在R语言的lavaan包中,分组比较的做法也是非常简单的,今天就带大家来了解下。 为何要分组比较 很多时候我们会关心,某结构方程中的某条系数是不是存在组间差异,比如说性别差异,年龄差异,文化差异(跨文化),这个时候我们想做的是整个模型系数的比较,你想要单因素分析?搞个T检验?再搞个卡方,弄个回归?都是行不通的。 这个

Codewar的博客 4036

《R语言数据分析》作业答案

数据赋人工系统以智能。北邮《R语言数据分析》课程从问道、执具、博术三个方面,阐述机器学习/数据挖掘的方法论(道)、编程工具R语言(具)以及经典算法模型(术)。通过课程的学习,可一起领悟数据分析之哲理、掌握模型算法之要义、提升工程实践之素养,推开人工智能的大门,为同学们在机器学习/数据挖掘领域登堂入室奠定基础。以下资料整理于该课程作业,供学习参考。

baidu的专栏 1万+

高德地图爬虫

高德地图爬虫 工具:Pycharm,win10,Python3.6.4 1.需求分析 这篇爬虫和上一篇百度地图爬虫要求一样,百度地图爬虫我发现有一个auth参数会一直变化,一旦变化则获取的数据是不准确的,所以我上高德地图看了一下,高德地图没有这个反爬机制。但是高德地图大概爬取120个页面就会跳一次验证码,我这里是通过换IP解决这个问题的。 2.数据准备 同样我们需要全国地级市信息,用之前...

123的博客 1万+
上一篇: R机器学习:决策树算法的理解与实操
下一篇: R机器学习:神经网络算法的理解与实操,实例解析
公众号Codewar原创作者
博客等级 码龄7年 2025粉丝 185原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

公众号Codewar原创作者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值