Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:罗清扬 (中山大学)
邮箱:luoqy27@mail2.sysu.edu.cn
目录
内生性是实证研究中常常会碰到的重要问题,长期以来,学者们从不同的思路和视角出发,为内生性问题的解决提供了多种多样的思路和方法。
控制函数法 (Control Function,CF) 是处理内生性变量问题的一个常用方法。和传统的 2SLS、IV 估计等方法一样,CF 也需要找到满足外生性条件和排他性约束的工具变量,并通过两阶段回归得到参数估计值。但不同于 2SLS 直接用第一阶段回归的拟合值替换原内生变量,CF 是将第一阶段回归的残差项作为新的控制变量加入原始模型中,相当于从原始模型的残差项中将与内生变量相关的部分单独提取出来进行控制。
在一些设定较为简单的模型中,CF 和 2SLS、IV 方法得到的估计结果是相同的,但 CF 可以更加方便且稳健地进行赫斯曼检验。另外,与传统工具变量法相比,CF 方法在随机系数模型和非线性模型的估计中效率更高,适用范围更广。
Jeffrey M. Wooldridge (2015) 系统地总结了 CF 方法在不同模型中的用法,下面选取其中常用且较有代表性的几个进行简析。
对于系数固定的线性模型而言,CF 法和 2SLS、IV 估计得出的结果是一致的。基本模型如下所示:
其中
其中
假设
其中
新得到的方程 (5) 中,扰动项
当内生变量为二元变量时,整体建模思路和之前基本一致,唯一的区别就在于第一阶段 (方程 2) 不再是对内生变量进行线性建模,而是建立一个会产生二元响应的模型,如下所示:
其中
其中
在更广泛的应用场景中,如果内生变量是非线性的,例如与外生变量进行交乘或者以高次方形式出现时,传统的 IV 估计或 2SLS 需要为含有内生变量的所有项分别寻找或创造可靠的工具变量,而 CF 法依旧可以采取与之前完全相同的两阶段回归进行估计,整个过程显得更加高效便利。
然而,CF 方法的便利性也并不是没有代价的,CF 估计过程的无偏性依赖于第一阶段回归中对内生变量模型设定的准确性。如果设定错误,那么最终的系数估计结果将是有偏的,这个问题在 IV 或 2SLS 估计中则不会出现。
在一些场景中,解释变量对被解释变量的影响可能存在异质性,这就产生了随机系数模型,如下所示:
其中,
首先依旧通过 (2) 的 OLS 估计得到
则 CF 的第二阶段方程就可以写作:
将
上述方法还可以进一步扩展:
CF 法在非线性模型内生性问题的处理上显著优于传统的工具变量方法,最容易被使用的场景就是 probit/logit 模型 (下述以 probit 模型的建模过程为例)。probit 基本模型如下:
假设 (2) 和 (4) 依旧成立,则
估计过程中只需将第一阶段回归得到的残差拟合值
正如上文所示,控制函数法在检验某个变量的内生性时具有显著的优势,同时具备极强的可拓展性,然而,CF 法的使用依旧受限于传统工具变量的限制条件:相关性约束和排他性约束,即:
排他性约束即所使用的工具变量只能通过内生变量对被解释变量产生影响,而不能存在其他的影响途径。关于排他性约束的检验,虽然已有学者提出了一些可行的方法,但大都对模型设定和基本假设有着严格的要求,如果不能满足这些方法的前提条件,那么只能通过大量的理论分析、定性描述或者借助前人的研究结论来进行论证。
因此,在使用工具变量的一类文献中,排他性约束的证明过程常常容易受到质疑。
D’Haultfoeuille, X., S. Hoderlein, Y. Sasaki (2021) 在 CF 方法的基础上,没有对结构方程的函数形式进行任何约束,在一定假设条件下提出了对排他性约束进行检验的方法。如果排他性约束没有得到满足,还可以适当放松之后再进行估计。为了使讨论具有较强的普适性而不是困于某种特定的函数模式,文章基于下面的基本模型展开:
其中,
排他性约束检验需要有以下假设存在:
对于这部分样本,工具变量
则对于工具变量和内生变量不相关的样本个体,
所以只需要对 (19) 进行检验就可以明确排他性约束是否成立了,因此原文对
如果排他性约束的检验没有通过,此时需要在工具变量对因变量有其他影响途径的条件下进行估计,放松约束后的 CF 估计方法延续了排他性约束检验过程的整体思路,以如下的简单线性模型举例:
首先对于工具变量和内生变量局部不相关的子样本中,当保持
接下来再对
命令安装
ssc install testex
命令语法
testex y x z [if] [in] [, numboot(real)]
number(real)
用于设置计算检验统计量的关键值过程中进行的 bootstrap 次数,默认为 1000 次。
本文为了能够对线性和非线性模型都进行检验,直接使用 Stata 生成模拟数据。
数据生成过程如下:
. set obs 1000 // 数据量为1000
. set seed 0
. gen Z = rbinomial(1,0.5) // Z是工具变量
. gen eta = runiform(0,1) // eta是一阶回归中的扰动项
. gen e0=rnormal(0,1) // e0是总模型中的扰动项
. scalar e1 = 1 // e1是内生变量 (X) 前面的系数
. scalar beta=0 // beta是工具变量前面的系数
. gen X=eta*(1+Z) // 一阶回归生成X
. gen Y=e0+e1*X+beta*Z
此时
. testex Y X Z
------------------------------------------------------------------------------
Null hypothesis: Exclusion restriction is satified.
------------------------------------------------------------------------------
KS statistic = 1.468
p-value = 0.661
-------------------------
Fail to reject the null hypothesis at the significance level of 10%.
Fail to reject the null hypothesis at the significance level of 5%.
Fail to reject the null hypothesis at the significance level of 1%.
------------------------------------------------------------------------------
在 1%、5% 和 10% 的显著性水平上都不可以拒绝原假设,即接受排他性约束成立的原假设。
数据生成过程如下:
. scalar beta=1 // beta是工具变量前面的系数
. drop X Y
. gen X=eta*(1+Z) // 一阶回归生成X
. gen Y=e0+e1*X+beta*Z
此时
. testex Y X Z
------------------------------------------------------------------------------
Null hypothesis: Exclusion restriction is satified.
------------------------------------------------------------------------------
KS statistic = 3.807
p-value = 0.007
-------------------------
Reject the null hypothesis at the significance level of 10%.
Reject the null hypothesis at the significance level of 5%.
Reject the null hypothesis at the significance level of 1%.
------------------------------------------------------------------------------
在 1%、5% 和 10% 的水平上都拒绝了原假设,说明不满足排他性约束。
数据生成过程如下:
. * DGP3:满足排他性约束的非线性模型
. gen Z1 = rbinomial(1,0.5) //Z是工具变量
. gen eta1 = runiform(0,1) //eta是一阶回归中的扰动项
. gen _e0=rnormal(0,1) //e0是总模型中的扰动项
. scalar _e1 = 1 //e1是内生变量 (X) 前面的系数
. scalar beta1=0 //beta是工具变量前面的系数
. gen X1=eta1*(1+Z1) //一阶回归生成X
. gen Y1=0
. gen Yhat=_e1*X+beta*Z+_e0
. replace Y1=1 if Yhat>0
此时
. testex Y1 X1 Z1
------------------------------------------------------------------------------
Null hypothesis: Exclusion restriction is satified.
------------------------------------------------------------------------------
KS statistic = 0.141
p-value = 0.989
-------------------------
Fail to reject the null hypothesis at the significance level of 10%.
Fail to reject the null hypothesis at the significance level of 5%.
Fail to reject the null hypothesis at the significance level of 1%.
------------------------------------------------------------------------------
在 1%、5% 和 10% 的显著性水平上都没有拒绝原假设,即接受满足排他性约束的原假设。
数据生成过程如下:
. * DGP4:不满足排他性约束的非线性模型
. scalar beta1=1 // beta是工具变量前面的系数
. drop X1 Yhat Y1
. gen Y1=0
. gen X1=eta1*(1+Z1) // 一阶回归生成X
. gen Yhat=_e0+_e1*X1+beta1*Z1
. replace Y1=1 if Yhat>0
此时
. testex Y1 X1 Z1
------------------------------------------------------------------------------
Null hypothesis: Exclusion restriction is satified.
------------------------------------------------------------------------------
KS statistic = 4.353
p-value = 0.010
-------------------------
Reject the null hypothesis at the significance level of 10%.
Reject the null hypothesis at the significance level of 5%.
Reject the null hypothesis at the significance level of 1%.
------------------------------------------------------------------------------
在 1%、5% 和 10% 的显著性水平上都拒绝了原假设,说明确实不满足排他性约束。
本文从 CF 估计法的基本原理出发,对其常见的模型形式进行了梳理,在此基础上介绍了 CF 框架下对工具变量排他性约束进行检验的基本思想,并呈现了相关命令的 Stata 实操过程。
Note:产生如下推文列表的 Stata 命令为:
lianxh 工具变量, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
和songbl
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh