IV:工具变量不满足外生性怎么办?

发布时间:2020-12-28 阅读 2363

Stata连享会   主页 || 视频 || 推文 || 知乎

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh

课程详情 https://gitee.com/arlionn/Course   |   lianxh.cn

课程主页 https://gitee.com/arlionn/Course

作者: 甘徐沁 (厦门大学)
邮箱: 1072759894@qq.com


目录


实证研究中工具变量是最常用的用来解决内生性的工具。关于工具变量的基础可见连享会推文:“Stata: 工具变量法 (IV) 也不难呀!”

先来做一个复习,常规的工具变量法模型建立如下:

其中 Y 是因变量, X 是一个可能包含内生自变量的矩阵, Z 是工具变量矩阵(包含了 X 中所有外生变量)并且和 ε 不相关。工具变量有两个基本的假设,相关性和排他性假设。其中相关性假设要求 Z 和 X 相关,而排他性要求 Z 和 ε 不相关。关于排他性的解读和经典文献回顾,可以参考连享会推文 "工具变量-IV:排他性约束及经典文献解读"

当 X 和 ε 相关,并且工具变量的两个假设满足,OLS 的估计量是不一致的,而 IV 的估计是一致的。那么,首先让我们通过一个数值模拟来直观感受一下工具变量对于解决内生性的作用。

1. 回顾:内生性、工具变量估计的数值模拟

下面的 Stata 代码参考 Cameron(2009), pp.143 Section 4.6.5,连老师的讲义「蒙特卡洛模拟分析」对此也进行了详细分析。

*-Ref: Cameron(2009), pp.143  Section 4.6.5
	
	*--------------DGP----------------
	*
	*   y = a + b*x + u;   u~N(0,1)
	*   
	*   x = z + 0.5*u;     z~N(0,1)
	*
	*   a=10;  b=2;  N=150
	*
	*---------------------------------

cap program drop endogreg
program define endogreg, rclass
	version 11.0
	syntax [, obs(int 150) iv Rho(real 1)] //rho 用来控制 iv 和 x 的相关性程度
	drop _all
	set obs `obs'
	gen u = rnormal()  
	gen z = rnormal()     //corr(u,z) =0, 因为二者是分别生成的 
	gen x = `rho'*z + 0.5*u     //corr(x,u)!=0(内生), corr(x,z)!=0(IV)
	gen y = 10 + 2*x + u
	if "`iv'" != ""{               //如果用户未输入 iv 选项
	  ivregress 2sls y (x=z)       // IV回归,z 是 x 的工具
	}                              
	else{                          //否则进行 OLS 回归
	  regress y x
	}                              
	return scalar b  = _b[x]
	return scalar se = _se[x]
	return scalar t  = (_b[x]-2)/_se[x]  //Ho: b(x)=2
	local alpha = invttail(`obs'-2, 0.025)       
	                        // t 分布 5% 显著水平临界值
	dis in red "alpha = " in y `alpha'						
	return scalar over_rej= (abs(return(t))>`alpha') //过度拒绝取 1
	return scalar p  = 2*ttail($N-2, abs(return(t)))
end

进行模拟,并将模拟结果储存于数据中:

simulate b=r(b) se=r(se) t=r(t) over_rej=r(over_rej), ///
     reps(1000) seed(135): endogreg_OLS, obs(500)

查看所得结果 ( x 的系数 b , b 的标准误,系数 b 相对应的 t 值,以及 over_rej ——是否拒绝 H0:b=2 ) 的一些统计性质:

tabstat b se t over_rej,  ///
  s(mean sd min p5 p50 p95 max) f(%6.3f) c(s)

 variable |    mean      sd     min      p5     p50     p95     max
----------+--------------------------------------------------------
        b |   2.400   0.037   2.281   2.338   2.398   2.463   2.504
       se |   0.036   0.002   0.031   0.033   0.036   0.039   0.043
        t |  11.162   1.145   7.543   9.364  11.146  13.027  15.026
 over_rej |   1.000   0.000   1.000   1.000   1.000   1.000   1.000
-------------------------------------------------------------------

可以看到,此时估计出的系数 b 是有偏的(真实值为2),这是因为 OLS 的基本假设被打破了。我们可以画出 b 的核密度分布来确认。

kdensity b, xscale(range(1.9 2.6))  ///
            xlabel(1.9(0.1)2.6) xline(2,lp(dash))

接下去我们使用 z 作为 x 的工具变量进行估计:

simulate b=r(b) se=r(se) t=r(t) over_rej=r(over_rej), ///
     reps(1000) seed(135): endogreg, iv obs(500)

tabstat b se t over_rej,  ///
  s(mean sd min p5 p50 p95 max) f(%6.3f) c(s)

 variable |   mean      sd     min      p5     p50     p95     max
----------+-------------------------------------------------------
        b |  1.998   0.045   1.825   1.923   2.001   2.070   2.144
       se |  0.045   0.003   0.037   0.040   0.045   0.050   0.057
        t |  0.004   1.010  -3.233  -1.564   0.012   1.714   3.686
 over_rej |  0.050   0.218   0.000   0.000   0.000   0.500   1.000
------------------------------------------------------------------

kdensity b, xscale(range(1.9 2.6))  ///
            xlabel(1.9(0.1)2.6) xline(2,lp(dash)) ///
            title("IV is unbiased")

此时可以看到, IV 的估计量是无偏的。这个经典的例子体现出了在满足外生性和相关性情况下工具变量对于解决内生性的作用。

2. 扩展:外生性不满足的工具变量

Source: Damian Clarke, Benjamín Matta, 2018, Practical Considerations for Questionable IVs, Stata Journal, 18(3): 663–691. -PDF-, -PDF2-

实际研究中,工具变量的外生性是一个没有办法严格论证的条件 (untestable),尽管存在一些必要的统计检验方法,如过度识别检验等 (Sargan 1958; Hansen 1982; Kitagawa 2015) ,但这些方法并不是外生性的充分条件。因此我们需要考虑在 不满足工具变量外生性条件下的识别

  • 第一个方法 来自于 Conley et al. (2012),这种方法将外生性条件转换为了对于其支持域 (support) 或者分布的假设
  • 第二个方法 来自于 Nevo and Rosen (2012b) ,他们则将工具变量和第二阶段扰动项无关的假设转换为了二者相关性的符号。在两种不同的放松假设之下,我们再考虑工具变量估计。

2.1 理论框架

传统的线性 IV 框架为:

工具变量的有效性可以用以下两种思路:

  1. 当清除掉工具变量 Z 在 X 上的效果后,其对 Y 没有直接影响。

  2. Z 和 ε 无相关。

这两个表达方式在 simultaneous equation model 的框架下是等价的 (参考文献注释 3) ,但是二者提供了对于放松 IV 有效性的不同思路。下面我们分别考虑。

2.2 放松外生性假设 (plausexog)

(这一部分还可以参考连享会推文:"IV-估计:工具变量不外生时也可以用!")

实际上,完整的工具变量框架可如下表示:

当 γ=0 时便得到了传统的工具变量框架,此时外生性满足。而当 γ0 时,我们有两种方法。第一种方法直接假设 γ0 的上下界 [γmin,γmax] ,从而估计出下列模型中 β 的一系列系数,并取其并集作为置信区间。

Conley et al. (2012) 将这种方法称为" Union of Confidence Intervals " (UCI) 。 γ 的区间根据研究者的先验信念来确定,实际上是衡量了工具变量违反外生性的程度。在估计时,工具变量的估计区间是这一系列 γ 取值情况下的并集。在有多个工具的情况下,不同工具可以有不同的 γ 假设区间。

除去直接假设 γ 的上下界以外,我们还可以假设其分布。这种方法的好处是可以对  γ 的不同取值赋予不同的权重。当假设 γ 服从于某个分布时,我们可以得到 β 的渐进分布如下:

此时工具变量的方差多了一项,其中 A=(XX(ZZ)1ZX)1(XZ) 。这个方法被 Conley 等人称作" Local to Zero " (LTZ) 估计。

实际估计过程中,我们可以采取模拟方法。可假设 γ 服从高斯分布 N(μγ,Ωγ) ,那么便得到了一个简单的关于 β 的解析区间。

如果选择假设 γ 不服从高斯分布,那么可以采用 Conley et al. (2012) 提出的模拟算法来计算 β 的区间。

更加复杂的情况中,如果对外生性限制的结构还有更多的假设,还可以使用贝叶斯方法来进行。此时需要提供关于 γ 的先验信息,关于模型参数的先验信息以及误差项的分布。感兴趣的读者可以参考 Conley et al. (2012) ,在 R 语言中可以使用 bayesm (Rossi 2015) 命令。

这里工具变量违反外生性的先前信念在最终估计中起重要作用。决定一个确定的 γ 来反映违反程度是需要经验支持的,并且会随着研究的不同而不同,所以作者的建议是还要另外执行敏感性分析。关于如何使用计量方法来确定关于 γ 的先验信息,可以参考原文中作者给出的一些例子 (P7) 。

2.3 放松无相关假设 (imperfectiv)

传统的工具变量法中,依靠不可观测的假设, E(Zε)=0 ,来得到关于 β 的一致估计。而工具的区间估计可以通过假设方差的符号来进行。

我们用 ρxε 来表示相关系数,用 σxε 表示协方差, σx 表示标准差。严格的工具变量法中要求 ρzε=0 ,即工具和第二阶段的误差项无相关性。Nevo and Rosen (2012b) 使用工具和 ε 之间相关系数的符号关系来替换此假设:

这个假设在 Nevo and Rosen (2012b) 的原文中称为 assumption 3 ,表达的涵义是工具 Z 和误差项的(弱)相关方向,与内生变量 X 和 误差项的相关方向一致。同时我们加入下面这个原文中的 assumption 4 。

假设 3 和假设 4 ,给出了" Imperfect Instrumental Variable "的定义,即一个工具,其和误差项的相关方向,与感兴趣的内生变量 X 和误差项的相关方向一致,但其内生性要小于此内生变量 X 。 因此我们可以定义一个工具变量 Z 的内生程度和内生变量 X 的内生程度的比例:

在无相关假设成立情况下,显然有 λ=0 成立。尽管真实的 λ 是未知的,但是当我们假设其已知的情况下,可以构造一个复合工具变量 σXZλσZX ,这个工具变量是有效的,符合传统工具变量的无相关假设:

Nevo and Rosen (2012b) 的建议是使用 V(1)=(σXZ1σZX) ,来代替这个复合的工具变量,其对 β 的估计值为 βv(1)iv 。根据 σxz 和 ρxε 的符号的不同关系,我们可以得到 β 的单侧或者双侧区间估计。下表截取自 D Clarke, B Matta (2018) 的 table1 ,我们仅截取了 Panel A ,即一个工具的情况,关于更多工具的情形请读者自行参阅原文。

值得注意的是,在一个工具仅能估计出单边区间的情况中,如果使用两个及以上工具,则可以估计出两个区间。并且更多的工具通常会得到更窄的区间估计。

3. Stata 实操与模拟分析

假设数据生成过程如下:

由公式可知,若 μ0β 不可以使用 OLS 得到无偏估计。若 γ0,那么以 z 作为工具的 IV 估计同样不能得到一致估计。

这里,我们将 γz+ε 称作 η,名曰「复合误差项」。我们设 π=0.6,通过改变 γ —— 工具变量违反有效性程度;以及 μ —— 内生性程度来检验 plausexogimperfectiv 命令的效果。

3.1 plausexog 命令

该命令的语法为 ( 详见 help plausexog ):

plausexog method depvar [varlist1 ] (varlist2 = varlist iv) , ///
         [ vce(vcetype) gmin(numlist) gmax(numlist) grid(#)   ///
           mu(numlist) omega(numlist) distribution(name, params) seed(#) ///
           iterations(#) graph(varname) graphmu(numlist)      ///
           graphomega(numlist) graphdelta(numlist) * ]

其中:

  • method ,必选,可为 uci 或者 ltz 。
  • vce,标准误估计方法。
  • gmin,为工具设定 γ 的最小值,仅仅当 method 为 uci 才可以设定。必须为每一个工具设定一个 gmin 。
  • gmax,为工具设定 γ 的最大值,仅仅当methoduci才可以设定。必须为每一个工具设定一个 gmax 。
  • grid,设定[ gmin , gmax ]区间内用于计算区间的点数。默认为 2 。仅当 methoduci 才可以设定。
  • mu,设定 γ 的均值,假设高斯分布,使用 LTZ 方法。对于每一个工具必须设定一个 mu 。
  • omega,设定 γ 的方差,假设高斯分布和 LTZ 方法。对于每一个工具必须设定一个 omega 。
  • distribution,允许假设一个 γ 的非高斯分布。使用基于模拟的算法估计。
  • seed,设定模拟算法的随机数种子。
  • iterations,设定模拟算法的迭代次数。
  • graph,指定为一系列外生性限制不满足时的假设画出区间估计图。
  • graphmu,仅当 LTZ 模型时才可使用。为想要画出的点设置 mu 值。
  • graphomega,仅当 LTZ 模型时才可使用。每个值对应 graphmu 中的每个值,对给定的 mu 设定高斯分布的方差。
  • graphdelta,允许图像的值绘制在图像上方。
  • twoway options,...。

其中 method 为必选,包括了 uci (Union of confidence intervals) ,此时需给出 γ 的上下界,或者 ltz (Local to Zero approach) , 此时需给出 γ 的分布。关于其他读者可自行参阅其 help 文件。下面我们生成数据,并使用此命令进行估计。

set obs 100
set seed 1234
foreach var in u z v w {
	gen `var' = rnormal()
}
gen x = -0.6*z + 0.33*u + v
gen y1 = 3.0*x + 0.10*z + u

// UCI Method
. plausexog uci y1 (x=z), gmin(0) gmax(0.2) //设定gamma的上下界
Estimating Conely et al.'s uci method
Exogenous variables: 
Endogenous variables: x
Instruments: z


Conley et al (2012)'s UCI results                     Number of obs =      100
------------------------------------------------------------------------------
Variable    Lower Bound     Upper Bound
------------------------------------------------------------------------------
x           2.5844218       3.540548
_cons       -.19070535      .20726121
------------------------------------------------------------------------------

// LTZ Method
. plausexog ltz y1 (x=z), mu(0.1) omega(0.01) //mu为分布的均值,omega为分布的方差,这里默认高斯分布
Estimating Conely et al.'s ltz method
Exogenous variables: 
Endogenous variables: x
Instruments: z


Conley et al. (2012)'s LTZ results                    Number of obs =    100
------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
           x |      3.072      0.233    13.18   0.000        2.615       3.529
       _cons |      0.003      0.101     0.03   0.979       -0.195       0.200
------------------------------------------------------------------------------


注意到在以上两个例子中,我们的先验信息都“正确”设定了工具变量违反外生性的程度 0.1 ,所以在两个例子中, β 的估计都包括了真实系数 3 。

3.2 imperfectiv 命令

下面我们展示另外一个命令在同一个数据生成过程下的估计。这个命令的语法为:

imperfectiv depvar [varlist1 ] (varlist2 = varlist iv) [,    ///
            level(#) vce(vcetype) ncorr prop5 noassumption4  ///
            exogvars(varlist) bootstraps(#) seed(#) verbose ]

这个命令符合 ivregress 的语法,所有外生变量需要在 varlist1 中设定,内生变量设定在 varlist2 中,imperfect 工具变量设定在 varlist_iv 中。

  • level,置信区间。
  • vce,标准误估计方法。
  • ncorr,设定内生变量和不可观测误差项之间的相关性为负。默认为正。
  • prop5,设定 Nevo and Rosen (2012b) 的命题 5 成立。如果内生变量和每个不完美工具之间的相关性是负的,那么估计的区间结果仅包含一侧区间。如果有多于 1 个的不完美工具,那么可以使用命题 5 来生成双侧区间。如果设定此选项,那么 varlist_iv 的前两个工具会被用来计算此双侧区间,并且假设第一个工具是更“好”的。
  • noassumption4,设定Nevo and Rosen (2012) 假设 4 不成立。即不完美工具和误差项之间的相关性,小于内生变量和误差项之间的相关性。
  • exogvars,展示外生变量的区间估计。
  • bootstraps,在有多个上或下区间时,对于每个估计值的统计推断过程考虑不确定性接近 binding 的情况,使用 bootstrap 过程的次数。
  • seed,设定 bootstraps 方法的随机数种子。
  • verbose,展示详细的命令运行过程。

我们分别进行区间估计,在无假设 4(不完美工具和误差项之间的相关性,小于内生变量和误差项之间的相关性)和存在假设 4 情况下。

. imperfectiv y1 (x=z), noassumption4


Nevo and Rosen (2012)'s Imperfect IV bounds           Number of obs =    100
------------------------------------------------------------------------------
Variable         Lower Bound(CI)  LB(Estimator) UB(Estimator) Upper Bound(CI)
------------------------------------------------------------------------------
x                  [2.5844218      (2.9063368    3.1372705)     3.284754]
------------------------------------------------------------------------------

. 
. imperfectiv y1 (x=z)


Nevo and Rosen (2012)'s Imperfect IV bounds           Number of obs =    100
------------------------------------------------------------------------------
Variable         Lower Bound(CI)  LB(Estimator) UB(Estimator) Upper Bound(CI)
------------------------------------------------------------------------------
x                  [2.5844218      (2.9063368    3.0629197)     3.2337844]
------------------------------------------------------------------------------

下面考虑一系列数据生成过程,包含不同的 γ(在每个面板之间), μ(在不同的面板之间)。这里 γ 衡量了 Conley et al. (2012) 所关注的对外生性限制的违背程度,同时列出了 Nevo and Rosen (2012b) 所关心的 x 和 η(复合误差项)的相关系数,以及 z 和 η 之间的相关系数,来确定是否假设 4 成立。我们给出 plausexogimpefectiv 的估计结果。

可以观察到,几乎在所有的情况下区间估计都包含了真实的 β=3 。唯一的例外是在Panel A 中的最右边,在这种情况下,Nevo and Rosen (2012b) 的假设 4 不满足,所以 imperfectiv 命令应该设置 noassumption4 选项。

总体而言,尽管 Nevo and Rosen (2012b) and Conley et al.(2012) 的两种方法都允许设定工具变量和不可观测误差项之间很强的假设关系来进行区间估计。理想状况中,这些假设应该从 IV 不成立的经济理论中去寻找。感兴趣的读者可以参阅原文 P17 ,作者简单列举了两个根据理论来确定工具变量和误差项关系的例子。

4. 总结

工具变量法是经济学实证研究中用于探究因果关系的最常用的方法之一。工具变量的两个假设之一,相关性假设可以验证,而不可观测的外生性假设是无法严格论证的。在外生性假设不成立的情况下,我们可以通过假设工具和误差项之间的关系来估计真实系数 β 的一个区间。本文基于 Nevo and Rosen (2012b) and Conley et al.(2012) 的两篇论文介绍了其 stata 应用, impefectivplausexog 。数值模拟表明,这种区间估计的准确性依赖于对于工具和误差项假设的前定信念是准确的。实际研究时,我们可以从经济理论或者现实中来寻找前定信念。

5. 参考文献

  • 连玉君. "内生性问题模拟分析" Stata连享会. (2020)
  • Cameron, A. C. and P. Trivedi. “Microeconometrics Using Stata.” (2009).
  • Damian Clarke, Benjamín Matta, 2018, Practical Considerations for Questionable IVs, Stata Journal, 18(3): 663–691. -PDF-, -PDF2-

6. 相关推文

Note:产生如下推文列表的命令为:lianxh IV 工具变量 内生, m
安装最新版 lianxh 命令:ssc install lianxh, replace

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看

专题 嘉宾 直播/回看视频
最新专题 因果推断, 空间计量,寒暑假班等
数据清洗系列 游万海 直播, 88 元,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh