查看原文
其他

一文读懂合成控制法synth_runner操作及应用

The following article is from 数量经济学 Author 数量经济学


Stata寒假研讨班_2020年1月_第13&14届“高级计量经济学及stata应用”研讨班@上海/北京专场_火热报名中


关于合成控制法synth命令使用简介请详细阅读一文读懂合成控制法synth 操作及Stata应用


本文基于stata16为大家讲解如何进行合成控制法synth_runner相关操作及应用。

香烟控制法在美国有着悠久的历史,至少可以追溯到1893年,当时的华盛顿成为第一个禁止香烟销售的州。在在接下来的30年里,其他15个州也相继出台了类似的禁烟措施(Dinan和Heckelman 2005)。这些早期的反烟草法主要是出于道德考虑, 健康问题是次要的(Tate 1999)。近100年来,后来,在这些早期的法律被废除很久之后,对吸烟的健康风险的认识有了一个新的广泛传播,美国各州和联邦政府纷纷出台反烟草法以及最终的海外市场。1988年,加州选民发起的99号提案,第一个现代化的大规模控烟项目,这也就是著名的99香烟法案。
1
背景介绍

1988年11月美国加州通过了当代美国最大规模的控烟法(anti-tobacco legislation),并于1989年1月开始生效。该法将加州的香烟消费税(cigarette excise tax)提高了每包25美分,将所得收入专项用于控烟的教育与媒体宣传,并引发了一系列关于室内清洁空气的地方立法(local clean indoor-air ordinances),比如在餐馆、封闭工作场所等禁烟。Abadie et al. (2010)根据美国1970-2000年的州际面板数据,采用合成控制法研究美国加州1988年第99号控烟法(Proposition 99)的效果。


2
语法格式


合成控制法命令为:synth_runner,安装方法为
ssc install synth_runner

