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.
sid
school_year
tid_math
cid_math
grade_level
t_is_teacher
t_adv_degree
t_experience
std_scaled_score_math
std_scaled_score_math_tm1
std_scaled_score_ela_tm1
Note: 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 ela
use "${analysis}\Student_Teacher_Year_Analysis.dta", clear
isid sid school_year
Keep 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 tag
Create 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^3
Create 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 == 1
Identify 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 cr
Identify 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 cr
Review 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, replace
tostring 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 cr
graph 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