Re: Synthetic Control Method (Abadie et al. 2010)
Link to the original paper here.
-------------------------------------------------------------------------------------- name: log: ~\myReplications\synthetic-control\synthdid.smcl log type: smcl opened on: 16 Dec 2018, 18:24:07 *** Replication of Synthetic Control method - the last graphs 4-7 *** 1. Load dataset, tsset and loop through all units and store the results of synth using the keep option. . sysuse smoking, clear (Tobacco Sales in 39 US States) . tsset state year panel variable: state (strongly balanced) time variable: year, 1970 to 2000 delta: 1 unit . forval i=1/39{ qui synth cigsale retprice cigsale(1988) cigsale(1980) cigsale(1975), /// xperiod(1980(1)1988) trunit(`i') trperiod(1989) keep(synth_`i', replace) } *** 2. Quitely loop through all saved datasets and create the relevant variables (years and treatment effects). Drop missing observations. . qui forval i=1/39{ use synth_`i', clear rename _time years gen tr_effect_`i' = _Y_treated - _Y_synthetic keep years tr_effect_`i' drop if missing(years) save synth_`i', replace } *** 3. Load the first dataset from step 2 and merge with the rest of datasets. . use synth_1, clear (Tobacco Sales in 39 US States) . forval i=2/39{ qui merge 1:1 year using synth_`i', nogenerate label var tr_effect_`i' "tr_effect_`i'" } ** Rename tr_effect_i to tte_j by ranking based on MSPE scores. . qui rename tr_effect_17 tte_1 . (...) *** 4. Plot **Figure 4 (38 control states) . set scheme s1mono . local lp . forval i=1/38 { local lp `lp' line tte_`i' years, lcolor(gs12) || } twoway `lp' || line tte_3 years, lcolor(black) lwidth(medium) text(-40 1984 "Passage of Proposition 99 --->", size(*0.75)) /// legend(off) yline(0, lcolor(black) lwidth(thick) lpattern(dash)) xline(1989, lwidth(medium) lpattern(dash)) /// caption(Re: Figure 4. Per-cap cig sales gaps in California & placebo gaps in 38 control states.) . graph export synth38.png, replace (file synth38.png written in PNG format) * **Figure 5 (34 control states) . drop tte_35 tte_36 tte_37 tte_38 tte_39 . local lp . forval i=1/34 { local lp `lp' line tte_`i' years, lcolor(gs12) || } . twoway `lp' || line tte_3 years, lcolor(black) lwidth(medium) text(-40 1984 "Passage of Proposition 99 --->", size(*0.75)) /// legend(off) yline(0, lcolor(black) lwidth(thick) lpattern(dash)) xline(1989, lwidth(medium) lpattern(dash)) /// caption(Re: Figure 5. Per-cap cig sales gaps in California & placebo gaps in 34 control states) . graph export synth34.png, replace (file synth34.png written in PNG format) * **Figure 6 (29 control states) . drop tte_30 tte_31 tte_32 tte_33 tte_34 . local lp . forval i=1/29 { local lp `lp' line tte_`i' years, lcolor(gs12) || } . twoway `lp' || line tte_3 years, lcolor(black) lwidth(medium) text(-40 1984 "Passage of Proposition 99 --->", size(*0.75)) /// legend(off) yline(0, lcolor(black) lwidth(thick) lpattern(dash)) xline(1989, lwidth(medium) lpattern(dash)) /// caption(Re: Figure 6. Per-cap cig sales gaps in California & placebo gaps in 29 control states) . graph export synth30.png, replace (file synth30.png written in PNG format) * **Figure 7 (19 control states) . drop tte_20 tte_21 tte_22 tte_25 tte_23 tte_24 tte_26 tte_27 tte_28 . local lp . forval i=1/19 { local lp `lp' line tte_`i' years, lcolor(gs12) || } . twoway `lp' || line tte_3 years, lcolor(black) lwidth(medium) text(-40 1984 "Passage of Proposition 99 --->", size(*0.75)) /// legend(off) yline(0, lcolor(black) lwidth(thick) lpattern(dash)) xline(1989, lwidth(medium) lpattern(dash)) /// caption(Re: Figure 7. Per-cap cig sales gaps in California & placebo gaps in 19 control states) . graph export synth19.png, replace (file synth19.png written in PNG format) ** . log close name: log: ~\myReplications\synthetic-control\synthdid.smcl log type: smcl closed on: 16 Dec 2018, 18:24:21 --------------------------------------------------------------------------------------
Leave a Reply
Want to join the discussion?Feel free to contribute!