OpenSDP Analysis / Human Capital Analysis: Evaluation / Examine the Distribution of Teacher Effects
Examine the distribution of teacher effectiveness estimates.
tid
school_year
school_lvl
tre_m
If more than one measure of teacher effectiveness is recorded in your agency, produce a kdensity graph for each one. Correlate two measures of teacher effectiveness (e.g., value-added estimates and classroom observation ratings). Create a scatterplot with the categories of performance on one axis and value-added ratings on the other. Examine the range of value-added estimates within each performance category.
Choose the subject (math [m] or ela [e]) and school level (elem or middle) for the analysis. Note: 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 m
local level middle
use "${analysis}/Teacher_Year_Analysis.dta", clear
isid tid school_year
Keep 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 >= 2010 & school_year <= 2015
keep if !missing(current_tre_`subject')
keep if !(sch_high == 1)
if "`level'" == "elem" {
keep if sch_elem == 1
}
if "`level'" == "middle" {
keep if sch_middle == 1
}
tab school_year
bysort tid: gen tag = _n == 1
summ tre_`subject' if tag == 1, detail
drop tag
Change data from teacher-year uniqueness level to teacher level by keeping only teacher id and pooled estimate and then dropping duplicate records.
keep tid tre_`subject'
duplicates drop
isid tid
summ tid
local unique_teachers = string(r(N), "%9.0fc")
sum tre_`subject', detail
local p10_`subject' = r(p10)
local p25_`subject' = r(p25)
local p75_`subject' = r(p75)
local p90_`subject' = r(p90)
local gap90 = round(`p90_`subject'' - `p10_`subject'', .01)
local gap75 = round(`p75_`subject'' - `p25_`subject'', .01)
local gphtxt_10 = `p10_`subject'' - .02
local gphtxt_25 = `p25_`subject'' - .02
local gphtxt_75 = `p75_`subject'' + .02
local gphtxt_90 = `p90_`subject'' + .02
local lnht75 = 1.5
local lnht90 = 0.5
local txtht75 = `lnht75' + .3
local txtht90 = `lnht90' + .3
if "`subject'" == "m" {
local subj_foot "math"
local subj_title "Math"
}
if "`subject'" == "e" {
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 (pcarrowi `lnht75' `p25_`subject'' `lnht75' `p75_`subject'',
color(cranberry) mlwidth(medthin) lwidth(medthin))
(pcarrowi `lnht75' `p75_`subject'' `lnht75' `p25_`subject'',
color(cranberry) mlwidth(medthin) lwidth(medthin))
(pcarrowi `lnht90' `p10_`subject'' `lnht90' `p90_`subject'',
color(green) mlwidth(medthin) lwidth(medthin))
(pcarrowi `lnht90' `p90_`subject'' `lnht90' `p10_`subject'',
color(green) mlwidth(medthin) lwidth(medthin))
(kdensity tre_`subject', color(navy) area(1)
xline(`p25_`subject'', lpattern(dash) lcolor(cranberry))
xline(`p75_`subject'', lpattern(dash) lcolor(cranberry))
xline(`p10_`subject'', lpattern(dash) lcolor(green))
xline(`p90_`subject'', lpattern(dash) lcolor(green))),
title("Distribution of `subj_title' Teacher Effects" " ", span)
xtitle("Teacher Effects", size(medsmall))
xscale(range(-.5(.25).5))
xlabel(-.5(.25).5, labsize(medsmall))
yscale(range(0(1)6))
ylabel(none)
text(5 `gphtxt_10' "10th percentile", orientation(vertical) size(small))
text(5 `gphtxt_25' "25th percentile", orientation(vertical) size(small))
text(5 `gphtxt_75' "75th percentile", orientation(vertical) size(small))
text(5 `gphtxt_90' "90th percentile", orientation(vertical) size(small))
text(`txtht75' 0 "`gap75'", size(medium) color(cranberry))
text(`txtht90' 0 "`gap90'", size(medium) color(green))
legend(off)
graphregion(color(white) fcolor(white) lcolor(white))
plotregion(color(white) fcolor(white) lcolor(white) margin(5 5 2 0))
note(" " "Notes: Sample includes `unique_teachers' `gradespan' grade `subj_foot'
teachers in school years 2009-10 through 2014-15." "Teacher effects are measured in
student test score standard deviations, with teacher-specific shrinkage factors applied
to adjust for" "differences in sample reliability.", size(vsmall) span);
#delimit cr
graph save "${graphs}\Overall_Teacher_Effects_`subj_title'.gph" , replace
graph export "${graphs}\Overall_Teacher_Effects_`subj_title'.emf" , replace
Next Analysis: Examine the Predictiveness of Teacher Effects