OpenSDP Analysis / Human Capital Analysis: Development / Observe Growth in Teacher Effects for Early Career Teachers
Observe how teachers’ effectiveness estimates change as they gain teaching experience.
sidschool_yeartid_mathcid_mathgrade_levelt_is_teachert_experiencestd_scaled_score_mathstd_scaled_score_math_tm1std_scaled_score_ela_tm1Choose the subject (math or ela) and school level (elem or middle) for the analysis. Note: To change from math to ELA, switch the subjects in the next two lines. To make multiple charts at the same time, put loops for subject and level around the analysis and graphing code. To include all grade levels in the analysis, comment out the local level command below.
local subject math
local alt_subject ela
*local level middleuse "${analysis}\Student_Teacher_Year_Analysis.dta", clear  
isid sid school_yearKeep years for which teacher effects value added estimates are available. Keep only records for which teachers have pooled teacher effects estimates (pooled estimates use information from all available years for each teacher). If school level restriction is chosen, keep only records from either elementary or middle schools.
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_experience)
keep if !missing(cid_`subject')
keep if !missing(std_scaled_score_`subject', std_scaled_score_`subject'_tm1)
if "`level'" == "elem" {    
    keep if grade_level == 5
}
if "`level'" == "middle" {
    keep if grade_level >= 6 & grade_level <= 8
}tab school_year
unique tid_`subject'
unique tid_`subject' school_year
tab t_experience t_novice, mi
bysort tid_`subject' school_year: gen tag = (_n == 1)
tab t_experience if tag == 1, mi
drop tagCreate dummy variables for each year of teaching experience, putting all teachers with 10 or more years of experience in one group.
replace t_experience = 10 if t_experience >= 10
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' exp1-exp10
codebook `prior_achievement' 
codebook `student_controls' 
codebook _CL*`subject'* 
codebook _CO*
codebook grade_by_year cid_`subject'Estimate growth in teacher effectiveness relative to novice teachers, using within-teacher fixed effects. 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.
areg std_scaled_score_`subject' exp2-exp10 `prior_achievement' `student_controls' ///
        _CL*`subject'* _CO* i.grade_by_year, absorb(tid_`subject') cluster(cid_`subject')forval year = 2/10 {
    gen coef_exp`year' = _b[exp`year']
    gen se_exp`year' = _se[exp`year']
}Set values to zero for novice comparison teachers.
gen coef_exp1 = 0 if exp1 == 1
gen se_exp1 = 0 if exp1 == 1egen 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_exp* se_exp*
gen results = 1
reshape long coef_exp se_exp, i(results) j(year_teaching)
rename coef_exp coef
rename se_exp seGenerate confidence intervals of the estimated returns to experience.
conf_hi = coef + (se * 1.96)
gen conf_low = coef - (se * 1.96)   
replace coef = round(coef,.01)Define subject and school level titles for graph.
if "`subject'" == "math" {
    local subj_foot "math"
    local subj_title "Math"
}
if "`subject'" == "ela" {
    local subj_foot "English/Language Arts"
    local subj_title "ELA"
}
local gradespan "5th through 8th"
if "`level'" == "middle" {
    local subj_title "Middle School `subj_title'"
    local gradespan "6th through 8th"
}
if "`level'" == "elem" {
    local subj_title "Elementary School `subj_title'"
    local gradespan "5th"
}#delimit ;
twoway rarea conf_hi conf_low year_teaching if year_teaching <= 10,
    sort
    color(ltblue) ||
    
    scatter coef year_teaching,
        mlab(coef) mlabposition(12) mcolor(dknavy) mlabcolor(dknavy)
        yline(0, lcolor(gs7) lpattern(dash)) 
        yscale(range(-.05(.05).3))
        ylabel(0(.1).4, labsize(medsmall) nogrid)
        ytick(0(.1).4) ||,
    
    graphregion(color(white) fcolor(white) lcolor(white)) 
    plotregion(color(white) fcolor(white) lcolor(white)) 
    
    title("Growth in `subj_title' Teacher Effects", span)
    subtitle("Compared to First Year of Teaching", span)
    ytitle("Difference in Teacher Effects", size(medsmall))
    legend(order(2 1 3) 
    label(2 "Teacher Effect")  
    label(1 "95% Confidence Interval")) 
    legend(cols(2) symxsize(5) ring(1) region(lstyle(none) lcolor(none) color(none))) 
    xtitle("Year Teaching") 
    xtick(1(1)10) 
    xscale(range(1(1)10)) 
    xlabel(1 "1" 2 "2" 3 "3" 4 "4" 5 "5" 6 "6" 7 "7" 8 "8" 9 "9" 10 "10+") 
    
    note(" " "Notes: Sample includes `gradespan' grade `subj_foot' teachers
in the 2007-08 through 2011-12 school years, with `teacher_years' teacher years and" 
"`unique_teachers' unique teachers. Teacher effects are average within-teacher
year-to-year changes, measured in student test score standard deviations.", size(vsmall) 
span);
#delimit crgraph export "${graphs}/Returns_to_Teaching_Experience_`subj_title'.emf", replace 
graph save "${graphs}/Returns_to_Teaching_Experience_`subj_title'.gph", replaceNext Analysis: Examine Teacher Effects by Advanced Degree