一文读懂合成控制法synth_runner操作及应用
The following article is from 数量经济学 Author 数量经济学
Stata寒假研讨班_2020年1月_第13&14届“高级计量经济学及stata应用”研讨班@上海/北京专场_火热报名中
关于合成控制法synth命令使用简介请详细阅读一文读懂合成控制法synth 操作及Stata应用
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 ]
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:如果根据趋势进行匹配,这就是该单元的(按比例)结果与该单元在该时间段的(按比例)综合控制之间的差异。
sysuse synth_smoking, clear
tsset state year
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
single_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)
sysuse synth_smoking
tsset state yea
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
single_treatment_graphs, trlinediff(-1) effects_ylabels(-30(10)30) effects_ymax(35) effects_ymin(-35)
effect_graphs , trlinediff(-1)
pval_graphs
cap drop pre_rmspe post_rmspe lead effect cigsale_synth
gen 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, scaled
effect_graphs , scaled
pval_graphs
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
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.
重磅推荐 |回归合成控制法:以2008年中国经济刺激方案为例
合成控制法(Synthetic Control Method)(附PPT免费公开)
◆◆◆◆
精彩回顾
点击上图查看:
Stata寒假研讨班_2020年1月_第13&14届“高级计量经济学及stata应用”研讨班@上海/北京专场_火热报名中
点击上图查看:
《零基础|轻松搞定空间计量:空间计量及GeoDa、Stata、Matlab应用》