Announcement

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

  • Combine multiple models using coefplot

    Hi,

    I'd like to create a coefficient plot similar to the one below but using one color when "XXX = 2" (i.e. rep78=2), another when "XXX = 3" (i.e. rep78=3) and so on.
    Click image for larger version

Name:	pic1.png
Views:	1
Size:	35.2 KB
ID:	1771491



    Code:
    sysuse auto, clear
    
    gen mpg2 = inrange(mpg, 26.5, 41)
    la var mpg2 "High mpg"
    gen mpg3 = inrange(mpg, 33.75, 41)
    la var mpg3 "Very high mpg"
    gen headroom2 = inrange(headroom, 3.25, 5)
    la var mpg2 "High headroom"
    gen headroom3 = inrange(headroom, 4.125, 5)
    la var mpg3 "Very high headroom"
    gen trunk2 = inrange(trunk, 14, 23)
    la var mpg2 "High trunk"
    gen trunk3 = inrange(trunk, 18.5, 23)
    la var mpg3 "Very high trunk"
    
    global mpg "mpg2 mpg3"
    global headroom "headroom2 headroom3"
    global trunk "trunk2 trunk3"
    
    foreach var of varlist $mpg $headroom $trunk {
                
        local lbl : variable label `var'
        cap gen i_`var' = rep78
        label var i_`var' "`lbl'"
        qui tab i_`var'
        reghdfe  `var' i.i_`var' weight turn gear_ratio, absorb(foreign)
        est sto `var'
    }
    
    coefplot     ($mpg \ $headroom \ $trunk)                                             ///
                , keep(2.i* 3.i* 4.i* 5.i*)                                          ///
                headings(2.i_mpg2 = "{bf: Mpg }"                                    ///
                    2.i_headroom2 = "{bf: Headroom }"                                ///
                    2.i_trunk2 = "{bf: Trunk }"                                        ///
                    )                                                                ///
                xline(0)                                                             ///
                byopts(compact) eqstrict                                             ///
                legend(order(1 "Controls")                                            ///
                    position(6)) scale(0.9)                                            ///
                ysize(14)
    And would also like a compact display of all coefficients for the same variable as below using the code below
    Click image for larger version

Name:	pic2.png
Views:	1
Size:	21.6 KB
ID:	1771492



    Code:
    sysuse auto, clear
    
    global varlist "mpg headroom trunk"
    
    gen rep78_2 = inrange(rep78, 4, 5)
    
    gen mpg2 = inrange(mpg, 26.5, 41)
    la var mpg2 "High mpg"
    gen mpg3 = inrange(mpg, 33.75, 41)
    la var mpg3 "Very high mpg"
    gen headroom2 = inrange(headroom, 3.25, 5)
    la var headroom2 "High headroom"
    gen headroom3 = inrange(headroom, 4.125, 5)
    la var headroom3 "Very high headroom"
    gen trunk2 = inrange(trunk, 14, 23)
    la var trunk2 "High trunk"
    gen trunk3 = inrange(trunk, 18.5, 23)
    la var trunk3 "Very high trunk"
    
    * Preparing variable names
    foreach l in varlist {
                
        forvalues k = 2/3 {
            
            global `l'`k' = ""
            foreach var in ${`l'} {
                global `l'`k' = " ${`l'`k'} `var'`k'"
            }
            forvalues j=1/2 {
                global `l'`k'_`j' = ""
                
                foreach var in ${`l'} {
                    global `l'`k'_`j' = " ${`l'`k'_`j'} `var'`k'_`j'"
                }            
            }
        }
    }
    
    
    foreach var of varlist $varlist2 $varlist3 {
                
        local lbl : variable label `var'
        cap gen i_`var' = rep78_2
        label var i_`var' "`lbl'"
        qui tab i_`var'
        reghdfe  `var' i_`var', absorb(foreign)
        est sto `var'_1
        reghdfe  `var' i_`var' weight turn gear_ratio, absorb(foreign)
        est sto `var'_2
    }
    
    coefplot    ($varlist2_1 \ $varlist3_1 \                                        ///
                , pstyle(p4) mcolor(blue) ciopts(lcolor(blue) recast(rcap)))         ///
                ($varlist2_2 \ $varlist3_2 \                                        ///
                , pstyle(p4) mcolor(green) ciopts(lcolor(green) recast(rcap)))         ///            
                , keep(i_* )                                                         ///
                headings(i_mpg2 = "{bf: Mpg }"                                           ///
                    i_headroom2 = "{bf: Headroom }"                                 ///
                    i_trunk2 = "{bf: Trunk }"                                          ///
                    )                                                               ///
                xline(0)                                                            ///
                byopts(compact) eqstrict                                            ///
                legend(order(1 "No controls" 3 "Controls")                            ///
                    position(6)) scale(0.9)                                         ///
                ysize(14)
    Any help would be greatly appreciated. Thank you
Working...
X