OpenSDP Analysis / Human Capital Analysis: Development / Examine Teacher Effects by Advanced Degree
Determine whether there are differences in effectiveness estimates for teachers with and without advanced degrees.
sidschool_yeartid_mathcid_mathgrade_levelt_is_teachert_adv_degreet_experiencestd_scaled_score_mathstd_scaled_score_math_tm1std_scaled_score_ela_tm1Note: To change from math to ELA, switch the subjects in the next two lines. To generate ELA and math charts at the same time, enclose the analysis code within a loop.
local subject math
local alt_subject elause "${analysis}\Student_Teacher_Year_Analysis.dta", clear  
isid sid school_yearKeep grades and years for which prior-year test scores are available. Keep students with teachers with non-missing values for experience and degree information. Keep students with a single identi??? ed core course and current and prior-year test scores in the given subject.
keep if school_year >= 2008 & school_year <= 2011
keep if grade_level >= 5 & grade_level <= 8
keep if t_is_teacher == 1
keep if !missing(t_adv_degree)
keep if !missing(cid_`subject')
keep if !missing(std_scaled_score_`subject', std_scaled_score_`subject'_tm1)tab school_year
unique tid_`subject'
unique tid_`subject' school_year
bysort tid_`subject' school_year: gen tag = (_n == 1)
tab t_experience t_adv_degree if tag == 1, mi
drop tagCreate dummy variables for each year of teaching experience.
tab t_experience, gen(exp)Create variable for grade-by-year fixed effects.
egen grade_by_year = group(grade_level school_year)Create variables for previous year’s score squared and cubed.
gen std_scaled_score_`subject'_tm1_sq = std_scaled_score_`subject'_tm1^2
gen std_scaled_score_`subject'_tm1_cu = std_scaled_score_`subject'_tm1^3Create indicator for whether student is missing prior achievement for alternate subject. Make a replacement variable that imputes score to zero if missing.
gen miss_std_scaled_score_`alt_subject'_tm1 = ///
    missing(std_scaled_score_`alt_subject'_tm1)
gen _IMPstd_scaled_score_`alt_subject'_tm1 = std_scaled_score_`alt_subject'_tm1
replace _IMPstd_scaled_score_`alt_subject'_tm1 = 0 ///
    if miss_std_scaled_score_`alt_subject'_tm1 == 1Identify prior achievement variables to use as controls.
#delimit ;
local prior_achievement 
    "std_scaled_score_`subject'_tm1 
    std_scaled_score_`subject'_tm1_sq
    std_scaled_score_`subject'_tm1_cu 
    _IMPstd_scaled_score_`alt_subject'_tm1 
    miss_std_scaled_score_`alt_subject'_tm1";
#delimit crIdentify other student variables to use as controls.
#delimit;
local student_controls 
    "s_male 
    s_black 
    s_asian 
    s_latino 
    s_naam 
    s_mult 
    s_racemiss 
    s_reducedlunch 
    s_freelunch 
    s_lunch_miss
    s_retained
    s_retained_miss
    s_gifted
    s_gifted_miss
    s_iep
    s_iep_miss
    s_ell
    s_ell_miss
    s_absence_high
    s_absence_miss";
