我用了两种 每种图也不一样 <br>
第一种<br>
forval i=1/22{<br>
qui synth lncarbon lnConsumption lnemployees1 lnincome1 lnGDP lnpopulation, ///<br>
trunit(`i') trperiod(2013) keep(smoking_synth_`i',replace)<br>
matrix `resmat' = nullmat(`resmat') \ e(RMSPE) <br>
local names =`names' +`i'<br>
}
mat colnames `resmat' = "RMSPE" <br>
mat rownames `resmat' = `names' //矩阵的行名为names<br>
matlist `resmat' , row("Treated Unit")
forval i=1/22{<br>
use smoking_synth_`i', clear<br>
rename _time years<br>
gen tr_effect_`i' = _Y_treated - _Y_synthetic<br>
keep years tr_effect_`i'<br>
drop if missing(years)<br>
save smoking_synth_`i', replace<br>
}
第二种<br>
ssc install synth, replace <br>
tsset 序号 年份
gen lnConsumption =log( Consumption )<br>
gen lnemployees1 =log( employees1 )<br>
gen lnincome1 =log( income1 )<br>
gen lnGDP =log( GDP )<br>
gen lnpopulation =log(population )<br>
gen lncarbon =log( carbon )<br><br><br>
tempname resmat <br>
forvalues i = 1/22 {<br>
synth lncarbon lnConsumption lnemployees1 lnincome1 lnGDP lnpopulation , trunit(`i') trperiod(2013) ///<br>
xperiod(2006(1)2011) mspeperiod<br>
<br>
matrix `resmat' = nullmat(`resmat') \ e(RMSPE) <br>
local names `"`names' `"`i'"'"' <br>
}<br>
mat colnames `resmat' = "RMSPE" <br>
mat rownames `resmat' = `names' <br>
matlist `resmat' , row("Treated Unit") <br>
novarabbrev <br>
forval i=1/22{ <br>
qui synth lncarbon lnConsumption lnemployees1 lnincome1 lnGDP lnpopulation , ///<br>
xperiod(2006(1)2010) trunit(`i') trperiod(2011) keep(synth_`i', replace)<br>
}
forval i=1/22{<br>
use synth_`i', clear<br>
rename _time years<br>
gen tr_effect_`i' = _Y_treated - _Y_synthetic<br>
keep years tr_effect_`i'<br>
drop if missing(years)