首页 > 其他分享 >10_工具变量法

10_工具变量法

时间:2024-05-03 22:12:27浏览次数:29  
标签:10 变量 iq res iv print 工具

第10章 工具变量法

OLS成立的前提:前定变量或同期外生=解释变量与扰动项不相关

  • 内生性(解释变量与扰动项相关)来源:
    • 遗漏变量偏差
    • 联立方程偏差(双向因果关系)
    • 测量误差偏差(measurement error bias)

解决内生性问题的方法之一:工具变量法

10.1 联立方程偏差

解释变量与被解释变量直接存在多个函数关系,形成联立方程关系,存在联立方程偏差,使OLS估计不一致。

  • 联立方程将导致X与y的多种函数关系,通过变换,可解释为双向因果。

10.2 测量误差偏差

有些变量无法观测,只能观测其他替代变量。这样形成的偏差称为测量误差偏差。

  • 数据质量是影响研究准确性的重要因素。
  • 如果被解释变量存在测量误差,后果缺不严重。

10.3 工具变量法的例子

定义 工具变量

有效的 工具变量满足2个条件:

  • 内生性(相关):与解释变量相关
  • 外生性(不相关):与扰动项不相关

10.4 二阶段最小二乘法

定义 二阶段最小二乘法(2SLS)

做两个回归。

  • stage1:用内生解释变量对工具变量回归,得到拟合值
  • stage2:用被解释变量对stage1的拟合值做回归

本质:将内生解释变量分成两部分:

  • 工具变量所造成的外生部分
  • 扰动项相关的其余部分

阶条件(Order Condition):进行2SLS估计的必要条件是工具变量个数不少于内生解释变量的个数

三种情况:

  1. 不可识别,工具变量数 < 内生解释变量数 不可使用2SLS
  2. 恰好识别,工具变量数 = 内生解释变量数 可使用2SLS
  3. 过度识别,工具变量数 > 内生解释变量数 可使用2SLS

另外:解释变量中如果有外生变量,应将外生变量与工具变量一起用于stage1的回归,stage2不变。

在存在异方差情况下,

  • stage2使用异方差稳健标准误
  • 更有效率的工具:广义矩估计GMM

使用工具变量时,面对如下问题:

  1. 弱工具变量
  2. 过度识别情况下的工具变量外生性

10.5 弱工具变量

工具变量仅包含极少的内生解释变量相关信息

检验方法:

  • 对一阶段的回归的一些统计量进行观察
    解决方法:
  • 寻找更强的工具变量
  • 使用有限信息最大似然估计法(LIML,Limited Information Maximum likelihood Estimation)

10.6 对工具变量外生性的过度识别检验

工具变量是否外生?

  • 恰好识别时,无法检验
  • 过度识别时,可做检验,检验的前提是该模型至少是恰好识别的,即有效工具变量数至少与内生变量一样多

检验方法:Sargan统计量

  • 原理:在过度识别时,可用不同工具变量组合进行工具变量法估计,如果所有工具变量都有效,则这些工具变量估计量 \(\hat\beta_{IV}\) 都将收敛到相同的真实参数 \(\beta\)。

10.7 对解释变量内生性的豪斯曼检验:究竟该用OLS还是IV?

使用工具变量法的前提是存在内生解释变量,需要做检验

  • 豪斯曼检验 (Hausman specification test):理想情况——同方差
  • 改进版:杜宾-吴-豪斯曼检验(Durbin_Wu_Hausman):适用于异方差

10.8 如何获得工具变量

步骤:

  1. 列出与内生解释变量相关的尽可能多的变量
  2. 从清单中剔除与扰动项相关的变量

很随缘啊。

10.9 工具变量法的Stata命令及实例

案例流程图:
![[10-1-工具变量法流程.png]]

statsmodel的IV2SLS方法还没写完,但是有另一个包可以实现:linearmodels 6.0 (bashtage.github.io)
这个案例也不错: Further Examples - linearmodels 6.0 (bashtage.github.io)

先读取数据:

import pandas as pd
import statsmodels.api as sm
from linearmodels.iv import IV2SLS

grilic = pd.read_stata('../2_Data/Data-2e/grilic.dta') 

dependent = grilic['lnw']
exog = grilic[['s','expr', 'tenure', 'rns', 'smsa']]
exog = sm.add_constant(exog)
endog = grilic['iq']
instruments = grilic[['med','kww']]
exog_iq = grilic[['s','expr', 'tenure', 'rns', 'smsa','iq']]
exog_iq = sm.add_constant(exog_iq)

