* ================================================== ============================================= *
* Declare Dataset and variables
* ================================================== ============================================= *
use "${DTA_Panel_CLEANED_IE}", clear
local vars_secondaryoutcomes iga jobsearch2 attend_sch aspire_edu
local vars_het female ht_jobsearch
local vars_strata_full rct_strata enumround
local vars_strata_full_int rct_strataXmid rct_strataXend enumround
local vars_strata_full rct_strata enumround
* ================================================== ============================================= *
* Heterogeneity Variables
* ================================================== ============================================= *
* Relabling variables for some convenience
label var female " "
label define gender 1 "Women" 0 "Men"
label value female gender
label var ht_jobsearch " "
label define jobsearch 0 "Not searching for a job" 1 "Searching for a job"
label value ht_jobsearch jobsearch
* ================================================== ============================================= *
* Graph Options
* ================================================== ============================================= *
global graph_opts1 ///
bgcolor(white) ///
graphregion(color(white) lc(white) lw(thin)) ///
ylab(, angle(0) nogrid) xscale(titlegap(-1)) yscale(titlegap(-1)) ///
ytitle(, placement(center) justification(center)) ///
xtitle(, placement(center) justification(center)) ///
title(, justification(center) color(black) span pos(11)) ///
subtitle(, justification(center) color(black) size(small)) ///
legend(position(bottom) size(vsmall) bmargin(zero) region(lwidth(none) fcolor(gs15)) lc(gray)) ///
note(,span size(small) margin(small))
* ================================================== ============================================= *
* Heterogenous Effects
* ================================================== ============================================= *
foreach var of local vars_het {
local label : variable label `var'
local num_depvars: list sizeof vars_secondaryoutcomes
local vars_het_vallab_0: label (`var') 0
local vars_het_vallab_1: label (`var') 1
eststo clear
local i=1
while `i' <=`num_depvars' {
local skill: word `i' of `vars_secondaryoutcomes'
local labelName: var label `skill'
qui gen baselinevalue=`skill' if round==0
label var baselinevalue "Baseline value"
qui bysort s1_8: egen skill_rough=max(baselinevalue)
qui replace baselinevalue=skill_rough
qui gen m_baseline=(baselinevalue==.)
qui bysort rct_strata: egen rough=mean(baselinevalue) if treatment==0 & round==0 // fill with baseline control mean within strata
qui bysort s1_8: egen basemean=max(rough)
qui replace baselinevalue=basemean if m_baseline==1
qui gen baselinevalueXmid= baselinevalue * mid
qui gen baselinevalueXend= baselinevalue * end
eststo end_`skill' : quietly reghdfe `skill' treat1Xend treat1XendX`var' treat2Xend treat2XendX`var' treat3Xend treat3XendX`var' `var' baselinevalueXend m_baseline if round==2 & panel==1, absorb(`vars_strata_full') vce(robust)
eststo ht_2_`skill': quietly xlincom (het210 = treat1Xend) (het211 = treat1Xend + treat1XendX`var') (het220 = treat2Xend) (het221 = treat2Xend + treat2XendX`var') (het230 = treat3Xend) (het231 = treat3Xend + treat3XendX`var'), post
eststo mid_`skill' : quietly reghdfe `skill' treat1Xmid treat1XmidX`var' treat2Xmid treat2XmidX`var' treat3Xmid treat3XmidX`var' `var' baselinevalueXmid m_baseline if round==1 & panel==1, absorb(`vars_strata_full') vce(robust)
eststo ht_1_`skill': quietly xlincom (het110 = treat1Xmid) (het111 = treat1Xmid + treat1XmidX`var') (het120 = treat2Xmid) (het121 = treat2Xmid + treat2XmidX`var') (het130 = treat3Xmid) (het131 = treat3Xmid + treat3XmidX`var'), post
drop baselinevalue* skill_rough m_baseline basemean rough
local i=`i' + 1
}
local ht_1_vars_secondaryoutcomes
local ht_2_vars_secondaryoutcomes
foreach v of local vars_secondaryoutcomes {
local ht_1_vars_secondaryoutcomes `ht_1_vars_secondaryoutcomes' ht_1_`v'
local ht_2_vars_secondaryoutcomes `ht_2_vars_secondaryoutcomes' ht_2_`v'
}
coefplot (`ht_1_vars_secondaryoutcomes', keep(het110) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_1_vars_secondaryoutcomes', keep(het111) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Midline: Awareness (A)") || ///
(`ht_1_vars_secondaryoutcomes', keep(het120) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_1_vars_secondaryoutcomes', keep(het121) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Midline: Management (M)") || ///
(`ht_1_vars_secondaryoutcomes', keep(het130) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_1_vars_secondaryoutcomes', keep(het131) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Midline: A + M") || ///
(`ht_2_vars_secondaryoutcomes', keep(het210) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_2_vars_secondaryoutcomes', keep(het211) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Endline: Awareness (A)") || ///
(`ht_2_vars_secondaryoutcomes', keep(het220) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_2_vars_secondaryoutcomes', keep(het221) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Endline: Management (M)") || ///
(`ht_2_vars_secondaryoutcomes', keep(het230) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_2_vars_secondaryoutcomes', keep(het231) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Endline: A + M") ||, ///
asequation swapnames eqrename(ht_1_*= "" ht_2_*= "", regex) ///
${graph_opts1} legend(rows(1) position(bottom)) xline(0, lcolor(gs7) lpat(dash)) xtitle("Effect Size", size(small)) xlabel(-.1(.1).1, labsize(small)) ///
grid(between glpattern(dot) glwidth(vthin) glcolor(gray)) graphregion(margin(l=0 r=0 t=0 b=0)) scheme(plotplain) ///
levels(95) ciopts(recast(rcap) lw(thin)) mlabel(cond(@pval<.01, "***", cond(@pval<.05, "**", cond(@pval<.1, "*","")))) ///
byopts(compact cols(3))
graph export "${DIREC_OUTPUT}/Figures/Secondary_Outcomes_`var'_20231204.pdf", as(pdf) name("Graph") replace
}
*/
* Declare Dataset and variables
* ================================================== ============================================= *
use "${DTA_Panel_CLEANED_IE}", clear
local vars_secondaryoutcomes iga jobsearch2 attend_sch aspire_edu
local vars_het female ht_jobsearch
local vars_strata_full rct_strata enumround
local vars_strata_full_int rct_strataXmid rct_strataXend enumround
local vars_strata_full rct_strata enumround
* ================================================== ============================================= *
* Heterogeneity Variables
* ================================================== ============================================= *
* Relabling variables for some convenience
label var female " "
label define gender 1 "Women" 0 "Men"
label value female gender
label var ht_jobsearch " "
label define jobsearch 0 "Not searching for a job" 1 "Searching for a job"
label value ht_jobsearch jobsearch
* ================================================== ============================================= *
* Graph Options
* ================================================== ============================================= *
global graph_opts1 ///
bgcolor(white) ///
graphregion(color(white) lc(white) lw(thin)) ///
ylab(, angle(0) nogrid) xscale(titlegap(-1)) yscale(titlegap(-1)) ///
ytitle(, placement(center) justification(center)) ///
xtitle(, placement(center) justification(center)) ///
title(, justification(center) color(black) span pos(11)) ///
subtitle(, justification(center) color(black) size(small)) ///
legend(position(bottom) size(vsmall) bmargin(zero) region(lwidth(none) fcolor(gs15)) lc(gray)) ///
note(,span size(small) margin(small))
* ================================================== ============================================= *
* Heterogenous Effects
* ================================================== ============================================= *
foreach var of local vars_het {
local label : variable label `var'
local num_depvars: list sizeof vars_secondaryoutcomes
local vars_het_vallab_0: label (`var') 0
local vars_het_vallab_1: label (`var') 1
eststo clear
local i=1
while `i' <=`num_depvars' {
local skill: word `i' of `vars_secondaryoutcomes'
local labelName: var label `skill'
qui gen baselinevalue=`skill' if round==0
label var baselinevalue "Baseline value"
qui bysort s1_8: egen skill_rough=max(baselinevalue)
qui replace baselinevalue=skill_rough
qui gen m_baseline=(baselinevalue==.)
qui bysort rct_strata: egen rough=mean(baselinevalue) if treatment==0 & round==0 // fill with baseline control mean within strata
qui bysort s1_8: egen basemean=max(rough)
qui replace baselinevalue=basemean if m_baseline==1
qui gen baselinevalueXmid= baselinevalue * mid
qui gen baselinevalueXend= baselinevalue * end
eststo end_`skill' : quietly reghdfe `skill' treat1Xend treat1XendX`var' treat2Xend treat2XendX`var' treat3Xend treat3XendX`var' `var' baselinevalueXend m_baseline if round==2 & panel==1, absorb(`vars_strata_full') vce(robust)
eststo ht_2_`skill': quietly xlincom (het210 = treat1Xend) (het211 = treat1Xend + treat1XendX`var') (het220 = treat2Xend) (het221 = treat2Xend + treat2XendX`var') (het230 = treat3Xend) (het231 = treat3Xend + treat3XendX`var'), post
eststo mid_`skill' : quietly reghdfe `skill' treat1Xmid treat1XmidX`var' treat2Xmid treat2XmidX`var' treat3Xmid treat3XmidX`var' `var' baselinevalueXmid m_baseline if round==1 & panel==1, absorb(`vars_strata_full') vce(robust)
eststo ht_1_`skill': quietly xlincom (het110 = treat1Xmid) (het111 = treat1Xmid + treat1XmidX`var') (het120 = treat2Xmid) (het121 = treat2Xmid + treat2XmidX`var') (het130 = treat3Xmid) (het131 = treat3Xmid + treat3XmidX`var'), post
drop baselinevalue* skill_rough m_baseline basemean rough
local i=`i' + 1
}
local ht_1_vars_secondaryoutcomes
local ht_2_vars_secondaryoutcomes
foreach v of local vars_secondaryoutcomes {
local ht_1_vars_secondaryoutcomes `ht_1_vars_secondaryoutcomes' ht_1_`v'
local ht_2_vars_secondaryoutcomes `ht_2_vars_secondaryoutcomes' ht_2_`v'
}
coefplot (`ht_1_vars_secondaryoutcomes', keep(het110) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_1_vars_secondaryoutcomes', keep(het111) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Midline: Awareness (A)") || ///
(`ht_1_vars_secondaryoutcomes', keep(het120) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_1_vars_secondaryoutcomes', keep(het121) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Midline: Management (M)") || ///
(`ht_1_vars_secondaryoutcomes', keep(het130) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_1_vars_secondaryoutcomes', keep(het131) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Midline: A + M") || ///
(`ht_2_vars_secondaryoutcomes', keep(het210) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_2_vars_secondaryoutcomes', keep(het211) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Endline: Awareness (A)") || ///
(`ht_2_vars_secondaryoutcomes', keep(het220) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_2_vars_secondaryoutcomes', keep(het221) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Endline: Management (M)") || ///
(`ht_2_vars_secondaryoutcomes', keep(het230) label(`label'`vars_het_vallab_0') msymbol(O) mlcolor(midgreen) mfcolor(midgreen*.3)) ///
(`ht_2_vars_secondaryoutcomes', keep(het231) label(`label'`vars_het_vallab_1') msymbol(S) mlcolor(magenta) mfcolor(magenta*.3)), bylabel("Endline: A + M") ||, ///
asequation swapnames eqrename(ht_1_*= "" ht_2_*= "", regex) ///
${graph_opts1} legend(rows(1) position(bottom)) xline(0, lcolor(gs7) lpat(dash)) xtitle("Effect Size", size(small)) xlabel(-.1(.1).1, labsize(small)) ///
grid(between glpattern(dot) glwidth(vthin) glcolor(gray)) graphregion(margin(l=0 r=0 t=0 b=0)) scheme(plotplain) ///
levels(95) ciopts(recast(rcap) lw(thin)) mlabel(cond(@pval<.01, "***", cond(@pval<.05, "**", cond(@pval<.1, "*","")))) ///
byopts(compact cols(3))
graph export "${DIREC_OUTPUT}/Figures/Secondary_Outcomes_`var'_20231204.pdf", as(pdf) name("Graph") replace
}
*/