Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:艾卫冕 (中央财经大学)
邮箱:awm9901@163.com
编者按:本文主要摘译自下文,特此致谢!
Source:Egger P H, Nigai S, Strecker N M. The taxing deed of globalization[J]. American Economic Review, 2019, 109(2): 353-90. -PDF- -Replication Date-
目录
本文实证检验了全球化对不平等的影响,以及税收在其中发挥着渠道作用。本文发现在 1994 年以前,越高的全球化水平下,收入越高者被征的税率越高。在 1994 年以后,中产阶级被征收的税率更高,收入最高的 1% 反而面临 0.59-1.45 百分点的税负减少。本文用 OLS 方法进行基准回归估计,用贸易量和贸易成本构造了全球化指标的两个工具变量解决了反向因果的内生性问题。本文的主要研究贡献是:
本推文注重从初学者的角度,对本文的实证设计思路、代码的写作范式、工具变量的构建方法和探究借鉴意义四个角度剖析其学习价值。
学习实证设计思路:本文在引言中关于研究问题的展开、实验设计中内生性问题讨论、以及稳健性分析等都非常精彩,值得学习。具体如下图所示:
学习代码写作范式:
学习工具变量的构建方法:
探究对中国的研究的借鉴意义:
全球化的衡量指标:贸易和迁移两种,因为贸易的指标数据更多,因此使用贸易的指标。
其中,
结论:1980-1993 全球化会减少不平等,1994-2007 全球化会增加不平等。随着收入上升,全球化对于税率的影响先为正后为负,那么就可以说是全球化通过增加税率进而不平等了。通过分组回归初步验证了税收的渠道作用。
值得注意的是作者通过使用图片展示这种分位数回归结果,十分清晰,优于通过表格展示回归结果。连享会之前也曾经发送过推文探究图示线性回归系数的几种方式,详见推文「图示线性回归系数」。
cnssc install lxhget, replace
lxhget egger_aer_2019.zip, replace
unzipfile egger_aer_2019, replace
use "./Data/Main-Data", clear // FirstAuthor_2018_data.dta
drop if oecd==0
global xvars "primaryed secondaryed tertiaryed democracy" // Control variables
global xvars "$xvars left right ln_rgdppc ln_pop ln_popxrgdppc"
foreach v in mix log pareto { // #1
forvalues i =1/100{ // #2
ivreg2 relburden_`v' ln_trade $xvars diso* dyear* ///
if pctl== `i' & oecd == 1 & year < 1994, ///
cluster(year iso) partial($xvars diso* dyear*) // #3-#5
gen ols1_`v'coef`i' = _b[ln_trade]
gen ols1_`v'error`i' = _se[ln_trade]
ivreg2 relburden_`v' ln_trade $xvars diso* dyear* ///
if pctl== `i' & oecd == 1 & year >= 1994, ///
cluster(year iso) partial($xvars diso* dyear*) // #6
gen ols2_`v'coef`i' = _b[ln_trade]
gen ols2_`v'error`i' = _se[ln_trade]
}
}
/* === Notes: ===
#1: mix log 和 pareto 分别是作者通过对于收入的分布进行的不同假设构造的收入数据
#2: 这里的循环语句是为了方便对于收入分布每个百分位上的数据进行回归
#3: relburden - 收入的有效税率
trade - 自变量全球化程度
primaryed等是控制变量,衡量劳动者的特征
diso* 和 dyear* 分别是国家和年份固定效应
pctl 是收入所处的百分位
#4: cluster() 的含义是同一个国家同一个年份内各个百分比的残差相关,不同的则无关
#5: partial() 是为了将外生变量的影响从其他的变量中排除出去。
#6: 本文以1993年为断点分两段分别回归,对断点的选择在后文也有讨论
*/
keep ols*
duplicates drop
gen id=1
reshape long ols1_paretocoef ols2_paretocoef ///
ols1_paretoerror ols2_paretoerror ///
ols1_logcoef ols2_logcoef ols1_logerror ///
ols2_logerror ols1_mixcoef ols2_mixcoef ols1_mixerror ///
ols2_mixerror, i(id) j(bin) // #1
gen pctl=bin
drop id bin
foreach v in mix log pareto{
foreach m in ols1 ols2{
gen `m'_`v'CIu=`m'_`v'coef+1.654*`m'_`v'error // #2
gen `m'_`v'CIl=`m'_`v'coef-1.654*`m'_`v'error // #3
}
}
}
/* === Notes: ===
#1: 将数据转换成长型数据
#2: 计算得出系数的90%置信区间上限
#3: 计算得出系数的90%置信区间下限
*/
*------------------graph----begin---
twoway (rarea ols1_mixCIu ols1_mixCIl pctl, sort color(gs15)) /// #1
(rarea ols1_logCIu ols1_logCIl pctl, sort color(gs14)) ///
(rarea ols1_paretoCIu ols1_paretoCIl pctl, sort color(gs13)) ///
(line ols1_mixcoef pctl, color(black)) /// #2
(line ols1_logcoef pctl, color(black) lpattern(_)) ///
(line ols1_paretocoef pctl, color(black) lpattern(-)), ///
title(OECD: 1980-1993) ///
legend(order (4 "Mix" 5 "Log-normal" 6 "Pareto") cols(3)) /// #3
name(ols1, replace)
/* === Notes: ===
#1: 选项rarea用于画出阴影。其中,
ols1_mixCIu是因变量的上限,ols1_mixCIl是因变量的下限,pctl是自变量。
sort保证数据在绘图之前按照x的大小排序。
color定义阴影的颜色,gs15-13灰度依次增加。
#2:选项line用于画出直线。其中,
ols1_mixcoef是因变量,线性回归的系数,pctl是自变量,收入所处的百分位。
color定义直线的颜色。
lpattern定义直线的种类。
#3:选项legend用于标注图例。其中,
order定义线段名称的出现和排列。
cols(3)定义图例中名称分三列展示。
*/
*------------------graph----over----
*------------------graph----begin---
#d ;
twoway (rarea ols2_mixCIu ols2_mixCIl pctl, sort color(gs15))
(rarea ols2_logCIu ols2_logCIl pctl, sort color(gs14))
(rarea ols2_paretoCIu ols2_paretoCIl pctl, sort color(gs13))
(line ols2_mixcoef pctl, color(black))
(line ols2_logcoef pctl, color(black) lpattern(_))
(line ols2_paretocoef pctl, color(black) lpattern(-))
, title(OECD: 1994-2007)
legend(off) name(ols2, replace) ;
#d cr
*------------------graph----over----
grc1leg ols1 ols2, title(Figure 2) rows(1) legendfrom(ols1)
graph export "./Data/Results/Figure 2.png", as(png) replace
内生性问题的来源为反向因果。因为税率可能通过影响要素回报,消费,劳动力要素的自由流动等各种渠道影响全球化贸易。
第一步:定义消费比例
第二步:将消费比例进行标准化 (除以从本国进口的)
第三步:定义
这一步的目的主要是为了消除掉那些数据中不好估计的参数,也就是国家特定因素。
第四步:参数代换
因为
use "./Data/Instruments/Instrument-I-data.dta", clear // #1
gen exp2 = exp
gen imp2 = imp
rename level level2
rename imp ii
rename exp imp
rename ii exp
merge 1:1 exp year imp using "./Data/Instruments/Instrument-I-data.dta" // #2
drop _m
/* === Notes: ===
#1: 每一条观测值记录的只是国家A出口国家B的数据
#2: 让每一条观测值既包含国家A出口国家B数据,又包含国家A进口国家B的进口数据
*/
***********************************************************************
egen tot_imp = sum(level), by(imp year) // #1
gen pi_ij = level/tot_imp // #2
gen op = (level+level2)/(2*tot_imp) // #3
gen pi = pi_ij if exp == imp
egen pi_ii = mean(pi), by(imp year) // #4
drop tot_imp pi
gen beta_ij = pi_ij/pi_ii // #5
************************************************************************
egen tot_imp2 = sum(level2),by(imp2 year) // #6
gen pi_ji = level2/tot_imp2 // #7
gen pi = pi_ji if exp2 == imp2
egen pi_jj = mean(pi), by(imp2 year) // #8
drop tot_imp2 pi
gen beta_ji = pi_ji/pi_jj // #9
gen t = (beta_ij*beta_ji) // #10
replace t = 0 if exp == imp
/* === Notes: ===
#1: 计算出每个国家j一年的总进口量
#2: 计算出每条观测值上,国家i到国家j的出口量占国家j总进口量的比例
#3: 计算出每条观测值上,国家i和国家j进出口总量占2*国家j总进口量的比例
#4: 计算出每个国家每年自产自销占总进口量的比例
#5: 计算出国家i出口量比例与国家j自产自销比例的比值,用以衡量国家i的出口对国家j的重要性
#6: 计算出每个国家i一年的总进口量
#7: 计算出每条观测值上,国家j到国家i出口量占国家i总进口量的比例
#8: 计算出每个国家每年自产自销占总进口量的比例
#9: 计算出国家j出口量比例占国家i自产自销比例的比值,用以衡量国家j的出口对国家i的重要性
#10: 相当于上文工具变量构建的第三步,用以衡量国家i和j的贸易紧密程度
*/
replace op = 0 if exp == imp
egen open = sum(op), by(imp year) // #1
replace open = ln(open)
egen beta = sum(t), by(imp year) // #2
replace beta = ln(beta)
keep year imp open beta
duplicates drop
rename beta instr_trade
rename open ln_trade
rename imp iso
export delimited using "./Data/Instruments/Instrument-I.csv", replace
/* === Notes: ===
#1: 用除自身以外的国家与国家j的进出口量占2*国家j总进口量的比例,衡量国家j的贸易开放程度
#2: 相当于上文工具变量构建的最后一步,加总国家j与其他所有国家之间的贸易紧密程度作为国家j全球化的工具变量
*/
原因:上一个工具变量的有效性很大程度上依赖于第一步中贸易的一般结构化模型的设定,因此为了保证结果的稳健性需要再找一个工具变量。
第一步:构建交易成本
第二步:衡量方差
指标的优势在于,不依赖双边交易数据;通过衡量方差,比计算平均值更能够衡量交易集中程度。这一个工具变量由于贸易成本和全球化程度非常相关,因此满足了相关性。由于原油价格和个人工资所得分布的百分位不相关,因此满足了外生性。
估计的回归公式是:
可以看出两个工具变量的回归结果和基准回归结果的差距不大,因此基准回归结果在克服了反向因果的内生性问题之后依然稳健。
作者对于分组回归的时间断点进行了讨论。具体思路是通过测试 H0:
除了统计上的规律,作者也给出了经济学上的解释:在上世纪 90 年代中期,OECD 国家之间大量签署双边税收协定,因此客观上导致了全球化进一步地加大。
通过以下的公式进行估计,同时采用了 OLS 和 IV 的方法。
其中
从以上回归结果中,我们可以发现,在 1980-1993 年,全球化减少了工薪税,1994-2007 年,全球化增加了工薪税,这主要是因为各国政府加重了对于中产阶级的税负,同时减轻了富人的税负。由此,上表提供了税收系统的中介效应的证据。
直接使用卢森堡收入调查的微观数据库:基准回归中的数据是通过插值法合成的,这里进行的稳健性检验中运用了 LIS 的原始数据,得到了类似的结果。
将样本替换为所有家庭类型:因为基准回归中的数据是只有单独的男性家庭。因此这里将所有的家庭都考虑进去,并且有税收计算器计算出来了每个百分位的平均的家庭的有效税率。最后,我们使用这些税收负担对公式进行重新估计。
用迁移自由度作为全球化的衡量指标:用迁移的数据来衡量全球化和贸易的数据比起来有两大劣势:
美国跨州迁移自由度和有效劳动收入税率:上文发现发达国家在全球化中通过减少富人相对的劳动收入税,增加中产劳动收入税进而增加了收入不平等。本节利用美国国内的州层面的数据检验了相应的渠道是否依旧成立。使用的数据来源于年度社会经济 (ASEC)和当代人口调查数据库 (IPUMS)。数据库中包括了个人的应纳税所得和联邦,州层面支付的税收。
另外,劳动人口跨州层面迁移的数据来源于美国税务局 (IRS)。本文利用州层面的人口迁移数据衡量贸易自由度。迁移的工具变量构建过程与上文中工具变量一的构建类似,因此不做赘述。研究贸易自由度对于收入的 50 个百分位上的人群的税收负担的影响:
其中,
从上图中,我们依然可以非常清晰地观察到在中等收入组的税收负担上升,高收入组的税收负担下降。
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