语法格式为:
synth_runner depvar predictorvars , [ trunit(#) trperiod(#) d(varname) trends pre_limit_mult(real>=1) training_propr(real) gen_vars ci pvals1s max_lead(int) noenforce_const_pre_length n_pl_avgs(string) parallel deterministicout pred_prog(string) drop_units_prog(string) xperiod_prog(string) mspeperiod_prog(string) noredo_tr_error        synthsettings ]

注意事项:数据集必须使用tsset声明为(平衡的)面板。在depvar和predictorvars中指定的变量必须是数值变量;不允许使用缩写。命令需要联网下载(SSC中可用)。
synth_runner使synth运行多个合成控制估计的过程自动化。在进行安慰剂评估(对同一治疗期间的评估,但要持续下去) 所有控制单元。然后,它将提供推断(p值),将估计的主要效应与安慰剂效应的分布进行比较。
synth_runner被设计为与synth一起使用,但不是替代它。对于单个估计(变量权重、观测权重、协变量平衡和存在多个时间周期时的综合控制结果)的更多细节,请使用synth 直接。详见synth and Abadie and Gardeazabal(2003)和Abadie, Diamond, and Hainmueller(2010, 2014)。
总结如下:该命令优点为:1、可以进行安慰剂检验,并提供P值;2、允许多个试点对象在不同的时间受到冲击;3、提供可视化图形将估计的主要效应与安慰剂效应的分布进行比较。

3
选项含义介绍


depvar 表示结果变量(outcome variable)


predictorvars为预测变量(predictors) the list of predictor variables)( By default, all predictor variables are averaged over the entire pre-intervention period, which ranges from the earliest time period available in the panel time variable specified in tsset timevar to the period immediately prior to the intervention specified in trperiod. Missing    values are ignored in the averages.)


trunit(#)和trperiod (#)当只有一个单元进入治疗时,可以使用这个语法(synth使用)。由于综合控制方法将时间分为预处理和 治疗期,trperiod是第一个治疗期


d (varname)。d变量应该是一个二进制变量,在处理过的周期内处理过的单位为1,其他地方为0。这允许多个单位进行治疗, 可能在不同的时间。


意思在多个试点对象时,选项 d(varname) 为 1表示试点对象在试点时期之后,否则为 0。


trends:将迫使synth匹配结果变量中的趋势。它通过缩放每个单元的结果变量使其在最后的治疗前阶段为1来实现这一点。


pre_limit_mult(real>=1)将不包括用于推断的安慰剂效应池,如果该控制的匹配质量,即治疗前均方根预测误差(RMSPE)特别大时,将删除。提供了控制对象数倍的删除倍数。


training_propr(0<=real<=1)指示synth_runner自动生成结果变量的预测变量。默认值(0)是不生成任何值。如果将该值设置为大于0,则将预处理期的初始比例用作培训期,其余部分用作验证时期。


pvals1s除了两侧的p值外,还输出单边的p值。


gen_vars根据估算在数据集中生成变量。只有在单位进入治疗的单一时期内才允许这样做。如果指定gen_vars,它将生成以下变量:


lead:包含相对于治疗的相应时间段的变量。lead=1表示试点后第一个时期。


depvar_synth:一个变量,包含该单元在该时间段内的合成结果。


effect:表示因变量与合成因变量之间的差异。


pre_rmspe:表示预处理匹配质量的RMSPE。


post_rmspe:表示包含一个以RMSPE表示的治疗后效果的度量(在所有治疗后的时间段内联合)。


depvar_scaled:如果匹配是根据趋势进行的,这是该单元的结果变量标准化,使其最后的治疗前期结果为1。


depvar_scaled_synth:如果匹配是根据趋势进行的,那么这就是合成结果变量。


effect_scaled:如果根据趋势进行匹配,这就是该单元的(按比例)结果与该单元在该时间段的(按比例)综合控制之间的差异。



4
操作应用案例
sysuse synth_smoking, cleartsset state yearsynth_runner cigsale beer(1984(1)1988) lnincome(1972(1)1988) retprice age15to24 cigsale(1988) cigsale(1980) cigsale(1975), /// trunit(3) trperiod(1989) gen_varssingle_treatment_graphs, trlinediff(-1) raw_gname(cigsale1_raw) /// effects_gname(cigsale1_effects) effects_ylabels(-30(10)30) effects_ymax(35) effects_ymin(-35)
effect_graphs , trlinediff(-1) effect_gname(cigsale1_effect) tc_gname(cigsale1_tc)pval_graphs , pvals_gname(cigsale1_pval) pvals_std_gname(cigsale1_pval_t)

1、导入数据
sysuse synth_smoking tsset state yea

2、合成控制法案例1
synth_runner cigsale beer(1984(1)1988) lnincome(1972(1)1988) retprice /// age15to24 cigsale(1988) cigsale(1980) cigsale(1975),  /// trunit(3) trperiod(1989) gen_vars

结果为:

3、估计政策效应
single_treatment_graphs, trlinediff(-1) effects_ylabels(-30(10)30) effects_ymax(35) effects_ymin(-35) effect_graphs , trlinediff(-1) pval_graphs




上图表明在控烟法实施之后,加州与合成加州的人均香烟消费量即开始分岔,而且此效应越来越大。

5
操作应用2

cap drop pre_rmspe post_rmspe lead effect cigsale_synthgen byte D = (state==3 & year>=1989)synth_runner cigsale beer(1984(1)1988) lnincome(1972(1)1988) retprice age15to24, trunit(3) trperiod(1989) trends training_propr(`=13/18') gen_vars pre_limit_mult(10)single_treatment_graphs, scaledeffect_graphs , scaledpval_graphs
结果为:




6
操作应用3:Multiple treatments at different time periods:

cap drop pre_rmspe post_rmspe lead effect cigsale_synth cap drop cigsale_scaled effect_scaled cigsale_scaled_synth D cap program drop my_pred my_drop_units my_xperiod my_mspeperiod program my_pred, rclass args tyear return local predictors "beer(`=`tyear'-4'(1)`=`tyear'-1') lnincome(`=`tyear'-4'(1)`=`tyear'-1')" end program my_drop_units args tunit if `tunit'==39 qui drop if inlist(state,21,38) if `tunit'==3 qui drop if state==21 end program my_xperiod, rclass args tyear return local xperiod "`=`tyear'-12'(1)`=`tyear'-1'" end program my_mspeperiod, rclass args tyear return local mspeperiod "`=`tyear'-12'(1)`=`tyear'-1'" end gen byte D = (state==3 & year>=1989) | (state==7 & year>=1988) synth_runner cigsale retprice age15to24, d(D) pred_prog(my_pred) trends training_propr(`=13/18') drop_units_prog(my_drop_units)) xperiod_prog(my_xperiod) mspeperiod_prog(my_mspeperiod) effect_graphs    pval_graphs



7
References


Abadie, A., Diamond, A., and Hainmueller, J. 2014. Comparative Politics and the Synthetic Control Method.  American Journal of Political Science, 59(2):495–510, Apr 2014.


Abadie, A., Diamond, A., and Hainmueller, J. 2010. Synthetic Control Methods for Comparative Case Studies: Estimating the Effect of California's Tobacco Control Program.  Journal of the American Statistical Association 105(490): 493-505.


Abadie, A. and Gardeazabal, J. 2003. Economic Costs of Conflict: A Case Study of the Basque Country.  American Economic Review 93(1): 113-132.


Cavallo, E., Galiani, S., Noy, I., and Pantano, J. 2013. Catastrophic natural disasters and economic growth.  Review of Economics and Statistics, 95(5):1549–1561, Dec 2013.


合成控制法视频资源(一)

CEPA对香港的影响(附回归合成控制方法详细介绍)

重磅推荐 |回归合成控制法:以2008年中国经济刺激方案为例

合成控制法(Synthetic Control Method)(附PPT免费公开)



◆◆◆◆

精彩回顾


点击上图查看:

Stata寒假研讨班_2020年1月_第13&14届“高级计量经济学及stata应用”研讨班@上海/北京专场_火热报名中





点击上图查看:

《零基础|轻松搞定空间计量:空间计量及GeoDa、Stata、Matlab应用》


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存