温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
作者: 笑花心 (连享会助教)
邮箱: RHs_knowledge@126.com
编者按: 本文摘自以下论文,特此致谢。
Source: Acemoglu D, Restrepo P. Secular stagnation? The effect of aging on economic growth in the age of automation[J]. American Economic Review, 2017, 107(5): 174-79. -Link-
目录
必要性
数据特点:研究所需数据的搜集难度较大,单次调查的跨度时间长 (需要跨越若干年),难以获得逐年的数据;
研究目标:
优势
遗漏变量:考虑到了不随时间变化的不可观测因素,控制了个体效应差异;
间隔期长的差分可能比间隔短的差分有更小的减弱偏误,参考 Griliches 和 Hausman(1986)。
假设数据涉及时期
其中
对于时期
差分得到:
参考 Burke 和 Emerick (2016),我们对 LD 方法中可能出现的问题和解决方法进行简要讨论。
所加入的其他固定效应可能会吸收关键解释变量的长期变动,当这种变动正好与所研究的因果效应有关时,就可能对结果造成影响。我们可以从变动性角度探讨,即证明其他的控制变量或者固定效应只吸收了长差分变动性的一小部分。
所观察到的 “长期变化” 可能仅是在端点年份附近的短期变化。我们可以从如下两方面说明 “长期变化是真实存在的”:
估计结果受到和解释变量与被解释变量同时相关的随时间变化因素的影响,且这种因素是无法观测的。这个时候我们可以构建关于长差分的两期面板模型,并在模型中加入指示差分时期的变量,这样就会大大降低遗漏变量存在的可能。
结果是否具有稳健性。对于长差分方法,具体来说可以改变端点年份的选取,改变用来计算差分的年份间隔,或者采取其他估计策略等方法。此外,还可以通过去除离群值或者加入控制变量的方法检验结果的稳健性。
关于人口老龄化和经济停滞的讨论:
发达国家饱受 “经济停滞” 折磨的部分原因是人口老龄化导致的过度储蓄 (Hansen 1939; Summers 2013; Teulings and Baldwin 2014);
人口结构的变化是导致发达国家经济增长减缓的第一阻力,主要原因是人口老龄化会减少劳动力投入和产出 (Gordon, 2016)。
以上观点都反映出人口老龄化对经济增长的负面影响,但 Acemoglu 和 Restrepo (2017) 却认为人口老龄化和人均 GDP 之间没有负向的关联。
为了证明该观点,Acemoglu 和 Restrepo (2017) 首先通过散点图对两者的关系进行了初步展示,具体如下图:
其中,纵轴为 1990 – 2015 年间人均 GDP 的变动情况,横轴为 50 岁以上人口和 20-49 岁人口比值的变化情况。
可以看出,我们很难发现两者间的负向关系,那么又该如何解释这种情况呢?Acemoglu 和 Restrepo (2017) 认为,1990 年代后期出现了一系列人工替代技术 (如,机器人和人工智能),为企业生产过程自动化提供了多样选择。
原文基本回归包含 169 个国家的数据,结合文章作者提供的程序,我们将介绍一下长差分的具体操作过程。
生成本文用到的被解释变量,即对 1990 年和 2014 年的人均 GDP 取对数值后差分,得到其变化率:
*-数据存放地址:
*-https://gitee.com/arlionn/data/blob/master/data01/aging_growth_data.dta
*-Note: 请右击后另存,不要直接打开。
*-从连享会数据分享主页 ( https://arlionn.gitee.io/data ) 下载数据
local url "https://arlionn.gitee.io/data/data01/aging_growth_data.dta"
copy "`url'" aging_growth_data.dta // 复制数据到当前工作路径下
use "aging_growth_data.dta", clear
gen devo2014=ln(rgdpna2014/pop2014)
gen devo1990=ln(rgdpna1990/pop1990)
gen change_gdp=devo2014-devo1990
生成本文的解释变量,即 50 岁以上人口和 20-49 岁人口比值的变化率:
gen change_dependency = dependency_50_y2015-dependency_50_y1990
控制变量为 1990 年的相关指标,包括上文提及的人均 GDP 对数值 (devo1990)、人口的对数值 (lpop1990)、以及 50 岁以上人口和 20-49 岁人口比值 (dependency_50_y1990):
gen lpop1990 = ln(pop1990)
gen lpop1970 = ln(pop1970)
gen base_dependency = dependency_50_y1990
我们还需要定义回归用到的工具变量 (IVs),即为 1960 及以后各年代的出生率:
global IVs birthrate1960_1965 birthrate1965_1970 birthrate1970_1975 birthrate1975_1980 birthrate1980_1985 birthrate1985_1990
为了使程序更为简洁,我们对其他变量做以下定义:
global y "change_gdp"
global x "change_dependency"
global z "devo1990 lpop1990 base_dependency"
然后对数据进行回归,具体的回归程序如下:
*展示未处理的两个变量间的相关情况,并将结果储存
reg $y $x , robust
est store c1
*方程右侧加入初始人均GDP的对数值
reg $y $x devo1990, robust
est store c2
*方程右侧加入初始人口特征(1990年50岁以上人口和20-49岁人口比值)
reg $y $x $z , robust
est store c3
*加入一系列区分世界银行所定义地区的虚拟变量(如拉丁美洲),故而允许地区特定趋势的出现
egen region_code=group(region)
reg $y $x $z i.region_code, robust
est store c4
*使用各年代人口出生率作为人口特征变化的工具变量
ivreg2 $y ($x=$IVs) $z i.region_code, robust partial(lpop1990 i.region_code base_dependency)
est store c5
*将回归样本改为35个OECD国家。
reg $y $x if sample_oecd==1, robust
est store c6
reg $y $x $z if sample_oecd==1, robust
est store c7
ivreg2 $y ($x=$IVs) $z if sample_oecd==1, robust partial(lpop1990 base_dependency)
est store c8
*输出结果
local drop "lpop1990 base_dependency _cons" //不希望呈现估计系数的变量名
local m "c1 c2 c3 c4 c5 c6 c7 c8"
esttab `m' `s', nogap compress replace ///
b(%6.3f) scalar(N r2_a rkf j jp) drop(`drop') ///
star(* 0.1 ** 0.05 *** 0.01) ///
indicate("Region Dummies =*.region_code") ///
addnotes("*** 1% ** 5% * 10%")
在使用 ivreg2
命令执行 2SLS 或 GMM 估计时,若 Sargan 或 Hansen J 统计量无法计算,可以加入 partial()
选项,详情可以参考 Giles (1984)、Baum et al. (2003)、Baum et al. (2007)、以及「Sargan+Hansen:过度识别检验及Stata实现」。
对于结果的输出,可参考「连享会专题:结果输出」。
温馨提示: 文中链接无法在微信中打开,请点击「阅读原文」。
------------------------------------------------------------------------------------------------------------------------
(1) (2) (3) (4) (5) (6) (7) (8)
change_~p change_~p change_~p change_~p change_~p change_~p change_~p change_~p
------------------------------------------------------------------------------------------------------------------------
change_depende~y 0.335 1.036*** 1.162*** 0.773** 1.703*** -0.262 0.042 1.186***
(1.60) (4.04) (4.20) (2.40) (4.14) (-0.75) (0.12) (2.59)
devo1990 -0.153*** -0.138*** -0.156*** -0.190*** -0.205*** -0.260***
(-3.98) (-3.28) (-3.40) (-4.22) (-2.84) (-2.82)
Region Dummies No No No Yes No No No No
------------------------------------------------------------------------------------------------------------------------
Observations 169 169 169 169 169 35 35 35
r2_a 0.007 0.121 0.123 0.228 -0.024 -0.012 0.425 -0.440
rkf 19.365 7.378
j 4.280 4.813
jp 0.510 0.439
------------------------------------------------------------------------------------------------------------------------
t statistics in parentheses
*** 1% ** 5% * 10%
* p<0.1, ** p<0.05, *** p<0.01
原文还使用了关于老龄化的不同测算方式,即在 20 岁以上人口平均年龄的变动情况。并且,也将回归改为 2000 年后的时期,即 2000–2015 年,在这段时间经济停滞问题更为引人注目。由于上述结果大致相同,故不再重复列出。
之后,作者将样本延伸到 1965 年,并汇报了每个国家以 25 年为长度,并将两期差分同时加入模型的回归结果。
首先定义可能用到的工具变量:
use aging_growth_data.dta, clea
local v1 "birthrate1950_1955 birthrate1955_1960 birthrate1960_1965"
local v2 "birthrate1965_1970 birthrate1970_1975 birthrate1975_1980"
local v3 "birthrate1980_1985 birthrate1985_1990"
global IVs_stacked `v1' `v2' `v3'
调入数据后按照国家生成时期虚拟变量 period:
expand 2
bysort cname_ifr: gen period=_n
计算每一时期对应的控制变量:
gen lpop=.
replace lpop=ln(pop1990) if period==2
replace lpop=ln(pop1965) if period==1
gen lgdp=.
replace lgdp=ln(rgdpna1990/pop1990) if period==2
replace lgdp=ln(rgdpna1965/pop1965) if period==1
gen base_dependency=.
replace base_dependency=dependency_50_y1990 if period==2
replace base_dependency=dependency_50_y1965 if period==1
计算每一时期对应的解释变量 dif_gdp 及被解释变量 change_dependency:
gen dif_gdp=.
replace dif_gdp=ln(rgdpna2014/pop2014)-ln(rgdpna1990/pop1990) if period==2
replace dif_gdp=ln(rgdpna1990/pop1990)-ln(rgdpna1965/pop1965) if period==1
gen change_dependency=.
replace change_dependency =dependency_50_y2015-dependency_50_y1990 if period==2
replace change_dependency =dependency_50_y1990-dependency_50_y1965 if period==1
接下来加入特定年份出生率与时期的交乘项:
gen instrument1_1965=birthrate1950_1955*(period==1)
gen instrument2_1965=birthrate1955_1960*(period==1)
gen instrument3_1965=birthrate1960_1965*(period==1)
gen instrument1_1990=birthrate1960_1965*(period==2)
gen instrument2_1990=birthrate1965_1970*(period==2)
gen instrument3_1990=birthrate1970_1975*(period==2)
gen instrument4_1990=birthrate1975_1980*(period==2)
gen instrument5_1990=birthrate1980_1985*(period==2)
gen instrument6_1990=birthrate1985_1990*(period==2)
类似于上文,我们先定义全局暂元来使命令看起来简洁一些:
*被解释变量
global y "dif_gdp"
*解释变量
global x "change_dependency"
*控制变量
global z "c.lgdp##i.period lpop base_dependency"
*转换国家和地区变量类型
encode countrycode, gen(country_code)
encode region, gen(region_code)
*使用聚类稳健标准误
global opt "robust cluster(country_code)"
下面开始进行回归:
*加入时期虚拟变量
reg $y $x i.period, $opt
est store c1
*加入控制变量和地区虚拟变量
reg $y $x $z i.region_code, $opt
est store c2
*随后的回归加入了国家虚拟变量
reg $y $x $z i.country_code, $opt
est store c3
*工具变量估计
xi: ivreg2 $y ($x=instrument*_*) $z i.country_code, ///
partial($z i.country_code) $opt
est store c4
*关注OECD国家的情况
reg $y $x $z i.country_code if sample_oecd==1, $opt
est store c5
xi: ivreg2 $y ($x=instrument*_*) $z i.country_code ///
if sample_oecd==1, partial($z i.country_code) $opt
est store c6
*输出结果:
local keep "$x"
local m "c1 c2 c3 c4 c5 c6"
esttab `m' `s', nogap compress replace ///
b(%6.3f) scalar(N r2_a rkf j jp) keep(`keep') ///
star(* 0.1 ** 0.05 *** 0.01) ///
indicate("Region =*.region_code" ///
"Country =*.country_code") ///
addnotes("*** 1% ** 5% * 10%")
得到如下结果:
----------------------------------------------------------------------------------------------
(1) (2) (3) (4) (5) (6)
dif_gdp dif_gdp dif_gdp dif_gdp dif_gdp dif_gdp
----------------------------------------------------------------------------------------------
change_depende~y 0.305 0.346 0.775 2.168*** 0.072 0.361
(1.55) (1.26) (1.58) (4.25) (0.22) (1.24)
Region No Yes No No No No
Country No No Yes No Yes No
----------------------------------------------------------------------------------------------
Observations 282 282 282 282 63 63
r2_a -0.001 0.263 0.645 -1.838 0.894 -2.015
rkf 8.644 4.693
j 6.878 7.140
jp 0.442 0.414
----------------------------------------------------------------------------------------------
t statistics in parentheses
*** 1% ** 5% * 10%
* p<0.1, ** p<0.05, *** p<0.01
可以看出,上述结果再一次表明了全样本中人口老龄化和经济增长之间的正向关系 (OECD 国家间存在较弱且不显著的关系)。
上述结论的原因之一是技术调整消除了可能存在的负效应。为此,作者又进一步探讨了该想法的可信度。
实证上的证据
Acemoglu 和 Restrepo 另一研究,指出经历更快老龄化进程的国家正是处在工业机器人这一重要自动化技术应用前沿的国家。
该研究涉及到的数据来源于「International Federation of Robotics」,该数据提供了 49 个国家跨行业工业机器人的信息。
作者发现文中使用的人口结构变动指标,即 50 岁以上人口和 20-49 岁人口比重的变化情况,和 90 年代早期到 2015 年的机器人数量 (每百万工时) 变动存在强烈关联。即使在移除韩国 (明显的离群值) 和将样本限制在 OECD 国家的处理中,这项关系仍然存在。并且,对于倾向于雇佣更年轻工人的行业,以及有更多实施自动化可能性的行业,这项关系更为明显。
关于上述文章更多详细介绍,可参考 Acemoglu 和 Restrepo (2018)。
理论上的证据
依据 Acemoglu (2010)、Acemoglu 和 Restrepo (2016),作者说明了年轻劳动力的稀缺会引发机器人和其他自动化技术的充分使用。
为了说明情况,作者构建了一个静态模型。假设总产出涉及一系列活动,函数形式按照 Cobb-Douglas 的求和形式给出,即:
每一项生产活动
假设生产类型
生产类型
其中
作者假设成本函数
作者假设资本和劳动是无弹性供给的,给定两者的供给分别是
这意味着资本充足且相对于劳动价格低,考虑到当今世界较低的利率这个假设是可信的。同时该假设确保自动化的生产活动可以盈利并提高总产出。
在将模型和数据对接过程中,作者将 L 视作青年和中年工人的供给,因此人口老龄化会对应 L 的下降,这个现象也可视作为劳动稀缺性的上升。
均衡总产出可以被表达成
其中
结合关于
由于
这体现出了劳动稀缺性,较低的
其中
考虑到
当
文章通过分析,发现人口老龄化和人均 GDP 增长间不存在负向关联,导致这种现象的原因之一可能在于技术的内生响应,尤其是替代人力的技术应用。同时作者认为经历更快老龄化的国家采用了更多机器人。
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。
Sargan+Hansen:过度识别检验及Stata实现 -Link-
连享会专题:结果输出 -Link-
戴觅, 张轶凡, 黄炜. (2019). 贸易自由化如何影响中国区域劳动力市场?. 管理世界, 035(006), 56-69. -Link-
周茂, 陆毅, 李雨浓. (2018). 地区产业升级与劳动收入份额:基于合成工具变量的估计. 经济研究, 53(11), 134-149. -Link-
Acemoglu D, Restrepo P. Secular stagnation? The effect of aging on economic growth in the age of automation. American Economic Review, 2017, 107(5): 174-79. -Link-
Acemoglu D, Restrepo P. Demographics and automation. National Bureau of Economic Research, 2018. -Link-
Acemoglu D. When does labor scarcity encourage innovation?. Journal of Political Economy, 2010, 118(6): 1037-1078. -Link-
Acemoglu D, Restrepo P. The race between man and machine: Implications of technology for growth, factor shares, and employment. American Economic Review, 2018, 108(6): 1488-1542. -Link-
Griliches, Zvi and Jerry A. Hausman. Errors in Variables in Panel Data: A Note with an Example, Journal of Econometrics, Vol. 31, pp. 93-118, 1986. -Link-
Burke, Marshall, and Kyle Emerick. (2016). Adaptation to Climate Change: Evidence from US Agriculture. American Economic Journal: Economic Policy, 8 (3): 106-40. -Link-
Giles, D. E. A. . (1984). Instrumental variables regressions involving seasonal data. Economics Letters, 14(4), 339-343. -Link-
Baum, C. F. , Schaffer, M. E. , & Stillman, S. . (2003). Instrumental variables and gmm: estimation and testing. Stata Journal, 3(1), 1-31. -Link-
Baum, C. F. , Schaffer, M. E. , & Stillman, S. . (2007). Enhanced routines for instrumental variables/GMM estimation and testing. The Stata Journal, 7(4): 465-506. -Link-
连享会-直播课 上线了!
http://lianxh.duanshu.com
免费公开课:
直击面板数据模型 - 连玉君,时长:1小时40分钟,课程主页 Stata 33 讲 - 连玉君, 每讲 15 分钟. Stata 小白的取经之路 - 龙志能,时长:2 小时,课程主页 部分直播课 课程资料下载 (PPT,dofiles等)
支持回看
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 因果推断, 空间计量,寒暑假班等 | |
⭕ 数据清洗系列 | 游万海 | 直播, 88 元,已上线 |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会学习群-常见问题解答汇总:
✨ https://gitee.com/arlionn/WD