https://zhuanlan.zhihu.com/p/137443864
egen mean_y=mean(y), by(year treat)
graph twoway (connect mean_y year if treat==1,sort) (connect mean_y year if treat==0,sort lpattern(dash)), ///
xline(1994,lpattern(dash) lcolor(gray)) ///
ytitle("y") xtitle("年度") ///
ylabel(,labsize(*0.75)) xlabel(,labsize(*0.75)) ///
legend(label(1 "处理组") label( 2 "控制组")) ///图例
xlabel(1990 (1) 1999) graphregion(color(white)) //白底
gen policy = year - 1994
tab policy
replace policy = -3 if policy < -3
replace policy = 3 if policy > 3
//首先生成年份虚拟变量与实验组虚拟变量的交互项
forvalues i = 3(-1)1{
gen pre_`i' = (policy == -`i' & treat == 1)
}
gen current = (policy == 0 & treat == 1)
forvalues j = 1(1)3{
gen post_`j' = (policy == `j' & treat == 1)
}
drop pre_1 //将政策前第一期作为基准组,很重要!!!
xtreg y pre_* current post_* i.year, fe r //将这些交互项作为解释变量进行回归