合成控制法SCM案例--包含稳健性检验/安慰剂检验
自己写论文整理的材料
所有结果实际运行测试过,质量有保证仅供学习参考
synth命令详解
安装命令
- ssc install synth, replace
使用命令
- synth depvar predictorvars , trunit(#) trperiod(#) [ counit(numlist) xperiod(numlist) mspeperiod() resultsperiod() nested allopt unitnames(varname) figure keep(file) customV(numlist) optsettings ]
在使用synth命令必须先使用tsset或xtset声明下是面板数据集
譬如使用smoking.dta的话是 tsset state year 或xtset state year
注意state只能是数字,不能是文字
depvar | 必填,结果变量(因变量) |
predictorvars | [size=14.6667px]必填,预测变量(自变量) |
trunit(3) | [size=14.6667px]必填,用于指定处理地区,smoking.dta中处理组对应的编号3(即Califonia) |
trperiod(1989) | [size=14.6667px]必填,指定政策干预开始的时期,smoking.dta中禁烟法案开始时间为1989年 |
counit(numlist) | 指定控制地区,默认是除处理地区以外的所有地区都是控制地区,一般可以不加这个选项 |
xperiod(numlist) | 指定将预测变量进行平均的期间,默认为政策干预开始之前的所有时期 |
mspeperiod() | 用于指定最小化均方预测误差(MSPE)的时期,默认为政策干预开始之前的所有时期 |
figure | 将处理地区与合成控制的结果变量画时间趋势图,通常是需要加上的 |
resultsperiod() | 用来指定figure画图的时间范围,默认是整个样本时期 |
nested | 使用嵌套的数值方法寻找最优的合成控制,会花更多时间,但更精确。在使用nested选项是,如果再加上allopt(即nested allopt),则比单独使用nested还要费时间,但精确度可能更高 |
keep(结果) | 把估计结果(合成控制的权重和结果变量)输出到"结果.dta"文件,以便后续计算 |
加州禁烟法案案例
以smoking.dta(加州禁烟法案)为例
- synth cigsale retprice lnincome age15to24 beer cigsale(1975) cigsale(1980) cigsale(1988),
- trunit(3) trperiod(1989) xperiod(1980(1)1988) figure nested allopt keep(结果)