第10章 工具变量法
OLS成立的前提:前定变量或同期外生=解释变量与扰动项不相关
- 内生性(解释变量与扰动项相关)来源:
- 遗漏变量偏差
- 联立方程偏差(双向因果关系)
- 测量误差偏差(measurement error bias)
解决内生性问题的方法之一:工具变量法
10.1 联立方程偏差
解释变量与被解释变量直接存在多个函数关系,形成联立方程关系,存在联立方程偏差,使OLS估计不一致。
- 联立方程将导致X与y的多种函数关系,通过变换,可解释为双向因果。
10.2 测量误差偏差
有些变量无法观测,只能观测其他替代变量。这样形成的偏差称为测量误差偏差。
- 数据质量是影响研究准确性的重要因素。
- 如果被解释变量存在测量误差,后果缺不严重。
10.3 工具变量法的例子
定义 工具变量
有效的 工具变量满足2个条件:
- 内生性(相关):与解释变量相关
- 外生性(不相关):与扰动项不相关
10.4 二阶段最小二乘法
定义 二阶段最小二乘法(2SLS)
做两个回归。
- stage1:用内生解释变量对工具变量回归,得到拟合值
- stage2:用被解释变量对stage1的拟合值做回归
本质:将内生解释变量分成两部分:
- 工具变量所造成的外生部分
- 扰动项相关的其余部分
阶条件(Order Condition):进行2SLS估计的必要条件是工具变量个数不少于内生解释变量的个数
三种情况:
- 不可识别,工具变量数 < 内生解释变量数 不可使用2SLS
- 恰好识别,工具变量数 = 内生解释变量数 可使用2SLS
- 过度识别,工具变量数 > 内生解释变量数 可使用2SLS
另外:解释变量中如果有外生变量,应将外生变量与工具变量一起用于stage1的回归,stage2不变。
在存在异方差情况下,
- stage2使用异方差稳健标准误
- 更有效率的工具:广义矩估计GMM
使用工具变量时,面对如下问题:
- 弱工具变量
- 过度识别情况下的工具变量外生性
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 如何获得工具变量
步骤:
- 列出与内生解释变量相关的尽可能多的变量
- 从清单中剔除与扰动项相关的变量
很随缘啊。
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