温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
作者:张子楠 (浙江财经大学)
邮箱:zinanzh@gmail.com
目录
在最近的一篇推文中 (「你的几百个回归结论可能都是错的,只因少做了这件事......」),作者简明扼要地介绍了「外部有效性 (External Validity),有时也称为「外部效度」」的概念,并给出了一些通俗易懂的例子。本文则来点硬核干货,介绍一下如何在 Stata 中实现「外部有效性」的检验。
在政策评估中,对政策效应的估计大多集中在处理效应为常数,或者说平均处理效应 (ATE) 的情形。此时,隐含地假设了因果效应具有同质性,即所有个体处理效应都一样。然而,如果放宽这个假设,引入处理效应的异质性,那么就需要考虑一个问题:当类似于以下情况发生变化时,研究结论是否会改变?
对上述问题的回答,实际上就是在评价估计结果的外部有效性问题。《基本无害的计量经济学》中有一个例子可以很好说明这个问题。具体来看:
但是,研究一的估计结果却不能用在研究二中。这是由于两个样本中个体并不相同,即研究一中更接近随机,而研究二中那些志愿参军的人员,可能本身就是收入偏低的劳动人群。
此外,有关「外部有效性」的概念,也可以参考如下文章:
在工具变量 (IV) 的分析框架中,我们通过引入工具变量来创造一个因果链条:通过工具变量 Z 影响我们感兴趣的变量
同样以上面参军例子来解释。Z 为随机抽取的资格,
因此,当依从工具变量者 (compliers) 只占实验人群一部分时,IV 估计出来平均因果效应往往不等于所有
那么,对于 IV 估计方法,一个需求自然而然就产生了:当随机实验中不只是 compliers 人群时,如何在工具变量局部因果框架下,去估计所有实验组个体的平均因果效应呢?或者说,如何评估该实验中 LATE 的外部有效性呢?
幸运的是,利用异质性因果效应和边际处理效应 (MTE) 的内容,我们在运用工具变量时,能在实现识别内部效度同时,也兼顾外部有效性。更重要的是,不仅可以判断是否 LATE 结果等于全部人群,也能在不相等时,寻找将 LATE 结果外推到全部实验组人群的策略。Kowalski (2016,2018) 便是基于 MTE 的分析框架,以美国 Oregon 州开展的 Oregon Health Insurance Experiment 实验 (以下简称为 Oregon 实验) 为例,分析了 LATE 的外部有效性问题。
同时,作者还编写了两个 Stata 命令 (mtebinary
和 mtemore
) 来实现上述操作。其中,mtemore
为 mtebinary
的旧版本,两者输出结果的含义较为相似。因此,本文将着重介绍 mtebinary
的用法。此外还有一个命令 cqiv
,同样是关于 IV 估计的异质性分析,也同样涉及到 LATE 效应的外部有效性问题。关于 cqiv
命令的详细介绍,请参考计量经济圈推文「前沿: 删失数据分位数工具变量(CQIV)估计, 做删失数据异质性效应分析」。
接下来,本文将从以下四个部分展开介绍:首先介绍 Oregon 实验,并在 LATE 框架下进行刻画;其次介绍 Kowalski (2016,2018) 的识别策略;再次使用 mtebinary
命令以 Oregon 实验为例,分析工具变量法 LATE 效应的外部有效性;最后展示命令 mtemore
和 cqiv
的用法。
在 2008 年,Oregon 州决定将针对低收入人群的公共医疗补助的覆盖范围进行扩张。但由于资金有限,不能将所有低收入人群都纳入医疗补助范围,于是 Oregan 州决定通过抽签的方式,来决定那些在候选名单上的人,以及谁有资格获得医疗补助。据统计,大约有 75000 人进入了候选名单,而最终只有 30000 人获得了申请医疗补助资格。这样,3000 个获得公共医疗补助的人便构成了实验组样本,而剩下的 45000 人则成为对照组。这种抽签方式,相当于创造了一个随机实验,Oregon 实验也因此被认为是随机实验的典范。
Kowalski (2016,2018) 研究了 Oregon 实验对该州急救室使用情况的影响。根据 Oregon 州的规定,即使病人没有保险,州内急救室都不能拒绝对其救治,从而有一部分无保险人群会通过急救室这个渠道获得公共医疗补助。自然,公共医疗补助覆盖人群范围的扩大,会影响到急救室的使用情况。
设定急救室使用情况为
然而在 Oregon 实验中,可能存在 compliers、always-takers 和 never-takers 这三类人群。当人们报名参与 Oregon 实验申请医疗补助时,并不需要提供证明他们符合条件的材料 (比如低收入证明),材料只有抽签成功后才被要求提供。这样,
Kowalski (2016,2018) 分析了在 MTE 框架下,当内生变量和工具变量均为二元变量时,如何识别 always-takers 和 never-takers 两类人群对实验平均因果效应的影响。为此,Kowalski 引入了干预概率 (treatment probability) 这个概念。
干预概率是指进入处理组的概率。Kowalski (2016,2018) 的一个核心假设是:个体选择是否要进入处理组,取决于其加入后的预期效用是否大于不加入的预期效用。其又等价于:如果不可观测的加入净成本 (
下图为 Kowalski (2018) 给出的示意图。横轴表示
以
在此基础上,Kowalski (2016,2018) 界定了三种边际概念:MUO(p), MTO(p) 和 MTE(p)。其中,MUO(p) 是预期干预概率为 p 时的对照组结果,MTO(p) 是指预期干预概率为 p 时实验组结果,MTE(p) 为预期干预概率为 p 时的实验组与对照组的差异。在以上准备工作的基础上,我们就可以进行正式的分析了。
首先,通过计算
其次,加上 MTE 分析框架里经常使用的线性假设,就可以算出
最后,我们有如下结论:
mtebinary
命令安装如下:
ssc install mtebinary, replace
mtebinary
的语法格式为:
mtebinary outcome (endogvar = instrumen) [covariates] [, options]
其中,
outcome
为结果变量,可以是二元、离散或者连续变量;endogvar
为内生变量,必须是二元变量;instrument
为工具变量,必须是二元变量;covariates
为协变量。opitions
主要包括两类:
Estimation
设置的选项,其中,
poly(#)
括号里填估计时回归函数的幂,默认为 1 次,即线性;reps(#)
括号里填 bootstrap
的次数,默认为 200;seed(#)
括号里填 bootstrap
的随机种子数,默认是 6574358;bootsample(opt)
括号里填 bootstrap
的方式,可以是 strata(varlist)
,cluster(varlist)
,或者 weight
;weightvar(varname)
括号里填需要赋予权重的变量名,默认没有赋予权重;Post-Estimation
的相关选项,其中,
summarize(varlist)
括号里填协变量名称,输出这些协变量的三类人群的统计描述;graphsave(graphsave)
括号里填输出图像的名称,默认名称为 mtegrapha。下面以没有协变量、MTE 效应为线性为例来展示命令的用法和结果。相关代码如下:
. net get mtebinary //下载数据 mtebinary_data.dta 到当前文件夹
checking mtebinary consistency and verifying not already installed...
copying into current directory...
copying mtebinary_data.dta
copying mte1.eps.pdf
copying mte1_cov.eps.pdf
copying mte1_cov_quad.eps.pdf
ancillary files successfully copied.
. use mtebinary_data.dta, clear
. mtebinary Y2 (D = Z), reps (0) summarize (age female) graphsave (mte)
其中,
Y2
为急救室使用情况,D
为是否接受医疗服务,Z
为是否有资格医疗补助;reps(0)
表示 bootstrap
次数为 0;summarize(age female)
表示显示 compliers、always-takers 和 never-takers 这三类人群的 age
和 female
的统计性质;graphsave (mte)
将图形结果保存名为 mte 的 pdf 文件。主要回归结果为三个表和两个图,具体来看。
第一个表格为 "Average Characteristics of Always Takers, Compliers and Never Takers",如下所示。其中第一列显示了所有人群的结果,第二列显示了 always-takers 人群的结果,第三列显示了 never-takers 人群的结果,第四列为 always-takers 人群和 compliers 人群的差异,第五列为 compliers 人群和 never-takers 人群的差异。从变量的统计结果,可以计算出
Beginning Estimation of Marginal Treatment Effects (MTE) with a Binary Instrument.
MTE has been specified as a polynomial of order 1.
The number of bootstrap replication is 0
NOTE: $Y$ou have specified zero bootstrap replication. No standard error will be computed
Average Characteristics of Always Takers, Compliers and Never Takers
-------------------------------------------------------------------
All (1) (2) (3) Differences
Always Compliers Never (1)-(2) (2)-(3)
Takers Takers
-------------------------------------------------------------------
age 49.25 54.32 50.00 44.65 4.32 5.35
female 0.56 0.27 1.00 0.79 -0.73 0.21
Count 500.00 175.00 125.00 200.00
-------------------------------------------------------------------
可以发现,不同类型人群间存在较为明显的统计差异。比如对于年龄而言,always-takers 人群年平均龄大于 compliers 人群 4.32 岁,约 8.6%;而 compliers 人群年龄平均大于 never-takers 人群 5.35 岁,约 10.67%。在这里,always-takers 人群最大,他们本身对医疗补助的需求也最大,而 never-takers 人群年龄最小,他们对医疗补助需求最小。
实际上,他们是否参与,部分可能是逆向选择的结果。可见,如果忽略不同类别间人群的显著差异,将 LATE 效应当成全部人群的平均处理效应,很有可能导致高估或低估的错误。同样,性别变量的组间差异也存在类似的性质。
第二个表格为 "Marginal Treated Outcome, Untreated Outcome, and Treatment Effect",分别给出了三种效应的斜率和截距。有了斜率和截距,我们就可以将仅适用于 compliers 人群的 LATE 效应外推到 never-takers 人群和 always-takers 人群。
Marginal Treated Outcome, Untreated Outcome, and Treatment Effect
---------------------------
Intercept Slope
---------------------------
MTO 965.00 -600.00
MUO 550.00 -400.00
MTE 415.00 -200.00
---------------------------
第三个表格为 "Average Outcome of Always Takers, Compliers, and Never Takers",给出不同人群的处理效应和非处理效应。计算方法为利用第二个表 中的结果,分别计算 MTO,MUO 和 MTE 在
Average Outcome of Always Takers, Compliers, and Never Takers
----------------------------------------------------------------------------
Always Compliers Never Untreated Treated
Takers Takers Outcome Test Outcome Test
(1) (2) (3) (2)-(3) (1)-(2)
----------------------------------------------------------------------------
Treated Outcome 860.00 680.00 485.00 180.00
Untreated Outcome 480.00 360.00 230.00 130.00
Treatment Effect 380.00 320.00 255.00
----------------------------------------------------------------------------
对于 IV 计算出来的 LATE,在这里就等于第(2)列中
. ivregress 2sls Y2 (D=Z)
Instrumental variables (2SLS) regression
Number of obs = 500
Wald chi2(1) = 52.50
Prob > chi2 = 0.0000
R-squared = 0.8103
Root MSE = 120.95
---------------------------------------------------------------
Y2 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------+-------------------------------------------------------
D | 320.000 44.165 7.25 0.000 233.439 406.561
_cons | 371.000 20.597 18.01 0.000 330.631 411.369
---------------------------------------------------------------
Instrumented: D
Instruments: Z
此外,回归结果还包含了两个图形,如下所示。左图为 "Average outcomes",对应第三个表的结果。右图为 "MTO(p), MUO(p), MTE(p)",对应第二个表的结果。观察右图,利用处理效应连续性的假定,对于始终
mtemore
命令安装如下:
ssc install mtemore, replace
mtemore
命令语法如下:
mtemore outcome (endogvar = instrument) [covariates] [, options]
需要注意的是,mtemore
中 bootstrap
次数不能为 0,最低为 2 次。
/*
. net get mtebinary //下载数据 mtebinary_data.dta 到当前文件夹
*/
. use mtebinary_data.dta, clear
. mtemore Y2 (D = Z), summarize(age female) reps(2) graphsave(mtemore)
cqiv
命令安装如下:
ssc install cqiv, replace
cqiv
命令语法如下:
cqiv depvar [varlist] (endogvar = instrument) [if] [in] [weight] [, options]
. net get cqiv //下载数据 alcoholengel.dta 到当前文件夹
checking cqiv consistency and verifying not already installed...
copying into current directory...
copying alcoholengel.dta
copying cqiv_article.pdf
ancillary files successfully copied.
. use alcoholengel, clear
. cqiv alcohol logexp2 nkids (logexp = logwages nkids), ///
quantiles(25 50 75)
限于篇幅,mtemore
和 cqiv
命令结果不在一一展示。
Note:产生如下推文列表的 Stata 命令为:
lianxh IV, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, $D$ID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh