目录
1. 回顾:内生性、工具变量估计的数值模拟
2. 扩展:外生性不满足的工具变量
2.1 理论框架
2.2 放松外生性假设 (`plausexog`)
2.3 放松无相关假设 (`imperfectiv`)
3. Stata 实操与模拟分析
3.1 plausexog 命令
3.2 imperfectiv 命令
4. 总结
5. 参考文献
6. 相关推文
实证研究中工具变量是最常用的用来解决内生性的工具。关于工具变量的基础可见连享会推文:“Stata: 工具变量法 (IV) 也不难呀!”。
先来做一个复习,常规的工具变量法模型建立如下:
其中 是因变量, 是一个可能包含内生自变量的矩阵, 是工具变量矩阵(包含了 中所有外生变量)并且和 不相关。工具变量有两个基本的假设,相关性和排他性假设。其中相关性假设要求 和 相关,而排他性要求 和 不相关。关于排他性的解读和经典文献回顾,可以参考连享会推文 '工具变量-IV:排他性约束及经典文献解读'。
当 和 相关,并且工具变量的两个假设满足,OLS 的估计量是不一致的,而 IV 的估计是一致的。那么,首先让我们通过一个数值模拟来直观感受一下工具变量对于解决内生性的作用。
下面的 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)
查看所得结果 ( 的系数 b , b 的标准误,系数 b 相对应的 t 值,以及 over_rej ——是否拒绝 ) 的一些统计性质:
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 的估计量是无偏的。这个经典的例子体现出了在满足外生性和相关性情况下工具变量对于解决内生性的作用。
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。
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) ,但这些方法并不是外生性的充分条件。因此我们需要考虑在 不满足工具变量外生性条件下的识别。
传统的线性 IV 框架为:
工具变量的有效性可以用以下两种思路:
当清除掉工具变量 在 上的效果后,其对 没有直接影响。
和 无相关。
这两个表达方式在 simultaneous equation model 的框架下是等价的 (参考文献注释 3) ,但是二者提供了对于放松 IV 有效性的不同思路。下面我们分别考虑。
plausexog
)温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。
(这一部分还可以参考连享会推文:'IV-估计:工具变量不外生时也可以用!')
实际上,完整的工具变量框架可如下表示:
当 时便得到了传统的工具变量框架,此时外生性满足。而当 时,我们有两种方法。第一种方法直接假设 的上下界 ,从而估计出下列模型中 的一系列系数,并取其并集作为置信区间。
Conley et al. (2012) 将这种方法称为' Union of Confidence Intervals ' (UCI) 。 的区间根据研究者的先验信念来确定,实际上是衡量了工具变量违反外生性的程度。在估计时,工具变量的估计区间是这一系列 取值情况下的并集。在有多个工具的情况下,不同工具可以有不同的 假设区间。
除去直接假设 的上下界以外,我们还可以假设其分布。这种方法的好处是可以对 的不同取值赋予不同的权重。当假设 服从于某个分布时,我们可以得到 的渐进分布如下:
此时工具变量的方差多了一项,其中 。这个方法被 Conley 等人称作' Local to Zero ' (LTZ) 估计。
实际估计过程中,我们可以采取模拟方法。可假设 服从高斯分布 ,那么便得到了一个简单的关于 的解析区间。
如果选择假设 不服从高斯分布,那么可以采用 Conley et al. (2012) 提出的模拟算法来计算 的区间。
更加复杂的情况中,如果对外生性限制的结构还有更多的假设,还可以使用贝叶斯方法来进行。此时需要提供关于 的先验信息,关于模型参数的先验信息以及误差项的分布。感兴趣的读者可以参考 Conley et al. (2012) ,在 R
语言中可以使用 bayesm
(Rossi 2015) 命令。
这里工具变量违反外生性的先前信念在最终估计中起重要作用。决定一个确定的 来反映违反程度是需要经验支持的,并且会随着研究的不同而不同,所以作者的建议是还要另外执行敏感性分析。关于如何使用计量方法来确定关于 的先验信息,可以参考原文中作者给出的一些例子 (P7) 。
imperfectiv
)传统的工具变量法中,依靠不可观测的假设, ,来得到关于 的一致估计。而工具的区间估计可以通过假设方差的符号来进行。
我们用 来表示相关系数,用 表示协方差, 表示标准差。严格的工具变量法中要求 ,即工具和第二阶段的误差项无相关性。Nevo and Rosen (2012b) 使用工具和 之间相关系数的符号关系来替换此假设:
这个假设在 Nevo and Rosen (2012b) 的原文中称为 assumption 3 ,表达的涵义是工具 Z 和误差项的(弱)相关方向,与内生变量 X 和 误差项的相关方向一致。同时我们加入下面这个原文中的 assumption 4 。
假设 3 和假设 4 ,给出了' Imperfect Instrumental Variable '的定义,即一个工具,其和误差项的相关方向,与感兴趣的内生变量 X 和误差项的相关方向一致,但其内生性要小于此内生变量 X 。 因此我们可以定义一个工具变量 Z 的内生程度和内生变量 X 的内生程度的比例:
在无相关假设成立情况下,显然有 成立。尽管真实的 是未知的,但是当我们假设其已知的情况下,可以构造一个复合工具变量 ,这个工具变量是有效的,符合传统工具变量的无相关假设:
Nevo and Rosen (2012b) 的建议是使用 ,来代替这个复合的工具变量,其对 的估计值为 。根据 和 的符号的不同关系,我们可以得到 的单侧或者双侧区间估计。下表截取自 D Clarke, B Matta (2018) 的 table1 ,我们仅截取了 Panel A ,即一个工具的情况,关于更多工具的情形请读者自行参阅原文。
值得注意的是,在一个工具仅能估计出单边区间的情况中,如果使用两个及以上工具,则可以估计出两个区间。并且更多的工具通常会得到更窄的区间估计。
假设数据生成过程如下:
由公式可知,若 , 不可以使用 OLS 得到无偏估计。若 ,那么以 作为工具的 IV 估计同样不能得到一致估计。
这里,我们将 称作 ,名曰「复合误差项」。我们设 ,通过改变 —— 工具变量违反有效性程度;以及 —— 内生性程度来检验 plausexog
和 imperfectiv
命令的效果。
该命令的语法为 ( 详见 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
,为工具设定 的最大值,仅仅当method
为 uci
才可以设定。必须为每一个工具设定一个 gmax 。grid
,设定[ gmin , gmax ]区间内用于计算区间的点数。默认为 2 。仅当 method
为 uci
才可以设定。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 。
下面我们展示另外一个命令在同一个数据生成过程下的估计。这个命令的语法为:
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) 所关心的 和 (复合误差项)的相关系数,以及 和 之间的相关系数,来确定是否假设 4 成立。我们给出 plausexog
和 impefectiv
的估计结果。
可以观察到,几乎在所有的情况下区间估计都包含了真实的 。唯一的例外是在Panel A 中的最右边,在这种情况下,Nevo and Rosen (2012b) 的假设 4 不满足,所以 imperfectiv
命令应该设置 noassumption4
选项。
总体而言,尽管 Nevo and Rosen (2012b) and Conley et al.(2012) 的两种方法都允许设定工具变量和不可观测误差项之间很强的假设关系来进行区间估计。理想状况中,这些假设应该从 IV 不成立的经济理论中去寻找。感兴趣的读者可以参阅原文 P17 ,作者简单列举了两个根据理论来确定工具变量和误差项关系的例子。
工具变量法是经济学实证研究中用于探究因果关系的最常用的方法之一。工具变量的两个假设之一,相关性假设可以验证,而不可观测的外生性假设是无法严格论证的。在外生性假设不成立的情况下,我们可以通过假设工具和误差项之间的关系来估计真实系数 的一个区间。本文基于 Nevo and Rosen (2012b) and Conley et al.(2012) 的两篇论文介绍了其 stata
应用, impefectiv
和 plausexog
。数值模拟表明,这种区间估计的准确性依赖于对于工具和误差项假设的前定信念是准确的。实际研究时,我们可以从经济理论或者现实中来寻找前定信念。
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。
Note:产生如下推文列表的命令为:
lianxh IV 工具变量 内生, m
安装最新版lianxh
命令:ssc install lianxh, replace
🍓 课程推荐:2024 政策优化和机制分析专题
主讲老师:杨海生 (中山大学)
课程时间:2024 年 8 月 8-10 日 (三天)
授课地点:西安 · 西北工业大学 (线下授课)
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
联系客服