Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:甘徐沁 (复旦大学)
邮箱:jesse_gan@foxmail.com
目录
在之前推文中,我们简单介绍了 Bartik 工具变量的缘起,以及基于其最新发展出的 Shift Share IV ( Bartik 工具变量和 Shift Share IV 仅是两个不同的名字,指代同一事物,但理解角度不同)。在本文中,我们来介绍一下基于 Shift Share IV 等价理论编写的 Stata 命令:ssaggregate
。
为了更加清晰地理解 Shift Share IV 背后的原理,我们先来回顾一下 Borusyak 等 (2020) 提出的 Bartik 工具的 Shift Share IV 等价理论。
考虑研究主题是劳动力的供给水平和工资之间的关系。主要被解释变量
其中
其中
当我们假设数据并非 iid 生成时,Bartik 工具变量回归的矩条件可以写成:
这个条件描述了 Bartik 工具和第二阶段误差项之间的正交关系,其中
其中
在产业 (冲击) 层面的正交等价条件可以表达为:
其中,
由此可以看出,右边的条件成立时,Bartik 工具的外生性成立。上式中的等价关系为我们引出 Shift Share IV 估计等价理论提供了灵感。接着,使用 Bartik 工具变量对原始方程进行回归所得的系数
其中
证明:
上述证明中最后边的等式即以
由此我们可以概括性地将 Bartik 工具变量的估计等价关系记忆为:地区层面的工具变量回归,等价于将变量转换为冲击 (或称产业) 层面后的工具变量回归。前者的估计单位,或称每个观测值为地区,而后者中,每个观测值为产业。当然需要注意,在这里两个工具变量回归使用的权重并不相同,前者使用的权重是地区的劳动力份额,而后者使用的权重为
当然 Shift Share IV 的理论建立并不仅仅包括了此估计等价理论,更为重要的是我们可以通过将地区层面的 Bartik 工具变量估计视为等同于冲击层面的 Shift Share IV 估计,于是 “随机分配” 的冲击便可以使得 Shift Share IV ——以及等价的原 Bartik 工具变量,得到真实
既然 Shift Share IV 的实施需要先将数据从产业层面转换为冲击层面, Shift Share IV 的几位作者便编写了 ssaggregate
命令来满足这一前提需求。这个变量实际上是先将地区层面的被解释变量和解释变量对控制变量残差化,再根据冲击比例在冲击层面上进行加权平均,即
*命令安装
ssc install ssaggregate, replace
*命令语法
Using "long" exposure weights, saved separately (executes faster):
ssaggregate varlist [if] [in] [weight], n(varlist) s(varname) l(varlist) sfilename(filename) [other options]
Using "wide" exposure weights, saved in memory:
ssaggregate varlist [if] [in] [weight], n(varname) s(stubname) [other options]
ssaggregate
提供了如下的选项:
t(varlist)
:时期识别变量;controls(strings)
:控制变量组,用于 partialling out 获得残差,可设定多组。如 controls("var1" "var1 var2" "var1 var2 var3")
;absorb(strings)
:固定效应变量组,用于吸收固定效应,可设定多组。如 absorb("f1" "fe1 fe2")
;addmissing
:生成 “缺失产业” 变量。如果产业权重是 "long" 格式,那么必须设定如下四个选项:
n(varlist)
:产业识别变量;sfilename
:"long" 数据格式的产业权重数据文件;s(varname)
:产业权重变量;l(varlist)
:地区识别符。同时,我们可以使用 Stata 常规的加权选项,将地区劳动力份额作为权重包括进来。由于作者提示若将产业权重数据以 "long" 格式储存在额外的一份数据集中,会使得命令执行速度更快,故我们在本文中仅演示 "long" 格式的命令。
在 Autor 等 (2013) (以下简称 ADH) 的文章中,三位作者研究了美国 “日益增长的中国进口产品” 这一事实如何影响了美国劳动力市场。根据贸易理论,在 1990-2010 年间,中国因为转型市场经济体带来的生产率上升,以及加入世界贸易组织带来的贸易成本下降,大大增强了中国制造业产品的国际竞争力。
在这 20 年间,美国对于中国产品的进口大大增加,这可能会使得美国对于本土制造业的需求下降,从而对美国本土劳动力市场产生一系列负面效果,如制造业劳动力就业率下降,劳动力从制造业转移到其他产业等。
ADH 的文章中,作者关注的变量如下:
此处使用的数据来源于 Shift Share Share IV 作者 Borusyak 的 Github 仓库,链接为:https://github.com/borusyak/shift-share。我们首先使用地区层面的回归来复制 ADH 原文表 3 的第 6 列,回归为两期混合截面。在下面的回归中:t2 表示第二期,l_shind_manuf_cbp 为期初的地区制造业就业份额,reg* 为一系列普查区域类别。
l_sh_popedu_c、l_sh_popfborn、l_sh_empl_f、l_sh_routine33、l_task_outsource 为5个控制变量,分别是大学教育人群比例、外国出生人群比例、女性就业比例、程序化工作比例、工作离岸外包指数。 wei 实际上是
. lxhuse location_level.dta, clear
. ivreg2 y (x=z) t2 l_shind_manuf_cbp reg* l_sh_popedu_c l_sh_popfborn ///
> l_sh_empl_f l_sh_routine33 l_task_outsource [aw=wei], cluster(clus)
(sum of wgt is 2.0000e+00)
IV (2SLS) estimation
--------------------
Estimates efficient for homoskedasticity only
Statistics robust to heteroskedasticity and clustering on clus
Number of clusters (clus) = 48 Number of obs = 1444
F( 16, 47) = 42.53
Prob > F = 0.0000
Total (centered) SS = 4396.587068 Centered R2 = 0.3429
Total (uncentered) SS = 12720.4953 Uncentered R2 = 0.7729
Residual SS = 2889.068933 Root MSE = 1.414
-----------------------------------------------------------------------------------
| Robust
y | Coefficient std. err. z P>|z| [95% conf. interval]
------------------+----------------------------------------------------------------
x | -0.596 0.099 -6.04 0.000 -0.790 -0.403
t2 | -0.242 0.401 -0.61 0.545 -1.028 0.543
l_shind_manuf_cbp | -4.022 1.314 -3.06 0.002 -6.598 -1.446
reg_midatl | 0.313 0.281 1.11 0.266 -0.238 0.864
reg_encen | 1.261 0.337 3.74 0.000 0.600 1.921
reg_wncen | 1.624 0.372 4.36 0.000 0.894 2.353
reg_satl | -0.288 0.234 -1.23 0.217 -0.746 0.170
reg_escen | 1.076 0.335 3.22 0.001 0.420 1.732
reg_wscen | 0.732 0.231 3.16 0.002 0.278 1.185
reg_mount | 0.402 0.257 1.56 0.118 -0.102 0.906
reg_pacif | 0.027 0.191 0.14 0.888 -0.348 0.401
l_sh_popedu_c | 0.013 0.012 1.08 0.281 -0.011 0.037
l_sh_popfborn | 0.030 0.011 2.80 0.005 0.009 0.052
l_sh_empl_f | -0.006 0.024 -0.24 0.811 -0.054 0.042
l_sh_routine33 | -0.245 0.064 -3.84 0.000 -0.370 -0.120
l_task_outsource | -0.059 0.237 -0.25 0.803 -0.523 0.405
_cons | 6.279 1.937 3.24 0.001 2.482 10.075
-----------------------------------------------------------------------------------
Underidentification test (Kleibergen-Paap rk LM statistic): 16.880
Chi-sq(1) P-val = 0.0000
------------------------------------------------------------------------------
Weak identification test (Cragg-Donald Wald F statistic): 533.322
(Kleibergen-Paap rk Wald F statistic): 47.643
Stock-Yogo weak ID test critical values: 10% maximal IV size 16.38
15% maximal IV size 8.96
20% maximal IV size 6.66
25% maximal IV size 5.53
Source: Stock-Yogo (2005). Reproduced by permission.
NB: Critical values are for Cragg-Donald F statistic and i.i.d. errors.
------------------------------------------------------------------------------
Hansen J statistic (overidentification test of all instruments): 0.000
(equation exactly identified)
------------------------------------------------------------------------------
Instrumented: x
Included instruments: t2 l_shind_manuf_cbp reg_midatl reg_encen reg_wncen
reg_satl reg_escen reg_wscen reg_mount reg_pacif
l_sh_popedu_c l_sh_popfborn l_sh_empl_f l_sh_routine33
l_task_outsource
Excluded instruments: z
------------------------------------------------------------------------------
下面,我们使用 ssaggregate
将原始数据转换为冲击,即产业层面。其中,sic87dd 是四位数的产业代码,Lshares 是外部分年的地区各产业比例数据集,czone 是地区指示变量,ind_share 是产业比例变量。
. lxhget adh.zip, replace
. unzipfile adh.zip, replace
. use ./adh/location_level.dta, clear
. ssaggregate y z x [aw=wei], n(sic87dd) t(year) s(ind_share) sfilename(./adh/Lshares) l(czone) addmissing ///
> controls("t2 l_shind_manuf_cbp reg* l_sh_popedu_c l_sh_popfborn l_sh_empl_f l_sh_routine33 l_task_outsource")
. replace sic87dd = 0 if mi(sic87dd)
. merge 1:1 sic87dd year using ./adh/shocks, assert(1 3) nogen // sic87dd==0 is _m==1
. gen sic3 = int(sic87dd/10)
. foreach v of varlist g* sic3{
2. replace `v'= 0 if sic87dd==0
3. }
. label var g "Industry China Shock (binned)"
. *冲击层面的 Shift Share IV 回归
. ivreg2 y (x=g) [aw=s_n], cluster(sic3)
IV (2SLS) estimation
--------------------
Estimates efficient for homoskedasticity only
Statistics robust to heteroskedasticity and clustering on sic3
Number of clusters (sic3) = 137 Number of obs = 796
F( 1, 136) = 27.12
Prob > F = 0.0000
Total (centered) SS = 44.66656614 Centered R2 = 0.2111
Total (uncentered) SS = 44.66656614 Uncentered R2 = 0.2111
Residual SS = 35.23809809 Root MSE = .2104
------------------------------------------------------------------------------
| Robust
y | Coefficient std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
x | -0.596 0.114 -5.23 0.000 -0.820 -0.373
_cons | 0.000 0.011 0.00 1.000 -0.021 0.021
------------------------------------------------------------------------------
Underidentification test (Kleibergen-Paap rk LM statistic): 8.285
Chi-sq(1) P-val = 0.0040
------------------------------------------------------------------------------
Weak identification test (Cragg-Donald Wald F statistic): 122.362
(Kleibergen-Paap rk Wald F statistic): 39.649
Stock-Yogo weak ID test critical values: 10% maximal IV size 16.38
15% maximal IV size 8.96
20% maximal IV size 6.66
25% maximal IV size 5.53
Source: Stock-Yogo (2005). Reproduced by permission.
NB: Critical values are for Cragg-Donald F statistic and i.i.d. errors.
------------------------------------------------------------------------------
Hansen J statistic (overidentification test of all instruments): 0.000
(equation exactly identified)
------------------------------------------------------------------------------
Instrumented: x
Excluded instruments: g
------------------------------------------------------------------------------
可以看出,同估计等价的理论相一致,在地区层面的工具变量回归和转换到冲击层面的工具变量回归的结果完全相同,都是 -0.596。但是标准误并不相同,这是因为数据转换后样本量产生了变化 (同时聚类的类定义也发生了改变)。感兴趣并想要深入探究的读者可以阅读 Borusyak 等 (2020) 文章的第五节 "Shock-Level Inference and Testing"。
在本文中,我们回顾了 Bartik 工具变量的估计等价定理,即地区层面的工具变量回归,等价于将变量转换为冲击 (或称产业) 层面后的工具变量回归。同时我们还介绍了将数据层级进行转换的 ssaggregate
命令。我们可以通过此命令将数据从地区层面转换到冲击层面,再使用诸如外部命令 ivreg2
或 Stata 提供的内置命令 ivregress
进行工具变量估计。
Bartik 工具变量的理论研究在目前还是一个关于因果推断的新兴话题,如果有感兴趣的读者,可以关注更多的此方面的文献。
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