(1)构建参照OLS

发现:教育投资回报率太高,可能存在“遗漏变量”,考虑引入遗漏变量“能力”

res_ols = IV2SLS(dependent, exog, None,None).fit()

(2)引入“智商(iq)”作为“能力”的代理变量,进行OLS

发现:教育投资回报率依然很高

res_ols_iq = IV2SLS(dependent, exog_iq,None,None).fit()

(3)由于用“iq”度量“能力”存在“测量误差”,考虑引入工具变量进行2SLS,使用稳健标准误。

工具变量:

  • med:母亲的教育年限
  • kww:kww测试成绩
    都与iq成正相关,且假设都外生。
    发现:教育投资回报率将为6.08%。
iv_model = IV2SLS(dependent=dependent,
                exog=exog,
                endog=endog,
                instruments=instruments
                )
res_iv = iv_model.fit()

(4)进行工具变量外生性的过度识别检验

print(res_iv.wooldridge_overid)
print(res_iv.sargan)
print(res_iv.anderson_rubin)
print(res_iv.basmann)

这几种方法都是用于过度识别时,外生性检验用的。

(5)弱工具变量检验:工具变量与解释变量的相关性检验

第一阶段:标准OLS/稳健标准误OLS 的工具变量系数都显著不为0,F统计量都>10!

# OLS-稳健标准误第一阶段
print(res_iv.first_stage.diagnostics)
print(res_iv.first_stage.individual) # 第一阶段完整结果
## 工具变量都显著不为0.

# 标准OLS第一阶段
print(iv_model.fit(cov_type='unadjusted').first_stage.diagnostics)  #模型诊断
print(iv_model.fit(cov_type='unadjusted').first_stage.individual)  #完整模型结果

(6)稳健起见,使用LIML再次估计

from linearmodels.iv  import IVLIML

iv_liml_model = IVLIML(dependent=dependent,
					   exog=exog,
					   endog=endog,
					   instruments=instruments
					   )
res_iv_liml = iv_liml_model.fit()

print(res_iv_liml.summary)

kappa=1.00 说明与2SLS一样

(7)检验存在内生解释变量

print(res_iv.wu_hausman())
print(res_iv.durbin()) # 暂不清楚是什么检验原理

(8)汇报结果

from linearmodels.iv.results import compare
from collections import OrderedDict

od = OrderedDict()
od['ols_without_iq'] = res_ols
od['ols_with_iq'] = res_ols_iq
od['2sls'] = res_iv
od['liml_iq'] = res_iv_liml

print(compare(od))

结果:

                               Model Comparison                              
=============================================================================
                     ols_without_iq   ols_with_iq          2sls       liml_iq
-----------------------------------------------------------------------------
Dep. Variable                   lnw           lnw           lnw           lnw
Estimator                       OLS           OLS       IV-2SLS       IV-LIML
No. Observations                758           758           758           758
Cov. Est.                    robust        robust        robust        robust
R-squared                    0.3521        0.3600        0.2775        0.2768
Adj. R-squared               0.3478        0.3548        0.2718        0.2710
F-statistic                  423.58        435.33        370.04        369.62
P-value (F-stat)             0.0000        0.0000        0.0000        0.0000
==================     ============   ===========   ===========   ===========
const                     4.1037***     3.8952***     3.2180***     3.2150***
                           (46.996)      (33.756)      (8.0781)      (8.0345)
s                         0.1026***     0.0928***     0.0608***     0.0606***
                           (16.595)      (13.362)      (3.2073)      (3.1857)
expr                      0.0381***     0.0393***     0.0433***     0.0433***
                           (5.7860)      (5.9347)      (5.8452)      (5.8424)
tenure                    0.0356***     0.0342***     0.0296***     0.0296***
                           (4.4702)      (4.3528)      (3.5643)      (3.5593)
rns                      -0.0841***     -0.0745**       -0.0435       -0.0434
                          (-2.8583)     (-2.4979)     (-1.2625)     (-1.2566)
smsa                      0.1397***     0.1367***     0.1272***     0.1272***
                           (4.9980)      (4.9466)      (4.2776)      (4.2735)
iq                                      0.0033***      0.0139**      0.0140**
                                         (2.9099)      (2.3063)      (2.3032)
==================== ============== ============= ============= =============
Instruments                                                 med           med
                                                            kww           kww
-----------------------------------------------------------------------------

T-stats reported in parentheses

标签:10,变量,iq,res,iv,print,工具
From: https://www.cnblogs.com/watalo/p/18166952

相关文章

  • poetry 工具-Python社区的Maven工具
    当初学习javaMaven,感觉非常太强大了,集jar包依赖、项目创建、项目发布于一身。在Python中一直没有找到和Maven对应的工具,pip+requirements.txt仅仅能解决项目中包依赖的问题,因为没有一个标准的项目模板,python的项目创建很随性,另外,python项目打包过程也很麻烦.......
  • mumu模拟器 MuMuManager.exe是MuMu模拟器12新加入的工具
    前言全局说明MuMuManager.exe是MuMu模拟器12新加入的工具官方说明:https://mumu.163.com/help/20230504/35047_1086360.html一、说明MuMu模拟器12的调用程序MuMuManager.exe在模拟器的安装目录下可以找到,如“X:\ProgramFiles\Netease\MuMuPlayer-12.0\shell>MuMuManager......
  • 关于stm32F103ZET6移植到stm32F103C8T6的步骤
    在一次代码移植过程中,突然发现代码移植后不可以使用,代码是stm32f103zet6的代码,刚好当时我使用的是C8T6的芯片我进行移植到C8T6芯片时,代码报错"Error:FlashDownloadfailed-"Cortex_M3"这种报错。当时直接懵逼了。想了半天没有想到原因,我就在想不都是F103系列的代码吗为啥子不可......
  • Spark中的闭包引用和广播变量
    闭包引用概念所有编程语言都有闭包的概念,闭包就是在一个函数中引用了函数外的变量。Spark中,普通的变量是在Driver程序中创建的,RDD的计算是在分布式集群中的task程序上进行的。因此,当分布式算子的函数引用了外部的变量时,Driver会把该变量序列化后通过网络发送给每一个task(只......
  • Godot.NET C#IOC重构(9-10):三连击,攻击框
    目录前言AnimationPlayer和AnimatedSprite2D将导出属性添加到关键帧里面。状态机构建核心代码完整代码实现效果碰撞框和受攻击框全局类HitBox:攻击框HurtBox:受击框实现效果添加Player攻击总结前言这篇博客来深入讲解一下Godot中的AnimationPlayerAnimationPlayer和AnimatedSpr......
  • P1525 [NOIP2010 提高组] 关押罪犯
    原题链接题解这题我采用了带权并查集的做法,0代表两囚犯处于监狱,1代表两囚犯不同监狱。根据题意,我们想让冲突值尽可能的小,那么我们要先把仇恨值大的两罪犯放在不同监狱;即按仇恨值从大到小的去判断每条仇恨信息。(贪心思想)code #include<bits/stdc++.h>usingnamespacestd;......
  • [转帖]10 Hardware Components of Oracle Exadata
    https://docs.oracle.com/en/engineered-systems/exadata-database-machine/dbmso/hardware-components-exadata-db-machine.html#GUID-EBA9369F-A2AB-449F-A361-40F48A5B37C2 OracleExadata consistsofdatabaseservers,storageservers,andthenetworkcomponent......
  • 轻量化Ubuntu虚拟机工具Multipass
    官网地址https://multipass.run/启动实例(默认情况下您将获得当前的UbuntuLTS)multipasslaunch--namefoo在该实例中运行命令,尝试运行bash(注销或ctrl-d退出)multipassexecfoo--lsb_release-a查看您的实例multipasslist停止和启动实例multipassstopfooba......
  • Linux 性能监控工具
    在Linux系统中有很多流行且经常使用的系统资源监控工具,例如:vmstat、netstat、iostat、ifstat和mpstat,这些工具可用于监控不同系统组件的统计信息,包括:虚拟内存、网络连接和接口、CPU、输入/输出设备等。dool是一款功能强大且灵活的多功能命令行工具,除了提供上述工具提供......
  • [转帖]Introducing Exadata Cloud@Customer X10M
    https://blogs.oracle.com/database/post/introducing-exadata-cloudcustomer-x10m  ExtremeScalewithDramaticallyImprovedPricePerformanceWeareexcitedtoannounceExadataCloud@CustomerX10M,thelatestgenerationoftheworld’sbeston-premises......