set more off ******************************************************************************** ******************************************************************************** ** FIGURE 3 ******************************************************************************** ******************************************************************************** * this just plots the results from OA Tables C.1 and C.2, see below ******************************************************************************** ******************************************************************************** ** ONLINE APPENDIX TABLE C.1 ******************************************************************************** ******************************************************************************** use pisa_stack.dta, clear keep if oecd_lavy == 1 * PANEL A: MAIN ESTIMATES (FOR COMPARISON) foreach w in 2000 2006 2009 2012 2015 2018 { preserve keep if wave == `w' qui eststo pisa`w'_lavy_rob0: areg lavy_zscore_pv1 ins_time_sch i.sub, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab pisa2006_lavy_rob0 pisa2000_lavy_rob0 pisa2009_lavy_rob0 pisa2012_lavy_rob0 pisa2015_lavy_rob0 pisa2018_lavy_rob0, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL B: ACADEMIC RECORD NOT CONSIDERED FOR SCHOOL ADMISSION foreach w in 2000 2006 2009 2012 2015 2018 { preserve keep if wave == `w' qui eststo pisa`w'_lavy_rob1: areg lavy_zscore_pv1 ins_time_sch i.sub if school_admit_no_acad_record == 1 , a(uniq_stu_id) cl(uniq_sch_id) restore } esttab pisa2006_lavy_rob1 pisa2000_lavy_rob1 pisa2009_lavy_rob1 pisa2012_lavy_rob1 pisa2015_lavy_rob1 pisa2018_lavy_rob1, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL C: STUDENTS' NEEDS OR DESIRE NOT CONSIDERED FOR SCHOOL ADMISSION foreach w in 2000 2006 2009 2012 2015 2018 { preserve keep if wave == `w' qui eststo pisa`w'_lavy_rob2: areg lavy_zscore_pv1 ins_time_sch i.sub if school_admit_no_desire == 1, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab pisa2006_lavy_rob2 pisa2000_lavy_rob2 pisa2009_lavy_rob2 pisa2012_lavy_rob2 pisa2015_lavy_rob2 pisa2018_lavy_rob2, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL D: NO TRACKING BY ABILITY BETWEEN OR WITHIN CLASSES foreach w in 2006 2009 2015 2018 { preserve keep if wave == `w' qui eststo pisa`w'_lavy_rob3: areg lavy_zscore_pv1 ins_time_sch i.sub if school_no_tracking_at_all == 1 , a(uniq_stu_id) cl(uniq_sch_id) restore } esttab pisa2006_lavy_rob3 pisa2009_lavy_rob3 pisa2015_lavy_rob3 pisa2018_lavy_rob3, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL E: PUBLIC SCHOOLS foreach w in 2000 2006 2009 2012 2015 2018 { preserve keep if wave == `w' qui eststo pisa`w'_lavy_rob4: areg lavy_zscore_pv1 ins_time_sch i.sub if school_public == 1 , a(uniq_stu_id) cl(uniq_sch_id) restore } esttab pisa2006_lavy_rob4 pisa2000_lavy_rob4 pisa2009_lavy_rob4 pisa2012_lavy_rob4 pisa2015_lavy_rob4 pisa2018_lavy_rob4, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL F: CONTROL FOR LACK OF QUALIFIED TEACHERS IN SUBJECT foreach w in 2006 2009 2012 { preserve keep if wave == `w' qui eststo pisa`w'_lavy_rob5: areg lavy_zscore_pv1 ins_time_sch i.sub i.shortage_teachers, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab pisa2006_lavy_rob5 pisa2009_lavy_rob5 pisa2012_lavy_rob5, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) ******************************************************************************** ******************************************************************************** ** ONLINE APPENDIX TABLE C.2 ******************************************************************************** ******************************************************************************** use timss_g8_stack.dta, clear keep if oecd_lavy == 1 * PANEL A: MAIN ESTIMATES (FOR COMPARISON) foreach w in 1995 1999 2003 2007 2011 2015 { preserve keep if wave == `w' qui eststo timss`w'_lavy_rob0: areg lavy_zscore_pv1 ins_time_sch i.sub, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab timss*_rob0 , nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL B: ACADEMIC RECORD NOT CONSIDERED FOR SCHOOL ADMISSION foreach w in 1995 1999 { preserve keep if wave == `w' qui eststo timss`w'_lavy_rob1: areg lavy_zscore_pv1 ins_time_sch i.sub if school_admit_no_acad_record == 1 , a(uniq_stu_id) cl(uniq_sch_id) restore } esttab timss*_rob1 , nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL C: CONTROL FOR SUBJECT-SPECIFIC TRACKING BY ABILITY foreach w in 1995 1999 2007 2015 { preserve keep if wave == `w' qui eststo timss`w'_lavy_rob2: areg lavy_zscore_pv1 ins_time_sch i.control_tracking i.sub, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab timss*_rob2, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL D: CONTROL FOR SUBJECT-SPECIFIC ENRICHMENT ACTIVITIES foreach w in 1995 1999 2003 2007 { preserve keep if wave == `w' qui eststo timss`w'_lavy_rob3: areg lavy_zscore_pv1 ins_time_sch i.control_enrichment i.sub, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab timss*_rob3, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL E: CONTROL FOR SUBJECT-SPECIFIC REMEDIAL TEACHING foreach w in 1995 1999 2003 2007 { preserve keep if wave == `w' qui eststo timss`w'_lavy_rob4: areg lavy_zscore_pv1 ins_time_sch i.control_remedial i.sub, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab timss*_rob4, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL F: CONTROL FOR SHORTAGE OF TEACHERS IN SUBJECT foreach w in 2011 2015 { preserve keep if wave == `w' qui eststo timss`w'_lavy_rob5: areg lavy_zscore_pv1 ins_time_sch i.sub i.control_shortage_teachers, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab timss*_rob5, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL G: CONTROL FOR DIFFICULTY OF HIRING TEACHERS IN SUBJECT foreach w in 2003 2007 2011 2015 { preserve keep if wave == `w' qui eststo timss`w'_lavy_rob6: areg lavy_zscore_pv1 ins_time_sch i.sub i.control_easy_hiring, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab timss*_rob6, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL H: CONTROL FOR EXPERIENCE AND EDUCATION OF SUBJECT TEACHER foreach w in 1995 1999 2003 2007 2011 2015 { preserve keep if wave == `w' qui eststo timss`w'_lavy_rob7: areg lavy_zscore_pv1 ins_time_sch i.sub control_teacher_edu control_teacher_edu_mis control_teacher_exp5y control_teacher_exp5y_mis, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab timss*_rob7, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL I: CONTROL FOR MOTHER'S STATED IMPORTANCE OF DOING WELL IN SUBJECT foreach w in 1995 1999 { preserve keep if wave == `w' qui eststo timss`w'_lavy_rob8: areg lavy_zscore_pv1 ins_time_sch i.sub i.control_mom_important_good, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab timss*_rob8, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations")) * PANEL J: CONTROL FOR EXTRA LESSONS IN SUBJECT foreach w in 1995 1999 2003 { preserve keep if wave == `w' qui eststo timss`w'_lavy_rob9: areg lavy_zscore_pv1 ins_time_sch i.sub i.control_extra_lessons, a(uniq_stu_id) cl(uniq_sch_id) restore } esttab timss*_rob9, nogap /// mtitles() nomtitles nodepvars noobs /// keep(ins_time_sch) /// varlabel(ins_time_sch "Weekly hours") /// varwidth(28) b(3) msign(-) lz /// se nostar /// stats(N, fmt(%9.0fc) labels("# of observations"))