Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:林旭姿 (中山大学)
E-mail:lamyc@mail2.sysu.edu.cn
Source: Słoczyński, Tymon. 2020. “Interpreting OLS Estimands When Treatment Effects Are Heterogeneous: Smaller Groups Get Larger Weights.” 2021 Stata Conference 11, Stata Users Group. The Review of Economics and Statistics, 1–27. -PDF-
目录
本推文基于 Tymon Sloczynski 于 2019 年发表的文章,对其进行了核心思想与研究方法的提炼与分析。作者 Sloczynski 深入地解释了当处理效应异质时,OLS 估计量
OLS 估计量
现有的研究主要是在保持控制变量 x 的向量不变的情况下,使用线性模型研究二元变量 (干预) 在结果的期望值上的效应。尽管存在着大量半参数或者非参数影响着平均处理效应,大量的研究人员还是坚持使用传统回归方法来进行分析。特别的,许多文献使用了最小二乘法 (OLS) 来估计
其中,
然而,已有大量文献强调了处理效应异质时对于 OLS 估计的影响。由于在处理效应异质情况下,由 OLS 估计出的两个组别中的平均效应系数的权重是与每个组别中观测值在总体里的占比反向相关的。这时候,当越多的个体被干预时,相比于其观测值在总体中的占比,ATT 系数的权重就越小。
若干预组和对照组观测值的占比存在差异,两个组别中权重赋予的差异 (即各自赋予的权重并不等于两组观测值在总体中的占比) 则会使得 OLS 估计值
NSW 项目 (National Supported Work Demonstration) ,即美国国家支持工作示范项目,是一个暂时性的工作提供项目,旨在帮助缺乏基本工作技能的残疾人士进入劳动力市场,并且能够为残疾人士提供工作机会与庇护场所。与其他支持性项目不同的是,NSW 项目随机抽取申请者为其提供工作机会与培训,因此被选中的残疾人士(干预组)便能享受到 NSW 项目带来的全部福利,而那些未被选中的申请者 (对照组)只能自行谋生。
然而,在该项目中,其处理效应却存在着异质性:对于参与了 NSW 项目的劳工 (干预组) 来说,分配给他们的工作往往是不同的。例如,有的人被分配到了加油站工作,有的人被分配到了打印店工作。特别的,男性与女性被分配到的工作往往十分不同:女性往往被分配到服务业,而男性总是被分配到制造业。在由于分配导致的处理效应异质的情况下,本推文将在之后的小节利用 NSW-CPS 的数据,分析该项目对于劳工收入的影响。
如果用
并且,我们的关注点在于该式中的
该线性模型是真实倾向得分的最好的线性估计。 然而,由于模型 (2) 中可能包含幂次项或者交叉项,我们可以把模型 (2) 看作是部分线性的。
在定义了
与
值得注意的是,模型 (4) (5) (6) 是被定义出来的,它们能够保证最终推导结果的存在性与唯一性。
为了进行进一步的推导,我们还需要进行如下假设:
假设 1.
假设 2.
其中,
在以上假设的基础上,我们可以将
对于第
基于假设 1 和假设 2 而得出的以上估计量是具有“因果解释的”,我们将在下一节进行详细的论证。
在假设 1 与假设 2 的基础上,基于一系列的数学推导 (本推文省略了证明过程,有兴趣的读者可以下载作者原文深入学习) ,我们可以得出以下具有普遍性的结论:
结论 1. (OLS 加权平均数的说明)
基于假设 1 与假设 2,
其中,
从结论 1 可以看出 OLS 估计量
其中,
尽管结论 1 在假设 1 与假设 2 的条件下具有普遍性,我们仍然不能保证
假设 3.
假设 4.
假设 3 和假设 4 保证
因此,基于以上两个假设与结论 1,我们可以得到如下推论。
推论 1. (OLS 因果关系的说明)
基于假设 1,2,3 和 4,有
这个推论是易于证明的。由于假设 3 表明
推论 1 揭示了,在假设 1,2,3 和 4 的前提下,从结论 1 中得到的 OLS 权重
回想我们最初使用模型 (1) 以及 OLS 的动机,是因为
直觉告诉我们,如果我们想在保证普遍性的情况下预测“是什么”,第 1 组
从上式可以得出,当第 1 组变“大”时,
然而,如果第 1 组变“大”了,而我们的目标是想要预测“未能观测到的结果”,我们就需要赋予
其中,
在这一小节,我们将会把将
在假设 3 与假设 4 的基础上,我们将在如下内容探讨异质性导致的偏误的来源。
推论 2. 在假设 1 与假设 2 的基础上,有
其中,
推论 3. 在假设 1 与假设 2 的基础上,有
同样,在假设 1,2,3 和 4 下,我们可以得到
利用简单的代数学即可完成推论 2 与推论 3 的证明,感兴趣的读者可以自行推导。
以上两个推论表明,不管我们关注的是
假设 5.
有了假设 5,
在假设 5 的基础上,结合推论 2 与推论 3,当
推论 4 在假设 1,2 和 5 的基础上
同样,在假设 1,2,3,4 和 5 的基础上,
利用简单的代数学即可完成推论 4 的证明,感兴趣的读者可以自行推导。
推论 4 说明了在特定条件下,OLS 颠倒了
本小节获得的结论将有助于研究人员在处理效应异质时分析 OLS 估计量的含义。接下来本推文将引入实例进行 Stata 实操,借助实例以便更为形象地对 OLS 估计量进行分析。
hettreatreg
可用于处理效应异质时的线性估计。初次使用,需要通过ssc install hettreatreg, all
以安装外部命令。利用help hettreatreg
,获得其语法如下:
hettreatreg indepvars [if] [in], outcome(varname) treatment(varname) [options]
indepvars
:解释变量,可搭配if
、in
等条件语句。outcome()
:设定一个结果变量treatment()
:设定一个二元干预变量options
:包括noisily
,展示模式估计过程的输出结果;以及vce(vcetype)
,其中,vcetype
可为ols
、robust
、cluster
、bootstrap
、jackknife
、hc2
、hc3
等。我们使用的是 Stata 自带数据集 nswcps.dta 。基于该数据集,我们来进行 Stata 实操。
首先我们用regress
命令进行一次估计。
regress re78 treated age-re75,vce(robust)
Linear regression Number of obs = 16,177
F(10, 16166) = 1718.20
Prob > F = 0.0000
R-squared = 0.4762
Root MSE = 7001.7
------------------------------------------------------------------------------
| Robust
re78 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
treated | 793.587 618.6092 1.28 0.200 -418.9555 2006.13
age | -233.6775 40.7162 -5.74 0.000 -313.4857 -153.8692
age2 | 1.814371 .5581946 3.25 0.001 .7202474 2.908494
educ | 166.8492 28.70683 5.81 0.000 110.5807 223.1178
black | -790.6086 197.8149 -4.00 0.000 -1178.348 -402.8694
hispanic | -175.9751 218.3033 -0.81 0.420 -603.8738 251.9235
married | 224.266 152.4363 1.47 0.141 -74.52594 523.0579
nodegree | 311.8445 176.414 1.77 0.077 -33.9464 657.6355
re74 | .2953363 .0152084 19.42 0.000 .2655261 .3251466
re75 | .4706353 .0153101 30.74 0.000 .4406259 .5006447
_cons | 7634.344 737.8143 10.35 0.000 6188.146 9080.542
------------------------------------------------------------------------------
然后我们再使用hettreatreg
命令进行一次相同的估计。
hettreatreg age-re75 , outcome(re78) treatment(treated) noisily vce(robust)
Linear regression Number of obs = 16,177
F(10, 16166) = 1718.20
Prob > F = 0.0000
R-squared = 0.4762
Root MSE = 7001.7
------------------------------------------------------------------------------
| Robust
re78 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
treated | 793.587 618.6092 1.28 0.200 -418.9555 2006.13
age | -233.6775 40.7162 -5.74 0.000 -313.4857 -153.8692
age2 | 1.814371 .5581946 3.25 0.001 .7202474 2.908494
educ | 166.8492 28.70683 5.81 0.000 110.5807 223.1178
black | -790.6086 197.8149 -4.00 0.000 -1178.348 -402.8694
hispanic | -175.9751 218.3033 -0.81 0.420 -603.8738 251.9235
married | 224.266 152.4363 1.47 0.141 -74.52594 523.0579
nodegree | 311.8445 176.414 1.77 0.077 -33.9464 657.6355
re74 | .2953363 .0152084 19.42 0.000 .2655261 .3251466
re75 | .4706353 .0153101 30.74 0.000 .4406259 .5006447
_cons | 7634.344 737.8143 10.35 0.000 6188.146 9080.542
------------------------------------------------------------------------------
"OLS" is the estimated regression coefficient on treated.
OLS = 793.6
P(d=1) = .011
P(d=0) = .989
w1 = .983
w0 = .017
delta = -.971
ATE = -6751
ATT = 928.4
ATU = -6840
OLS = w1*ATT + w0*ATU = 793.6
可以看出,hettreatreg
估计出的系数与regress
是相同的,只不过hettreatreg
报告出了更多的结果。其中, ols 为干预变量的回归系数,
NSW-CPS 数据包含 1975 年 12 月进入 NSW 项目、1978 年离开 NSW 项目随机化实验的男女性。因为个体是 1975 年 12 月进入实验,因而,1974 年和 1975 年的收入是干预前变量,没有收到培训的影响。1978 年的收入是参与 NSW 项目培训过后的结果,收到 NSW 项目培训的影响。基于该数据集,我们利用 OLS 来进行结果复现。
回归模型为:
其中,
回归结果复现代码和结果如下:
sysuse nswcps,clear //针对3.1的引例,导入NSW-CPS数据库
count if treated==1 //计算干预组个体数量
scalar N_treated = r(N)
count if treated ==0 //计算控制组个体数量
scalar N_untreated = r(N)
scalar rho_hat=N_treated/(N_treated+N_untreated) //生成rho的估计值,即干预组个体在总体的占比
scalar w0_star=rho_hat //生成w0_star估计值
scalar delta_star=2*rho_hat-1 //生成delta_star估计值
hettreatreg re75 , outcome(re78) treatment(treated) noisily vce(robust) //仅将1975年的收入作为解释变量进行回归
hettreatreg age-nodegree , outcome(re78) treatment(treated) noisily vce(robust) //不考虑1974年与1975年的收入进行回归
hettreatreg age-nodegree re75 , outcome(re78) treatment(treated) noisily vce(robust) //不考虑1974年的收入进行回归
hettreatreg age-re75 , outcome(re78) treatment(treated) noisily vce(robust) //回归时所有协变量均被包括
根据回归结果,我们可以看到,对于任何一种情况而言,
在表格的第 (4) 列中,