Como hacer event studies en STATA
Hay varias maneras de hacer un event study. Hay dos maneras que uso hoy por hoy, una es usando el comando -- y otra es usando el comando --.
El comando coefplot lo uso, cuando simplemente estoy editando la data, y creando do-files y quiero algo rapido.
El comando regsave lo uso cuando quiero crear event studies para publicacion y presentaciones.
114 MB
BRFSS_tenncare
https://www.dropbox.com/s/opb5jgyqr7dbicf/BRFSS_tenncare.dta?dl=0
Contexto
Para este ejemplo usaremos en context de el paper “Effects of losing public health insurance on preventative care, health, and emergency department use: Evidence from the TennCare disenrollment”. En este paper se estudia el efecto de una reforma que ocurrio en el estado de Tennessee en el 2005. Esta reforma hizo que 170,000 personas perdieran su seguro de salud (publico). El paper investiga los efectos de esta reforma en outcomes de salud preventiva, salud de las personas y visitas a emergencias. La DiD comparara a TN antes y despues del 2005 contra los otros estados de el sur. La reforma solo afecto a las personas sin hijos, asi que solo usaremos esa poblacion. La variable TN es equivalente a “Treat” en nuestro caso. En este ejercicio usaremos este contexto, y trataremos de hacer un event study de el outcome “cover” que indica si la persona tiene seguro de salud o no.
Corriendo el DiD
Usando Coefplot
El ejercicio es crear el event study de el DiD para las personas que no tiene hijos.
Usando regsave
Regsave es un comando que permite salvar coeficientes para usarlos despues ya sea en graficos o en tablas. Esto lo podemos utilizar para tener mas flexibilidad y hasta se puede tener dos event studies al mismo tiempo.
Ejemplos Avanzados con Regsave
twoway /// (connected coef var if y=="selfpay_pct_mhdiag_ahrq", sort lcolor(black) mcolor(black)) (rline ci_upper ci_lower var if y=="selfpay_pct_mhdiag_ahrq", sort lpattern(dot) lcolor(black)) (pcarrowi 0.08 12.5 .06 13 (12) "Self-Pay", lcolor(black) mcolor(black)) /// (connected coef var if y=="anyinsurance_pct_mhdiag_ahrq", sort lcolor(green) mcolor(green)) (rline ci_upper ci_lower var if y=="anyinsurance_pct_mhdiag_ahrq", sort lpattern(dot)) (pcarrowi 0.08 9 .05 9 (12) "Any Insurance", lcolor(green) mcolor(green)) /// (connected coef var if y=="medicaid_pct_mhdiag_ahrq", sort lpattern(solid) lcolor(reddish) mcolor(reddish)) (rline ci_upper ci_lower var if y=="medicaid_pct_mhdiag_ahrq", sort lpattern(dot)) (pcarrowi -0.1 12 -.08 13 (6) "Medicaid", lcolor(reddish) mcolor(reddish)) /// if var<17 & var>=6, scheme(plotplainblind) legend(off) /// xlabel(6(1)16, angle(forty_five) valuelabel) xtitle(" ") xline(11, lpattern(dash) lcolor(black%75)) /// ylabel(-0.2(0.1)0.2) yline(0, lpattern(dash) lcolor(black%75))
clear set obs 3 gen m = -15 in 1 replace m = -14 in 2 gen l = 1
twoway (scatter l m, c(n) msym(i) lwidth(none) lcolor(white) /// text(14 -14 "Two Parents", size(medium) j(right) place(west) bmargin(zero) margin(zero)) /// text(13 -14 "N=335,752", size(medium) j(right) place(west) bmargin(zero) margin(zero)) /// text(9 -14 "Single Mother", size(medium) j(right) place(west) bmargin(zero) margin(zero)) /// text(8 -14 "N=112,150", size(medium) j(right) place(west) bmargin(zero) margin(zero)) /// text(4 -14 "Single Fathers", size(medium) j(right) place(west) bmargin(zero) margin(zero)) /// text(3 -14 "N=29,482", size(medium) j(right) place(west) bmargin(zero) margin(zero)) /// legend(off) ylabel(none, nogrid) ytitle("") ysc(off range(1 16)) /// xsc(range(-16 -14) lstyle(none)) xlabel(-16(2)-14, nogmin tlcolor(white) labcolor(white) glc(white)) xtitle("", color(white)) /// title("" , color(white) size(medlarge)) fxsize(20) /// graphregion(fcolor(white) color(white) icolor(white) margin(zero)) /// saving("$resultsf/labels.gph", replace))
twoway (scatter rank coef) (rcap ci_lower ci_upper rank, sort horizontal) /// (scatter rank coef if rank==30, mcolor(purple) msymbol(circle)) (rcap ci_lower ci_upper rank if rank==30, sort lcolor(purple) horizontal) /// (scatter rank coef if rank==1, mcolor(purple) msymbol(circle)) (rcap ci_lower ci_upper rank if rank==1, sort lcolor(purple) horizontal) /// (scatter rank coef if rank==2, mcolor(purple) msymbol(circle)) (rcap ci_lower ci_upper rank if rank==2, sort lcolor(purple) horizontal) /// , ylabel(#30, valuelabel angle(horizontal)) xline(0) legend(off) ytitle("") /// title("Transitions causes by Parent's Eligibility Expansions") subtitle(Sample: Full Sample) scheme(plotplainblind)