代码如下:
clear all
timer clear
set seed 10
global T = 15
global I = 400
set obs `=$I*$T'
gen i = int((_n-1)/$T )+1 // unit id
gen t = mod((_n-1),$T )+1 // calendar period
tsset i t
gen Ei = ceil(runiform()*7)+$T -6 if t==1
bys i (t): replace Ei = Ei[1]
gen K = t-Ei
*Treatment indicator
gen D = K>=0 & Ei!=.
gen tau = cond(D==1, (t-12.5), 0)
*Error term
gen eps = rnormal()
gen Y = i + 3*t + tau*D + eps
gen gvar = cond(Ei>15, 0, Ei)
csdid Y, ivar(i) time(t) gvar(gvar) agg(event)
event_plot e(b)#e(V), default_look graph_opt(xtitle("Periods since the event") ///
ytitle("Average causal effect") xlabel(-14(1)5) title("Callaway and Sant'Anna (2020)") name(CS, replace)) ///
stub_lag(T+#) stub_lead(T-#) together