OpenSDP Analysis / Human Capital Analysis: Recruitment / Examine the Share of New Hires Across School Years
Examine trends in hiring over time.
tidschool_yeart_new_hiret_noviceAt the state level, yout may wish to exammine hiring trends by year for specific school types or geographic areas. At the district level, you can make a graph of this type in order to examine overall hiring by school or for specific groups of schools, instead of by year.
use "${analysis}\Teacher_Year_Analysis.dta", clear
isid tid school_yearAlso generate veteran new hire indicator.
keep if school_year > 2010
keep if !missing(t_new_hire)
keep if !missing(t_novice)
keep if !missing(t_experience)
    
// Generate missing t_veteran_new_hire variable
gen t_veteran_new_hire = 0 if !missing(t_experience)
replace t_veteran_new_hire = 1 if t_new_hire == 1 & t_novice == 0 & !missing(t_experience)
assert !missing(t_experience, t_veteran_new_hire)tab school_year t_novice, mi row
tab school_year t_veteran_new_hire, mi row
tab t_novice t_veteran_new_hiresumm tid
local teacher_years = string(r(N), "%9.0fc")
preserve 
    bys tid: keep if _n == 1
    summ tid
    local unique_teachers = string(r(N), "%9.0fc")
restoreforeach var in t_novice t_veteran_new_hire {
    gen sig_`var' = .
    xi: reg `var' i.school_year, robust
    forvalues year = 2012/2015 {
        replace sig_`var' = abs(_b[_Ischool_ye_`year'] / _se[_Ischool_ye_`year']) ///
            if school_year == `year'
        replace sig_`var' = 0 if sig_`var' <= 1.96 & school_year == `year'
        replace sig_`var' = 1 if sig_`var' > 1.96 & school_year == `year'
    }
    replace sig_`var' = 0 if school_year == 2011
}Do this to calculate percent of new hires by year.
collapse (mean) t_novice t_veteran_new_hire sig_*, by(school_year)
foreach var in t_novice t_veteran_new_hire {
    replace `var' = 100 * `var'
}foreach var of varlist t_novice t_veteran_new_hire {
    tostring(sig_`var'), replace
    replace sig_`var' = "*" if sig_`var' == "1"
    replace sig_`var' = "" if sig_`var' == "0"
    gen `var'_str = string(`var', "%9.0f")
    egen `var'_label = concat(`var'_str sig_`var')
}gen t_total = t_novice + t_veteran_new_hireUse scatter plots with invisible symbols for the value labels.
#delimit ;
twoway (bar t_total school_year, 
        fcolor(forest_green) lcolor(forest_green) lwidth(0) barwidth(0.75))
    (bar t_novice school_year, 
        fcolor(maroon) lcolor(maroon) lwidth(0) barwidth(0.75)) 
    (scatter t_total school_year, 
        mcolor(none) mlabel(t_veteran_new_hire_label) mlabcolor(white) mlabpos(6)  
        mlabsize(small)) 
    (scatter t_novice school_year, 
        mcolor(none) mlabel(t_novice_label) mlabcolor(white) mlabpos(6)  
        mlabsize(small)), 
    title("Share of Teachers Who Are New Hires", span) 
    subtitle("by School Year", span) 
    ytitle("Percent of Teachers") 
    ylabel(0(10)30, nogrid labsize(medsmall)) 
    xtitle("") 
    xlabel(2011 "2010-11" 2012 "2011-12" 2013 "2012-13" 2014 "2013-14" 2015 "2014-15", 
        labsize(medsmall)) 
    legend(order(1 "Experienced New Hires" 2 "Novice New Hires")
        ring(0) position(11) symxsize(2) symysize(2) rows(2) size(medsmall) 
        region(lstyle(none) lcolor(none) color(none))) 
    graphregion(color(white) fcolor(white) lcolor(white)) 
    plotregion(color(white) fcolor(white) lcolor(white) margin(2 0 2 0))
    note(" " "*Significantly different from 2010-2011 value, at the 95 percent confidence level."
        "Notes: Sample includes teachers in the 2009-10 through 2014-15 school years, with `teacher_years' teacher years and `unique_teachers' unique teachers." 
        "Novices were in their first year of teaching.", size(vsmall) span);
#delimit cr    graph export "${graphs}/New_Hires_by_School_Year.emf", replace 
    graph save "${graphs}/New_Hires_by_School_Year.gph", replace Previous Analysis: Calculate the Share of Teachers Who Are New Hires
Next Analysis: Compare the Shares of New Hires Across School Poverty Quartiles