#delimit crReview all variables to be included in the teacher effectiveness model. Class and cohort (grade/ school/year) variables should include means of all student variables, and means, standard deviations, and percent missing for prior-year test scores for both main and alternate subject. Class and cohort size should also be included as controls.
codebook std_scaled_score_`subject' t_adv_degree exp*
codebook `prior_achievement' 
codebook `student_controls' 
codebook _CL*`subject'* 
codebook _CO*
codebook grade_by_year cid_`subject'Compare teachers with and without advanced degrees, without teacher experience controls.
reg std_scaled_score_`subject' t_adv_degree ///
    `student_controls' `prior_achievement' _CL*`subject'* _CO* ///
    i.grade_by_year, cluster(cid_`subject')gen coef_noexp = _b[t_adv_degree]
gen se_noexp = _se[t_adv_degree]egen teachers_in_sample_noexp = nvals(tid_`subject') if e(sample)
summ teachers_in_sample_noexp
local teachers_in_sample_noexp = r(mean)Compare teachers with and without advanced degrees, with teacher experience controls.
reg std_scaled_score_`subject' t_adv_degree exp* ///
    `student_controls' `prior_achievement' _CL*`subject'* _CO* ///
    i.grade_by_year, cluster(cid_`subject')gen coef_wexp = _b[t_adv_degree]
gen se_wexp = _se[t_adv_degree]Get teacher sample size for this model and compare sample size for the two models.
egen teachers_in_sample_wexp = nvals(tid_`subject') if e(sample)
summ teachers_in_sample_wexp
local teachers_in_sample_wexp = r(mean)
assert `teachers_in_sample_wexp' == `teachers_in_sample_noexp'egen teacher_years = nvals(tid_`subject' school_year) if e(sample)
summ teacher_years
local teacher_years = string(r(mean), "%9.0fc")
egen unique_teachers = nvals(tid_`subject') if e(sample)
summ unique_teachers
local unique_teachers = string(r(mean), "%9.0fc")collapse(max) coef* se*foreach spec in noexp wexp {
    gen sig_`spec' = abs(coef_`spec') - 1.96 * se_`spec' > 0
}gen results = 1 
reshape long coef_ se_ sig_, i(results) j(spec) string
rename coef_ coef
rename se_ se
rename sig_ sig
replace spec = "1" if spec == "noexp"
replace spec = "2" if spec == "wexp"
destring spec, replacetostring sig, replace
replace sig = "*" if sig == "1"
replace sig = ""  if sig == "0"
replace coef = round(coef,.001)
egen coef_label = concat(coef sig)if "`subject'" == "math" {
    local subject_foot "math"
    local subj_title "Math"
}
if "`subject'" == "ela" {
    local subject_foot "English/Language Arts"
    local subj_title "ELA"
}#delimit ;
graph twoway (bar coef spec,
        fcolor(dknavy) lcolor(dknavy) lwidth(0) barwidth(0.7))
    (scatter coef spec,
        mcolor(none) mlabel(coef_label) mlabcolor(black) mlabpos(12)  
        mlabsize(small)),
    yline(0, style(extended) lpattern(dash) lwidth(medthin) lcolor(black))
    title("Effectiveness of `subj_title' Teachers with Advanced Degrees", 
    span) 
    subtitle("Relative to Teachers without Advanced Degrees", span) 
    ytitle("Difference in Teacher Effects", size(medsmall)) 
    yscale(range(-.05 .2)) 
    ytick(-.05(.05).2) 
    ylabel(-.05(.05).2, nogrid) 
    xlabel("", notick)
    xtitle("") 
    xlabel(1 `""Without Teacher" "Experience Controls""' 
        2 `""With Teacher" "Experience Controls""', labsize(medsmall)) 
    legend(off) 
    graphregion(color(white) fcolor(white) lcolor(white))
    plotregion(color(white) fcolor(white) lcolor(white) margin(5 5 2 0))
    note(" " "*Significantly different from zero, at the 95 percent confidence 
level." "Notes: Sample includes 2007-08 through 2010-11 5th through 8th grade `subj_foot'
teachers, with `teacher_years' teacher years and `unique_teachers' unique teachers." 
"Teacher effects are measured in student test score standard deviations. Advanced degrees
are master's or higher.", size(vsmall) span);   
#delimit crgraph export "${graphs}/Teacher_Effects_Advanced_Degree_`subj_title'.emf", replace 
graph save "${graphs}/Teacher_Effects_Advanced_Degree_`subj_title'.gph", replace Previous Analysis: Observe Growth in Teacher Effects for Early Career Teachers