Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Coefplot: Multiple Models and Multiple Coefficient Names

    * ================================================== ============================================= *
    * 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

    }

    */
    Click image for larger version

Name:	Secondary_Outcomes_ht_jobsearch_20231204.jpg
Views:	1
Size:	166.9 KB
ID:	1750684

    Last edited by Elijah Kipchumba; 21 Apr 2024, 09:39.
Working...
X