diff --git a/validation/.DS_Store b/validation/.DS_Store new file mode 100644 index 000000000..bd5a99564 Binary files /dev/null and b/validation/.DS_Store differ diff --git a/validation/01_estimate_validation/.DS_Store b/validation/01_estimate_validation/.DS_Store new file mode 100644 index 000000000..9da79e3df Binary files /dev/null and b/validation/01_estimate_validation/.DS_Store differ diff --git a/validation/01_estimate_validation/do_files/int_val_education.do b/validation/01_estimate_validation/do_files/int_val_education.do new file mode 100644 index 000000000..8a50d8901 --- /dev/null +++ b/validation/01_estimate_validation/do_files/int_val_education.do @@ -0,0 +1,848 @@ +******************************************************************************** +* PROJECT: ESPON +* SECTION: Education +* OBJECT: Internal validation +* AUTHORS: Ashley Burdett, Daria Popova +* LAST UPDATE: May 2025 +* COUNTRY: UK + +* NOTES: Compares predicted values to the observed values of the +* 3 education processes estimated. +* Individual heterogeneity added to the standard predicted +* values using a random draw like in stochasitic +* imputation. The pooled mean is obtained as in multiple +* imputation by repeating the random draw 20 times for each +* process. +* +* Run after "reg_education.do" +******************************************************************************** + +******************************************************* +* E1a: Probability of Leaving Initial Education Spell * +******************************************************* + +* Year +use "$dir_validation_data/E1a_sample", clear + +// construct multiple versions of the predicted outcome allowing for different +// random draws +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_ded`i' = 0 + replace pred_ded`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +// for each iteration calculate the share that leave edu +collapse (mean) ded pred_ded* [aw = dwt], by(stm) + +order pred_ded* + +// take the average across datasets +egen pred_ded = rowmean(pred_ded0-pred_ded19) +replace stm = 2000 + stm + +twoway /// +(line pred_ded stm, sort color(green) legend(label(1 "Predicted"))) /// +(line ded stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "UKHLS"))), /// +title("Continues in Initial Education Spell") xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed in their initial education spell, aged 16-29" "Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E1a_continues_edu_ts_16_29_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Gender +preserve +collapse (mean) ded pred_ded* [aw = dwt], by(dgn stm) + +order pred_ded* + +egen pred_ded = rowmean(pred_ded0-pred_ded19) + +replace stm = 2000 + stm + +twoway /// +(line pred_ded stm if dgn == 0, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line ded stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph1) title("Females") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + + +twoway /// +(line pred_ded stm if dgn == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line ded stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph2) title("Males") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 , /// + title("Continues in Initial Education Spell") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed in their initial education spell, aged 16-29. Initial education" "spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E1a_continues_edu_ts_16_29_gender.png", ///, /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Age +preserve + +collapse (mean) ded pred_ded* [aw = dwt], by(dag) + +order pred_ded* + +egen pred_ded = rowmean(pred_ded0-pred_ded19) + +twoway /// +(line pred_ded dag, sort color(green) legend(label(1 "Predicted"))) /// +(line ded dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "UKHLS"))), /// +title("Continues in Initial Education Spell") subtitle("Share by age") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed in their initial education spell, aged 16-29." "Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E1a_continues_edu_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Income +preserve + +collapse (mean) ded pred_ded* [aw = dwt], by(ydses_c5 stm) + +order pred_ded* + +egen pred_ded = rowmean(pred_ded0-pred_ded19) + +replace stm = 2000 + stm + +twoway /// +(line pred_ded stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line ded stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_ded stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line ded stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_ded stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line ded stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_ded stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line ded stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph4) title("Fourth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_ded stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line ded stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Continues in Initial Education Spell") /// + subtitle("By hh dispoable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed in their initial education spell, aged 16-29. Initial education" "spell defined generously.", size(vsmall)) + +graph export /// +"$dir_validation_graphs/education/int_validation_E1a_continues_edu_ts_16_29_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Marital status +preserve + +collapse (mean) ded pred_ded* [aw = dwt], by(dcpst stm) + +order pred_ded* + +egen pred_ded = rowmean(pred_ded0-pred_ded19) + +replace stm = 2000 + stm + +twoway /// +(line pred_ded stm if dcpst == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line ded stm if dcpst == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph1) title("Partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_ded stm if dcpst == 2, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line ded stm if dcpst == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph2) title("Single") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_ded stm if dcpst == 3, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line ded stm if dcpst == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph3) title("Previously partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 , /// + title("Continues in Initial Education Spell") /// + subtitle("By partnership status") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed in their initial education spell, aged 16-29. Initial education" "spell defined generously.", size(vsmall)) + +graph export /// +"$dir_validation_graphs/education/int_validation_E1a_continues_edu_ts_16_29_both_partnership.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +graph drop _all + +restore + + +********************************************** +* E1b: Probability of Returning to Education * +********************************************** + +* Year +use "$dir_validation_data/E1b_sample", clear + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_der`i' = 0 + replace pred_der`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +collapse (mean) der pred_der* [aw = dwt], by(stm) + +order pred_der* + +egen pred_der = rowmean(pred_der0-pred_der19) +replace stm = 2000 + stm + +twoway /// +(line pred_der stm, sort color(green) legend(label(1 "Predicted"))) /// +(line der stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "UKHLS"))), /// +title("Returns to Education") xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are not observed in their initial education spell in their previous" "observation, aged 16-35. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E1b_returns_edu_ts_16_35_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Gender +preserve + +collapse (mean) der pred_der* [aw = dwt], by(dgn stm) + +order pred_der* + +egen pred_der = rowmean(pred_der0-pred_der19) + +replace stm = 2000 + stm + +twoway /// +(line pred_der stm if dgn == 0, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line der stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph1) title("Females") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_der stm if dgn == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line der stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph2) title("Males") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2, /// + title("Returns to education") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are not observed in their initial education spell in their previous" "observation, aged 16-35. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E1b_returns_edu_ts_16_35_gender.png", /// +as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Age +preserve + +collapse (mean) der pred_der* [aw = dwt], by(dag) + +order pred_der* + +egen pred_der = rowmean(pred_der0-pred_der19) + +twoway /// +(line pred_der dag, sort color(green) legend(label(1 "Predicted"))) /// +(line der dag, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +title("Returns to Education") subtitle("Share by age") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are not observed in their initial education spell in their previous" "observation, aged 16-35. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E1b_returns_edu_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Income +preserve + +collapse (mean) der pred_der* [aw = dwt], by(ydses_c5 stm) + +order pred_der* + +egen pred_der = rowmean(pred_der0-pred_der19) +replace stm = 2000 + stm + +twoway /// +(line pred_der stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line der stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_der stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line der stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_der stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line der stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_der stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line der stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph4) title("Fourth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_der stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line der stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Returns to Education") /// + subtitle("By hh disposable income") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are not observed in their initial education spell in their previous observation," "aged 16-35. Initial education spell defined generously.", size(vsmall)) + +graph export /// +"$dir_validation_graphs/education/int_validation_E1b_returns_edu_ts_16_35_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Marital status +preserve + +collapse (mean) der pred_der* [aw = dwt], by(dcpst stm) + +order pred_der* + +egen pred_der = rowmean(pred_der0-pred_der19) + +replace stm = 2000 + stm + +twoway /// +(line pred_der stm if dcpst == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line der stm if dcpst == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph1) title("Partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_der stm if dcpst == 2, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line der stm if dcpst == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph2) title("Single") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_der stm if dcpst == 3, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line der stm if dcpst == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "UKHLS"))), /// +name(graph3) title("Previously partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3, /// + title("Returns to Education") /// + subtitle("By partnership status") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are not observed in their initial education spell in their previous observation," "aged 16-35.Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E1b_returns_edu_ts_16_35_both_partnership.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +************************************************* +* E2a Educational Level After Leaving Education * +************************************************* + +* Overall +use "$dir_validation_data/E2a_sample", clear + +sum p1-p3 // inspect negative values + +gen p1p2 = p1 + p2 // create cdf + +gen rnd = runiform() +gen edu_pred = cond((rnd < p1), 1, cond(rnd < p1p2, 2, 3)) + +keep if in_sample == 1 + + +twoway (histogram edu_pred if in_sample == 1, color(green)) /// + (histogram deh_c3_recoded if in_sample == 1, color(none) lcolor(black)), /// + xtitle (Education level) /// + xlabel(, labsize(small)) /// + ylabel(, labsize(small)) /// + legend(lab(1 "Predicted") lab( 2 "UKHLS")) name(levels, replace) /// + title("Educational Attainment when Leave Initial Education Spell") /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed leaving their initial education spell in the" "current observation, aged 16-29. Initial education spell defined generously. 1 = Low education, 2 = Medium education," "3 = High education.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E2a_edu_attainment_hist_16_29_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +use "$dir_validation_data/E2a_sample", clear + +sum p1-p3 + +gen p1p2 = p1 + p2 + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen edu_pred`i' = cond((rnd < p1), 1, cond(rnd < p1p2, 2, 3)) + gen pred_edu_low`i' = (edu_pred`i' == 1) + gen pred_edu_med`i' = (edu_pred`i' == 2) + gen pred_edu_high`i' = (edu_pred`i' == 3) + drop rnd +} + +keep if in_sample == 1 + +gen edu_low = (deh_c3_recoded == 1) +gen edu_med = (deh_c3_recoded == 2) +gen edu_high = (deh_c3_recoded == 3) + +preserve + +collapse (mean) edu_low edu_med edu_high pred_edu_low* pred_edu_med* /// + pred_edu_high* [aw = dwt], by(stm) + +order pred_edu_low* pred_edu_med* pred_edu_high* + +egen pred_edu_low = rowmean(pred_edu_low0-pred_edu_low19) +egen pred_edu_med = rowmean(pred_edu_med0-pred_edu_med19) +egen pred_edu_high = rowmean(pred_edu_high0-pred_edu_high19) + +replace stm = 2000 + stm + +twoway /// +(line pred_edu_low stm, sort color(red) /// + legend(label(1 "Low education, predicted"))) /// +(line edu_low stm, sort color(red%20) /// + lpattern(dash) legend(label(2 "Low education, UKHLS"))) /// +(line pred_edu_med stm, sort color(blue) /// + legend(label(3 "Medium education, predicted"))) /// +(line edu_med stm, sort color(blue%20) /// + lpattern(dash) legend(label(4 "Medium education, UKHLS"))) /// +(line pred_edu_high stm, sort color(green) /// + legend(label(5 "High education, predicted"))) /// +(line edu_high stm, sort color(green%20) /// + lpattern(dash) legend(label(6 "High education, UKHLS"))) , /// + title("Educational Attainment when Leave Initial Education Spell") /// + subtitle("Ages 16-29" ) /// + xtitle("Year") /// + ytitle("") /// + xlabel(, labsize(small)) /// + ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed leaving their initial education spell in the current observation, aged 16-29." "Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E2a_edu_attainment_ts_16_29_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Gender +preserve + +collapse (mean) edu_low edu_med edu_high pred_edu_low* pred_edu_med* /// + pred_edu_high* [aw = dwt], by(stm dgn) + +order pred_edu_low* pred_edu_med* pred_edu_high* + +egen pred_edu_low = rowmean(pred_edu_low0-pred_edu_low19) +egen pred_edu_med = rowmean(pred_edu_med0-pred_edu_med19) +egen pred_edu_high = rowmean(pred_edu_high0-pred_edu_high19) + +replace stm = 2000 + stm + +twoway /// +(line pred_edu_low stm if dgn == 0, sort color(red) /// + legend(label(1 "Low education, predicted"))) /// +(line edu_low stm if dgn == 0, sort color(red%20) /// + lpattern(dash) legend(label(2 "Low education, UKHLS"))) /// +(line pred_edu_med stm if dgn == 0, sort color(blue) /// + legend(label(3 "Medium education, predicted"))) /// +(line edu_med stm if dgn == 0, sort color(blue%20) /// + lpattern(dash) legend(label(4 "Medium education, UKHLS"))) /// +(line pred_edu_high stm if dgn == 0, sort color(green) /// + legend(label(5 "High education, predicted"))) /// +(line edu_high stm if dgn == 0, sort color(green%20) /// + lpattern(dash) legend(label(6 "High education, UKHLS"))) , /// + name(edu_attainment_female, replace) /// + title("Females") /// + xtitle("Year")/// + ytitle("") /// + xlabel(, labsize(small)) /// + ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_edu_low stm if dgn == 1, sort color(red) /// + legend(label(1 "Low education, predicted"))) /// +(line edu_low stm if dgn == 1, sort color(red%20) /// + lpattern(dash) legend(label(2 "Low education, UKHLS"))) /// +(line pred_edu_med stm if dgn == 1, sort color(blue) /// + legend(label(3 "Medium education, predicted"))) /// +(line edu_med stm if dgn == 1, sort color(blue%20) /// + lpattern(dash) legend(label(4 "Medium education, UKHLS"))) /// +(line pred_edu_high stm if dgn == 1, sort color(green) /// + legend(label(5 "High education, predicted"))) /// +(line edu_high stm if dgn == 1, sort color(green%20) /// + lpattern(dash) legend(label(6 "High education, UKHLS"))) , /// + name(edu_attainment_male, replace) /// + title("Males") /// + xtitle("Year") /// + ytitle("") /// + xlabel(, labsize(small)) /// + ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg edu_attainment_female edu_attainment_male, /// + title("Educational Attainment when Leave Initial Education Spell") /// + legendfrom(edu_attainment_male) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed leaving their initial education spell in the current" "observation, aged 16-29. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E2a_edu_attainment_ts_16_29_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Age +preserve + +collapse (mean) edu_low edu_med edu_high pred_edu_low* pred_edu_med* /// + pred_edu_high* [aw = dwt], by(dag) + +order pred_edu_low* pred_edu_med* pred_edu_high* + +egen pred_edu_low = rowmean(pred_edu_low0-pred_edu_low19) +egen pred_edu_med = rowmean(pred_edu_med0-pred_edu_med19) +egen pred_edu_high = rowmean(pred_edu_high0-pred_edu_high19) + + +twoway /// +(line pred_edu_low dag, sort color(red) /// + legend(label(1 "Low education, predicted"))) /// +(line edu_low dag, sort color(red) color(red%20) /// + lpattern(dash) legend(label(2 "Low education, UKHLS"))) /// +(line pred_edu_med dag, sort color(blue) /// + legend(label(3 "Medium education, predicted"))) /// +(line edu_med dag, sort color(blue) color(blue%20) /// + lpattern(dash) legend(label(4 "Medium education, UKHLS"))) /// +(line pred_edu_high dag, sort color(green) /// + legend(label(5 "High education, predicted"))) /// +(line edu_high dag, sort color(green) color(green%20) /// + lpattern(dash) legend(label(6 "High education, UKHLS"))), /// + title("Educational Attainment when Leave Initial Education Spell") /// + subtitle("By age") /// + xtitle("Age") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed leaving their initial education spell in the current" "observation, aged 16-29. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E2a_edu_attainment_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Income +preserve + +collapse (mean) edu_low edu_med edu_high pred_edu_low* pred_edu_med* /// + pred_edu_high* [aw = dwt], by(stm ydses_c5) + +order pred_edu_low* pred_edu_med* pred_edu_high* + +egen pred_edu_low = rowmean(pred_edu_low0-pred_edu_low19) +egen pred_edu_med = rowmean(pred_edu_med0-pred_edu_med19) +egen pred_edu_high = rowmean(pred_edu_high0-pred_edu_high19) + +replace stm = 2000 + stm + +twoway /// +(line pred_edu_low stm if ydses_c5 == 1, sort color(red) /// + legend(label(1 "Low education, predicted"))) /// +(line edu_low stm if ydses_c5 == 1, sort color(red%20) /// + lpattern(dash) legend(label(2 "Low education, UKHLS"))) /// +(line pred_edu_med stm if ydses_c5 == 1, sort color(blue) /// + legend(label(3 "Medium education, predictedd"))) /// +(line edu_med stm if ydses_c5 == 1, sort color(blue%20) /// + lpattern(dash) legend(label(4 "Medium education, UKHLS"))) /// +(line pred_edu_high stm if ydses_c5 == 1, sort color(green) /// + legend(label(5 "High education, predicted"))) /// +(line edu_high stm if ydses_c5 == 1, sort color(green%20) /// + lpattern(dash) legend(label(6 "HIgh education, UKHLS"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_edu_low stm if ydses_c5 == 2, sort color(red) /// + legend(label(1 "L Pred"))) /// +(line edu_low stm if ydses_c5 == 2, sort color(red%20) /// + lpattern(dash) legend(label(2 "L Obs"))) /// +(line pred_edu_med stm if ydses_c5 == 2, sort color(blue) /// + legend(label(3 "M Pred"))) /// +(line edu_med stm if ydses_c5 == 2, sort color(blue%20) /// + lpattern(dash) legend(label(4 "M Obs"))) /// +(line pred_edu_high stm if ydses_c5 == 2, sort color(green) /// + legend(label(5 "H Pred"))) /// +(line edu_high stm if ydses_c5 == 2, sort color(green%20) /// + lpattern(dash) legend(label(6 "H Obs"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_edu_low stm if ydses_c5 == 3, sort color(red) /// + legend(label(1 "L Pred"))) /// +(line edu_low stm if ydses_c5 == 3, sort color(red%20) /// + lpattern(dash) legend(label(2 "L Obs"))) /// +(line pred_edu_med stm if ydses_c5 == 3, sort color(blue) /// + legend(label(3 "M Pred"))) /// +(line edu_med stm if ydses_c5 == 3, sort color(blue%20) /// + lpattern(dash) legend(label(4 "M Obs"))) /// +(line pred_edu_high stm if ydses_c5 == 3, sort color(green) /// + legend(label(5 "H Pred"))) /// +(line edu_high stm if ydses_c5 == 3, sort color(green%20) /// + lpattern(dash) legend(label(6 "H Obs"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_edu_low stm if ydses_c5 == 4, sort color(red) /// + legend(label(1 "L Pred"))) /// +(line edu_low stm if ydses_c5 == 4, sort color(red%20) /// + lpattern(dash) legend(label(2 "L Obs"))) /// +(line pred_edu_med stm if ydses_c5 == 4, sort color(blue) /// + legend(label(3 "M Pred"))) /// +(line edu_med stm if ydses_c5 == 4, sort color(blue%20) /// + lpattern(dash) legend(label(4 "M Obs"))) /// +(line pred_edu_high stm if ydses_c5 == 4, sort color(green) /// + legend(label(5 "H Pred"))) /// +(line edu_high stm if ydses_c5 == 4, sort color(green%20) /// + lpattern(dash) legend(label(6 "H Obs"))), /// +name(graph4) title("Fourth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_edu_low stm if ydses_c5 == 5, sort color(red) /// + legend(label(1 "L Pred"))) /// +(line edu_low stm if ydses_c5 == 5, sort color(red%20) /// + lpattern(dash) legend(label(2 "L Obs"))) /// +(line pred_edu_med stm if ydses_c5 == 5, sort color(blue) /// + legend(label(3 "M Pred"))) /// +(line edu_med stm if ydses_c5 == 5, sort color(blue%20) /// + lpattern(dash) legend(label(4 "M Obs"))) /// +(line pred_edu_high stm if ydses_c5 == 5, sort color(green) /// + legend(label(5 "H Pred"))) /// +(line edu_high stm if ydses_c5 == 5, sort color(green%20) /// + lpattern(dash) legend(label(6 "H Obs"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5 , /// + title("Educational Attainment when Leave Initial Education Spell") /// + subtitle("By hh disposable income") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed leaving their initial education spell in the current" "observation, aged 16-29. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/education/int_validation_E2a_edu_attainment_ts_16_29_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore diff --git a/validation/01_estimate_validation/do_files/int_val_fertility.do b/validation/01_estimate_validation/do_files/int_val_fertility.do new file mode 100644 index 000000000..d02efd72b --- /dev/null +++ b/validation/01_estimate_validation/do_files/int_val_fertility.do @@ -0,0 +1,481 @@ +******************************************************************************** +* PROJECT: ESPON +* SECTION: Fertility +* OBJECT: Internal validation +* AUTHORS: Ashley Burdett, Daria Popova +* LAST UPDATE: July 2025 +* COUNTRY: UK + +* NOTES: Compares predicted values to the observed values of the +* 2 fertility processes estimated. +* Individual heterogeneity added to the standard predicted +* values using a random draw like in stochasitic +* imputation. The pooled mean is obtained as in multiple +* imputation by repeating the random draw 20 times for each +* process. +* +* Run after "reg_fertility.do" +******************************************************************************** + +********************************************** +* F1a - Having a child, in initial edu spell * +********************************************** + +* Overall +use "$dir_validation_data/F1a_sample", clear + +set seed 12345 +gen rnd = runiform() +gen pred_dchpd = 0 +replace pred_dchpd = 1 if inrange(p,rnd,1) + +keep if in_sample == 1 + +twoway /// + (histogram pred_dchpd, color(red)) /// + (histogram dchpd, color(none) lcolor(black)), /// + xtitle (Had child) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Fertility in initial education spell") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indicating a female has a new born child. Estimation sample plotted. Sample contains females" "who are in their initial education spell and fertile (18-30). Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/fertility/int_validation_${country}_F1a_fertility_init_edu_hist_18_30.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +use "$dir_validation_data/F1a_sample", clear + +// construct multiple versions of the predicted outcome allowing for different +// random draws +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_dchpd`i' = 0 + replace pred_dchpd`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +// for each iteration calculate the share that leave edu +collapse (mean) dchpd pred_dchpd* [aw = dwt], by(stm) + +order pred_dchpd* + +// take the average across datasets +egen pred_dchpd = rowmean(pred_dchpd0-pred_dchpd19) +// replace stm= 2000 + stm + +twoway /// +(line pred_dchpd stm, sort color(green) legend(label(1 "Predicted"))) /// +(line dchpd stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Fertility in initial education spell") xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Share of females that have a new born child. Estimation sample plotted. Sample contains females who are in their" "initial education spell and fertile (18-30). Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/fertility/int_validation_${country}_F1a_fertility_init_edu_ts_18_30.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Age +preserve + +collapse (mean) dchpd pred_dchpd* [aw = dwt], by(dag) + +order pred_dchpd* + +egen pred_dchpd = rowmean(pred_dchpd0-pred_dchpd19) + +twoway /// +(line pred_dchpd dag, sort color(green) legend(label(1 "Predicted"))) /// +(line dchpd dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Fertility in initial education spell") /// + subtitle("Share by age") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Share of females that have a new born child. Estimation sample plotted. Sample contains females who are in their" "initial education spell and fertile (18-30). Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/fertility/int_validation_${country}_F1a_fertility_init_edu_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Income +preserve + +collapse (mean) dchpd pred_dchpd* [aw = dwt], by(ydses_c5 stm) + +order pred_dchpd* + +egen pred_dchpd = rowmean(pred_dchpd0-pred_dchpd19) +// replace stm= 2000 + stm + +twoway /// +(line pred_dchpd stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dchpd stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Forth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Fertility in initial education spell") /// + subtitle("By hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Share of females that have a new born child. Estimation sample plotted. Sample contains females who are in their" "initial education spell and fertile (18-30). Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/fertility/int_validation_${country}_F1a_fertility_init_edu_ts_18_30_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +************************************************ +* F1b - Having a child, left initial edu spell * +************************************************ + +* Overall +use "$dir_validation_data/F1b_sample", clear + +set seed 12345 +gen rnd = runiform() +gen pred_dchpd = 0 +replace pred_dchpd = 1 if inrange(p,rnd,1) + +keep if in_sample == 1 + +twoway /// + (histogram pred_dchpd, color(red)) /// + (histogram dchpd, color(none) lcolor(black)), /// + xtitle (Had child) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Fertility") /// + subtitle("Left initial education spell") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indicating a female has a new born child. Estimation sample plotted. Sample"" contains females who have left their initial education spell and are in their fertile years (18-45). Initial education spell defined" "generously.", size(vsmall)) + +graph export "$dir_validation_graphs/fertility/int_validation_${country}_F1b_fertility_left_edu_hist_18_45.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +use "$dir_validation_data/F1b_sample", clear + +// construct multiple versions of the predicted outcome allowing for different +// random draws +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_dchpd`i' = 0 + replace pred_dchpd`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +collapse (mean) dchpd pred_dchpd* [aw = dwt], by(stm) + +order pred_dchpd* + +egen pred_dchpd = rowmean(pred_dchpd0-pred_dchpd19) + +// replace stm= 2000 + stm + +twoway /// +(line pred_dchpd stm, sort color(green) legend(label(1 "Predicted"))) /// +(line dchpd stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Fertility") /// + subtitle("Left initial education spell") /// + xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Share of females that have a new born child. Estimation sample plotted. Sample contains females who have left their" "initial education spell and are in their fertile years (18-45). Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/fertility/int_validation_${country}_F1b_fertility_left_edu_ts_18_45.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Age +preserve + +collapse (mean) dchpd pred_dchpd* [aw = dwt], by(dag) + +order pred_dchpd* + +egen pred_dchpd = rowmean(pred_dchpd0-pred_dchpd19) + +twoway /// +(line pred_dchpd dag, sort color(green) legend(label(1 "Predicted"))) /// +(line dchpd dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Fertility ") /// + subtitle("Left initial education spell, share by age") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Share of females that have a new born child. Estimation sample plotted. Sample contains females who have left their initial" "education spell and are in their fertile years (18-45). Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/fertility/int_validation_${country}_F1b_fertility_left_edu_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Income +preserve + +collapse (mean) dchpd pred_dchpd* [aw = dwt], by(ydses_c5 stm) + +order pred_dchpd* + +egen pred_dchpd = rowmean(pred_dchpd0-pred_dchpd19) + +// replace stm= 2000 + stm + +twoway /// +(line pred_dchpd stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dchpd stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Fourth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Fertility") /// + subtitle("Left initial education spell, by hh dispoable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Share of females that have a new born child. Estimation sample plotted. Sample contains females who have left their initial education" "spell and are in their fertile years (18-45). Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/fertility/int_validation_${country}_F1b_fertility_left_edu_ts_18_45_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Education +preserve + +collapse (mean) dchpd pred_dchpd* [aw = dwt], by(deh_c3 stm) + +order pred_dchpd* + +egen pred_dchpd = rowmean(pred_dchpd0-pred_dchpd19) + +// replace stm= 2000 + stm + +twoway /// +(line pred_dchpd stm if deh_c3 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dchpd stm if deh_c3 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("High education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if deh_c3 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if deh_c3 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Medium education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if deh_c3 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if deh_c3 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Low education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3, /// + title("Fertility") /// + subtitle("Left initial education spell") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Share of females that have a new born child. Estimation sample plotted. Sample contains females who have left their initial education" "spell and are in their fertile years (18-45). Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/fertility/int_validation_${country}_F1b_fertility_left_edu_ts_18_45_edu.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Marital status +preserve + +collapse (mean) dchpd pred_dchpd* [aw = dwt], by(dcpst stm) + +order pred_dchpd* + +egen pred_dchpd = rowmean(pred_dchpd0-pred_dchpd19) + +// replace stm= 2000 + stm + +twoway /// +(line pred_dchpd stm if dcpst == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dchpd stm if dcpst == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if dcpst == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if dcpst == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Single") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dchpd stm if dcpst == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dchpd stm if dcpst == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Previously partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3, /// + title("Fertility ") /// + subtitle("Left initial education spell") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Share of females that have a new born child. Estimation sample plotted.Sample contains females who have left their initial education" "spell and are in their fertile years (18-45). Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/fertility/int_validation_${country}_F1b_fertility_left_edu_ts_18_45_partnership.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +graph drop _all + +restore diff --git a/validation/01_estimate_validation/do_files/int_val_health.do b/validation/01_estimate_validation/do_files/int_val_health.do new file mode 100644 index 000000000..b43faca06 --- /dev/null +++ b/validation/01_estimate_validation/do_files/int_val_health.do @@ -0,0 +1,883 @@ +******************************************************************************** +* PROJECT: ESPON +* SECTION: Health +* OBJECT: Internal validation +* AUTHORS: Ashley Burdett, Daria Popova +* LAST UPDATE: July 2025 +* COUNTRY: UK + +* NOTES: Compares predicted values to the observed values of the +* 3 health processes estimated. +* Individual heterogeneity added to the standard predicted +* values using a random draw like in stochasitic +* imputation. The pooled mean is obtained as in multiple +* imputation by repeating the random draw 20 times for each +* process. +* +* Run after "reg_health.do" +******************************************************************************** + +******************************************** +* H1a: Health status, in initial edu spell * +******************************************** + +* Overall +use "$dir_validation_data/H1a_sample", clear + +sum p1-p5 // inspect negative values + +gen p1p2 = p1 + p2 +gen p1p2p3 = p1p2 + p3 +gen p1p2p3p4 = p1p2p3 + p4 // generate cumulative probabilities for all options + +gen rnd = runiform() +gen pred_health = cond((rnd < p1), 1, cond(rnd < p1p2, 2, /// + cond(rnd < p1p2p3, 3, cond(rnd < p1p2p3p4, 4, 5)))) + +keep if in_sample == 1 + +twoway (histogram pred_health if in_sample == 1, color(red)) /// + (histogram dhe if in_sample == 1, color(none) lcolor(black) ), /// + xtitle (Self-rated health) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Health Status") /// + subtitle("In initial education spell ") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of self-reported health status. Estimation sample plotted. Sample contains individuals" "who are in their initial education spell and aged 18-29. Initial education spell defined generously. 1 = Poor, 5 = Excellent. ", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H1a_health_init_edu_hist_18_29.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +use "$dir_validation_data/H1a_sample", clear + +sum p1-p5 // inspect negative values + +gen p1p2 = p1 + p2 +gen p1p2p3 = p1p2 + p3 +gen p1p2p3p4 = p1p2p3 + p4 // generate cumulative probabilities for all options + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_health`i' = cond((rnd < p1), 1, cond(rnd < p1p2, 2, /// + cond(rnd < p1p2p3, 3, cond(rnd < p1p2p3p4, 4, 5)))) + gen pred_health_poor`i' = (pred_health`i' == 1) + gen pred_health_fair`i' = (pred_health`i' == 2) + gen pred_health_good`i' = (pred_health`i' == 3) + gen pred_health_vgood`i' = (pred_health`i' == 4) + gen pred_health_excel`i' = (pred_health`i' == 5) + drop rnd +} + +keep if in_sample == 1 + +gen health_poor = (dhe == 1) +gen health_fair = (dhe == 2) +gen health_good = (dhe == 3) +gen health_vgood = (dhe == 4) +gen health_excel = (dhe == 5) + +preserve + +collapse (mean) health_* pred_health_* [aw = dwt], by(stm) + +order pred_health_poor* pred_health_fair* pred_health_good* /// + pred_health_vgood* pred_health_excel* + +egen pred_health_poor = rowmean(pred_health_poor0-pred_health_poor19) +egen pred_health_fair = rowmean(pred_health_fair0-pred_health_fair19) +egen pred_health_good = rowmean(pred_health_good0-pred_health_good19) +egen pred_health_vgood = rowmean(pred_health_vgood0-pred_health_vgood19) +egen pred_health_excel = rowmean(pred_health_excel0-pred_health_excel19) + +replace stm = 2000+stm + +twoway /// +(line pred_health_poor stm, sort color(green) legend(label(1 "Predicted"))) /// +(line health_poor stm, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Poor ") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_fair stm, sort color(green) legend(label(1 "Pred"))) /// +(line health_fair stm, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Fair ") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_good stm, sort color(green) legend(label(1 "Pred"))) /// +(line health_good stm, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Good ") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_vgood stm, sort color(green) legend(label(1 "Pred"))) /// +(line health_vgood stm, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Very good") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_excel stm, sort color(green) legend(label(1 "Pred"))) /// +(line health_excel stm, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Excellent") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Health Status") /// + subtitle("In initial education spell ") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are in their initial education spell (18-29). Initial education spell" "defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H1a_health_init_edu_ts_18_29_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +graph drop _all + +restore + +* Gender +preserve + +collapse (mean) health_* pred_health_* [aw = dwt], by(stm dgn) + +order pred_health_poor* pred_health_fair* pred_health_good* /// + pred_health_vgood* pred_health_excel* + +egen pred_health_poor = rowmean(pred_health_poor0-pred_health_poor19) +egen pred_health_fair = rowmean(pred_health_fair0-pred_health_fair19) +egen pred_health_good = rowmean(pred_health_good0-pred_health_good19) +egen pred_health_vgood = rowmean(pred_health_vgood0-pred_health_vgood19) +egen pred_health_excel = rowmean(pred_health_excel0-pred_health_excel19) + +replace stm = 2000 + stm + + +* Females +twoway /// +(line pred_health_poor stm if dgn == 0, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line health_poor stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Poor") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_fair stm if dgn == 0, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_fair stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Fair") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_good stm if dgn == 0, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_good stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Good") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_vgood stm if dgn == 0, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_vgood stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Very good") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_excel stm if dgn == 0, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_excel stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Excellent ") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Health Status") /// + subtitle("In initial education spell, females") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are in their initial education spell (18-29). Initial education spell" "defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H1a_health_init_edu_ts_18_29_female.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +twoway /// +(line pred_health_poor stm if dgn == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line health_poor stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Poor") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_fair stm if dgn == 1, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_fair stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Fair") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_good stm if dgn == 1, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_good stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Good ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_vgood stm if dgn == 1, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_vgood stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Very good ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_excel stm if dgn == 1, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_excel stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Excellent ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Health Status") /// + subtitle("In initial education spell, males ") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are in their initial education spell (18-29). Initial education spell" "defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H1a_health_init_edu_ts_18_29_male.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +********************************************** +* H1b: Health status, left initial edu spell * +********************************************** + +* Overall +use "$dir_validation_data/H1b_sample", clear + +sum p1-p5 // inspect negative values + +gen p1p2 = p1 + p2 +gen p1p2p3 = p1p2 + p3 +gen p1p2p3p4 = p1p2p3 + p4 // generate cumulative probabilities for all options + +gen rnd = runiform() +gen pred_health = cond((rnd < p1), 1, cond(rnd < p1p2, 2, /// + cond(rnd < p1p2p3, 3, cond(rnd < p1p2p3p4, 4, 5)))) + +keep if in_sample == 1 + +twoway (histogram pred_health if in_sample == 1, color(red)) /// + (histogram dhe if in_sample == 1, color(none) lcolor(black)), /// + xtitle (Self-rated health) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Health Status") /// + subtitle("Left initial education spell ") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of self-reported health status. Estimation sample plotted. Sample contains individual" "who have left their initial education spell and aged 18+. Initial education spell defined generously. 1 = Poor, 5 = Excellent. ", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H1a_health_left_edu_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +use "$dir_validation_data/H1b_sample", clear + +sum p1-p5 // inspect negative values + +gen p1p2 = p1 + p2 +gen p1p2p3 = p1p2 + p3 +gen p1p2p3p4 = p1p2p3 + p4 // generate cumulative probabilities for all options + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_health`i' = cond((rnd < p1), 1, cond(rnd < p1p2, 2, /// + cond(rnd < p1p2p3, 3, cond(rnd < p1p2p3p4, 4, 5)))) + gen pred_health_poor`i' = (pred_health`i' == 1) + gen pred_health_fair`i' = (pred_health`i' == 2) + gen pred_health_good`i' = (pred_health`i' == 3) + gen pred_health_vgood`i' = (pred_health`i' == 4) + gen pred_health_excel`i' = (pred_health`i' == 5) + drop rnd +} + +keep if in_sample == 1 + +gen health_poor = (dhe == 1) +gen health_fair = (dhe == 2) +gen health_good = (dhe == 3) +gen health_vgood = (dhe == 4) +gen health_excel = (dhe == 5) + +preserve + +collapse (mean) health_* pred_health_* [aw = dwt], by(stm) + +order pred_health_poor* pred_health_fair* pred_health_good* /// + pred_health_vgood* pred_health_excel* + +egen pred_health_poor = rowmean(pred_health_poor0-pred_health_poor19) +egen pred_health_fair = rowmean(pred_health_fair0-pred_health_fair19) +egen pred_health_good = rowmean(pred_health_good0-pred_health_good19) +egen pred_health_vgood = rowmean(pred_health_vgood0-pred_health_vgood19) +egen pred_health_excel = rowmean(pred_health_excel0-pred_health_excel19) + +replace stm = 2000 + stm + +twoway /// +(line pred_health_poor stm, sort color(green) legend(label(1 "Predicted"))) /// +(line health_poor stm, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Poor ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_fair stm, sort color(green) legend(label(1 "Pred"))) /// +(line health_fair stm, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Fair ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_good stm, sort color(green) legend(label(1 "Pred"))) /// +(line health_good stm, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Good ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_vgood stm, sort color(green) legend(label(1 "Pred"))) /// +(line health_vgood stm, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Very good ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_excel stm, sort color(green) legend(label(1 "Pred"))) /// +(line health_excel stm, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Excellent ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Health Status") /// + subtitle("Left initial education spell ") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have left their initial education spell and aged 18+. Initial education spell" "defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H1b_health_left_edu_ts_all_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Gender +preserve + +collapse (mean) health_* pred_health_* [aw = dwt], by(stm dgn) + +order pred_health_poor* pred_health_fair* pred_health_good* /// + pred_health_vgood* pred_health_excel* + +egen pred_health_poor = rowmean(pred_health_poor0-pred_health_poor19) +egen pred_health_fair = rowmean(pred_health_fair0-pred_health_fair19) +egen pred_health_good = rowmean(pred_health_good0-pred_health_good19) +egen pred_health_vgood = rowmean(pred_health_vgood0-pred_health_vgood19) +egen pred_health_excel = rowmean(pred_health_excel0-pred_health_excel19) + +replace stm = 2000 + stm + +* Female +twoway /// +(line pred_health_poor stm if dgn == 0, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line health_poor stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Poor ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_fair stm if dgn == 0, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_fair stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Fair ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_good stm if dgn == 0, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_good stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Good ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_vgood stm if dgn == 0, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_vgood stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Very good ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_excel stm if dgn == 0, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_excel stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Excellent ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Health Status") /// + subtitle("Left initial education spell, females ") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have left their initial education spell and aged 18+. Initial education spell" "defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H1b_health_left_edu_ts_all_female.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +twoway /// +(line pred_health_poor stm if dgn == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line health_poor stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Poor ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_fair stm if dgn == 1, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_fair stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Fair ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_good stm if dgn == 1, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_good stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Good ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_vgood stm if dgn == 1, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_vgood stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Very good ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_health_excel stm if dgn == 1, sort color(green) /// + legend(label(1 "Pred"))) /// +(line health_excel stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Excellent ") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Health Status") /// + subtitle("Left initial education spell, males ") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have left their initial education spell and aged 18+. Initial education spell" "defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H1b_health_left_edu_ts_all_male.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +*********************************************************** +* H2b: Long-term sick or disabled, left initial edu spell * +*********************************************************** + +* Overall +use "$dir_validation_data/H2b_sample", clear + +set seed 12345 +gen rnd = runiform() +gen pred_dlltsd01 = 0 +replace pred_dlltsd01 = 1 if inrange(p,rnd,1) + +keep if in_sample == 1 + +twoway /// + (histogram pred_dlltsd01, color(red)) /// + (histogram dlltsd01, color(none) lcolor(black)), /// + xtitle (Disabled/long-term sick ) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Disability/long-term sick") /// + subtitle("Left initial education spell") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of disability/long-term sick dummy. Estimation sample plotted. Sample contains individuals" "who have left their initial education spell and aged 18+. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H2b_disablilty_left_edu_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +use "$dir_validation_data/H2b_sample", clear + +// construct multiple versions of the predicted outcome allowing for different +// random draws +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_dlltsd01`i' = 0 + replace pred_dlltsd01`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +// for each iteration calculate the share that leave edu +collapse (mean) dlltsd01 pred_dlltsd01* [aw = dwt], by(stm) + +order pred_dlltsd01* + +// take the average across datasets +egen pred_dlltsd01 = rowmean(pred_dlltsd010-pred_dlltsd0119) +replace stm = 2000 + stm + +twoway /// +(line pred_dlltsd01 stm, sort color(green) legend(label(1 "Predicted"))) /// +(line dlltsd01 stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// + title("Disability/long-term sick") /// + subtitle("Left initial education spell") /// + xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have left their initial education spell and aged 18+. Initial" "education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Age +preserve + +collapse (mean) dlltsd01 pred_dlltsd01* [aw = dwt], by(dag) + +order pred_dlltsd01* + +egen pred_dlltsd01 = rowmean(pred_dlltsd010-pred_dlltsd0119) + +twoway /// +(line pred_dlltsd01 dag, sort color(green) legend(label(1 "Predicted"))) /// +(line dlltsd01 dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// + title("Disability/long-term sick") /// + subtitle("Left initial education spell, share by age") /// + xtitle("Age") /// + ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have left their initial education spell and aged 18+. Initial education spell " "defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H2b_disablilty_left_edu_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Income +preserve + +collapse (mean) dlltsd01 pred_dlltsd01* [aw = dwt], by(ydses_c5 stm) + +order pred_dlltsd01* + +egen pred_dlltsd01 = rowmean(pred_dlltsd010-pred_dlltsd0119) + +replace stm = 2000 + stm + +twoway /// +(line pred_dlltsd01 stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dlltsd01 stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlltsd01 stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlltsd01 stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlltsd01 stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlltsd01 stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlltsd01 stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlltsd01 stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Forth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlltsd01 stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlltsd01 stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Disability/long-term sick") /// + subtitle("Left initial education spell, by hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have left their initial education spell and aged 18+. Initial education spell defined" "generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +graph drop _all + +restore + + +* Education +preserve + +collapse (mean) dlltsd01 pred_dlltsd01* [aw = dwt], by(deh_c3 stm) + +order pred_dlltsd01* + +egen pred_dlltsd01 = rowmean(pred_dlltsd010-pred_dlltsd0119) + +replace stm = 2000 + stm + +twoway /// +(line pred_dlltsd01 stm if deh_c3 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dlltsd01 stm if deh_c3 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("High education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlltsd01 stm if deh_c3 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlltsd01 stm if deh_c3 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Medium education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlltsd01 stm if deh_c3 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlltsd01 stm if deh_c3 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Low education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 , /// + title("Disability/long-term sick") /// + subtitle("Left initial education spell") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have left their initial education spell and aged 18+. Initial education spell defined" "generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_edu.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Marital status +preserve + +collapse (mean) dlltsd01 pred_dlltsd01* [aw = dwt], by(dcpst stm) + +order pred_dlltsd01* + +egen pred_dlltsd01 = rowmean(pred_dlltsd010-pred_dlltsd0119) + +replace stm = 2000 + stm + +twoway /// +(line pred_dlltsd01 stm if dcpst == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dlltsd01 stm if dcpst == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlltsd01 stm if dcpst == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlltsd01 stm if dcpst == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Single") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlltsd01 stm if dcpst == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlltsd01 stm if dcpst == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Previously partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3, /// + title("Disability/long-term sick") /// + subtitle("Left initial education spell") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have left their initial education spell and aged 18+. Initial education spell defined" "generously.", size(vsmall)) + +graph export "$dir_validation_graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_partnership.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore diff --git a/validation/01_estimate_validation/do_files/int_val_home_ownership.do b/validation/01_estimate_validation/do_files/int_val_home_ownership.do new file mode 100644 index 000000000..b165bd795 --- /dev/null +++ b/validation/01_estimate_validation/do_files/int_val_home_ownership.do @@ -0,0 +1,346 @@ +******************************************************************************** +* PROJECT: ESPON +* SECTION: Home ownership +* OBJECT: Internal validation +* AUTHORS: Ashley Burdett, Daria Popova +* LAST UPDATE: July 2025 +* COUNTRY: UK + +* NOTES: Compares predicted values to the observed values of the +* home ownership process estimated. +* Individual heterogeneity added to the standard predicted +* values using a random draw like in stochasitic +* imputation. The pooled mean is obtained as in multiple +* imputation by repeating the random draw 20 times for each +* process. +* +* Run after "reg_home_ownership.do" +******************************************************************************** + +************************ +* HO1a: Home ownership * +************************ + +* Overall +use "$dir_validation_data/HO1a_sample", clear + +set seed 12345 +gen rnd = runiform() +gen pred_dhh_owned = 0 +replace pred_dhh_owned = 1 if inrange(p,rnd,1) + +keep if in_sample == 1 + +twoway /// + (histogram pred_dhh_owned, color(red)) /// + (histogram dhh_owned, color(none) lcolor(black) ), /// + xtitle (Home ownership) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Home Ownership") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indicating homeownership. Estimation sample plotted. Sample contains all individuals 18+" "years old.", size(vsmall)) + +graph export "$dir_validation_graphs/home_ownership/int_validation_HO1a_homeownership_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +* Year +use "$dir_validation_data/HO1a_sample", clear + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_dhh_owned`i' = 0 + replace pred_dhh_owned`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +collapse (mean) dhh_owned pred_dhh_owned* [aw = dwt], by(stm) + +order pred_dhh_owned* + +egen pred_dhh_owned = rowmean(pred_dhh_owned0-pred_dhh_owned19) +replace stm = 2000 + stm + +twoway /// +(line pred_dhh_owned stm, sort color(green) legend(label(1 "Predicted"))) /// +(line dhh_owned stm, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +title("Home Ownership") /// + xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains all individuals 18+ years old.", size(vsmall)) + +graph export "$dir_validation_graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Gender +preserve + +collapse (mean) dhh_owned pred_dhh_owned* [aw = dwt], by(dgn stm) + +order pred_dhh_owned* + +egen pred_dhh_owned = rowmean(pred_dhh_owned0-pred_dhh_owned19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dhh_owned stm if dgn == 0, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dhh_owned stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Females") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dhh_owned stm if dgn == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dhh_owned stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Males") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2, /// + title("Home Ownership") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains all individuals 18+ years old.", size(vsmall)) + +graph export "$dir_validation_graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Age +preserve + +collapse (mean) dhh_owned pred_dhh_owned* [aw = dwt], by(dag) + +order pred_dhh_owned* + +egen pred_dhh_owned = rowmean(pred_dhh_owned0-pred_dhh_owned19) + +twoway /// +(line pred_dhh_owned dag, sort color(green) legend(label(1 "Predicted"))) /// +(line dhh_owned dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// + title("Home Ownership") /// + subtitle("Share by age") /// + xtitle("Age") ytitle("Share") xlabel(, labsize(small)) /// + ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains all individuals 18+ years old.", size(vsmall)) + +graph export "$dir_validation_graphs/home_ownership/int_validation_HO1a_homeownership_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +* Income +preserve + +collapse (mean) dhh_owned pred_dhh_owned* [aw = dwt], by(ydses_c5 stm) + +order pred_dhh_owned* + +egen pred_dhh_owned = rowmean(pred_dhh_owned0-pred_dhh_owned19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dhh_owned stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dhh_owned stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dhh_owned stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dhh_owned stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dhh_owned stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dhh_owned stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dhh_owned stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dhh_owned stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// + name(graph4) title("Forth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dhh_owned stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dhh_owned stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Home Ownership") /// + subtitle("By hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains all individuals 18+ years old.", size(vsmall)) + +graph export "$dir_validation_graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Education +preserve + +collapse (mean) dhh_owned pred_dhh_owned* [aw = dwt], by(deh_c3 stm) + +order pred_dhh_owned* + +egen pred_dhh_owned = rowmean(pred_dhh_owned0-pred_dhh_owned19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dhh_owned stm if deh_c3 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dhh_owned stm if deh_c3 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("High education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dhh_owned stm if deh_c3 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dhh_owned stm if deh_c3 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Medium education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dhh_owned stm if deh_c3 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dhh_owned stm if deh_c3 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Low education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3, /// + title("Home Ownership") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains all individuals 18+ years old.", size(vsmall)) + +graph export "$dir_validation_graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_edu.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Partnership status +preserve + +collapse (mean) dhh_owned pred_dhh_owned* [aw = dwt], by(dcpst stm) + +order pred_dhh_owned* + +egen pred_dhh_owned = rowmean(pred_dhh_owned0-pred_dhh_owned19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dhh_owned stm if dcpst == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dhh_owned stm if dcpst == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dhh_owned stm if dcpst == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dhh_owned stm if dcpst == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Single") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dhh_owned stm if dcpst == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dhh_owned stm if dcpst == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Previously partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3, /// + title("Home Ownership") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains all individuals 18+ years old.", size(vsmall)) + +graph export "$dir_validation_graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_partnership.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore diff --git a/validation/01_estimate_validation/do_files/int_val_income.do b/validation/01_estimate_validation/do_files/int_val_income.do new file mode 100644 index 000000000..3465a1b46 --- /dev/null +++ b/validation/01_estimate_validation/do_files/int_val_income.do @@ -0,0 +1,1185 @@ +******************************************************************************** +* PROJECT: ESPON +* SECTION: Income +* OBJECT: Internal validation +* AUTHORS: Ashley Burdett, daria Popova +* LAST UPDATE: July May 2025 +* COUNTRY: UK + +* NOTES: Compares predicted values to the observed values of the +* hurdle models used for the income processes. +* Individual heterogeneity added to the standard predicted +* values using a random draw like in stochasitic +* imputation. The pooled mean is obtained as in multiple +* imputation by repeating the random draw 20 times for each +* process. +* +* Run after "reg_income.do" +******************************************************************************** + +* I3a selection - capital income, in initial education spell + +use "$dir_validation_data/I3a_selection_sample", clear + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_receives_ypncp`i' = 0 + replace pred_receives_ypncp`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +replace stm = 2000 + stm +egen pred_receives_ypncp = rowmean(pred_receives_ypncp0-pred_receives_ypncp19) + +* Raw prediction vs observed +twoway /// + (histogram pred_receives_ypncp0, color(red)) /// + (histogram receives_ypncp, color(none) lcolor(black)), /// + xtitle (Receives capital income) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Receives Capital Income") /// + subtitle("In initial education spell") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indicating capital income is recieved. Estimation sample plotted. Sample contains all" "individual age 16+, who are in their initial education spell. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3a_selection_capital_init_edu_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +preserve + +collapse (mean) receives_ypncp pred_receives_ypncp [aw = dwt], by(stm) + +twoway /// +(line pred_receives_ypncp stm, sort color(green) legend(label(1 "Predicted"))) /// +(line receives_ypncp stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Receives Captial Income") /// + subtitle("In initial education spell") /// + xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed in their initial education spell, aged 16+ years old." "Initial education spell defined generously. Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +restore + +graph drop _all + + +* By gender +preserve + +collapse (mean) receives_ypncp pred_receives_ypncp [aw = dwt], by(stm dgn) + +twoway /// +(line pred_receives_ypncp stm if dgn == 0, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Females") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if dgn == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Males") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 , /// + title("Receives Captial Income ") /// + subtitle("In initial education spell") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed in their initial education spell, aged 16+ years old." "Initial education spell defined generously. Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + + +* Share by age +preserve + +collapse (mean) receives_ypncp pred_receives_ypncp [aw = dwt], by(dag) + +twoway /// +(line pred_receives_ypncp dag, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Receives Capital Income") subtitle("In initial education spell, share by age") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed in their initial education spell, aged 16+ years old." "Initial education spell defined generously. Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3a_selection_capital_init_edu_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + + +* Hh income +preserve + +collapse (mean) receives_ypncp pred_receives_ypncp [aw = dwt], by(ydses_c5 stm) + +twoway /// +(line pred_receives_ypncp stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph4) title("Fourth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Receives Capital Income ") /// + subtitle("In initial education spell, by hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed in their initial education spell, aged 16+ years old." "Initial education spell defined generously. Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + + +* Marital status +preserve + +collapse (mean) receives_ypncp pred_receives_ypncp [aw = dwt], by(dcpst stm) + +twoway /// +(line pred_receives_ypncp stm if dcpst == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if dcpst == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if dcpst == 2, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if dcpst == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Single") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if dcpst == 3, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if dcpst == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph3) title("Previously partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 , /// + title("Receives Capital Income") /// + subtitle("In initial education spell") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are observed in their initial education spell, aged 16+ years old." "Initial education spell defined generously. Predictions are the average over 20 random draws.", size(vsmall)) + +graph export /// +"$dir_validation_graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both_partnership.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + + +* I3b selection - capital income, left initial education spell + +use "$dir_validation_data/I3b_selection_sample", clear + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_receives_ypncp`i' = 0 + replace pred_receives_ypncp`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +replace stm = 2000 + stm +egen pred_receives_ypncp = rowmean(pred_receives_ypncp0-pred_receives_ypncp19) + +* Raw prediction vs observed +twoway /// + (histogram pred_receives_ypncp0, color(red)) /// + (histogram receives_ypncp, color(none) lcolor(black)), /// + xtitle (Receives capital income) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Receives Capital Income") /// + subtitle("Left initial education spell") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indicating capital income is recieved. Estimation sample plotted. Sample contains all" "individual age 16+, who have left their initial education spell. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3b_selection_capital_left_edu_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +preserve + +collapse (mean) receives_ypncp pred_receives_ypncp [aw = dwt], by(stm) + +twoway /// +(line pred_receives_ypncp stm, sort color(green) legend(label(1 "Predicted"))) /// +(line receives_ypncp stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Receives Captial Income") /// + subtitle("Left initial education spell") /// + xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have left their initial education spell, aged 16+ years old." "Initial education spell defined generously. Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +restore + +graph drop _all + + +* By gender +preserve + +collapse (mean) receives_ypncp pred_receives_ypncp [aw = dwt], by(stm dgn) + +twoway /// +(line pred_receives_ypncp stm if dgn == 0, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Females") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if dgn == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Males") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 , /// + title("Receives Captial Income ") /// + subtitle("Left initial education spell") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have left their initial education spell, aged 16+ years old." "Initial education spell defined generously. Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + + +* Share by age +preserve + +collapse (mean) receives_ypncp pred_receives_ypncp [aw = dwt], by(dag) + +twoway /// +(line pred_receives_ypncp dag, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Receives Capital Income") subtitle("In initial education spell, share by age") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have their initial education spell, aged 16+ years old." "Initial education spell defined generously. Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3b_selection_capital_left_edu_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + + +* Hh income +preserve + +collapse (mean) receives_ypncp pred_receives_ypncp [aw = dwt], by(ydses_c5 stm) + +twoway /// +(line pred_receives_ypncp stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph4) title("Fourth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Receives Capital Income ") /// + subtitle("Left initial education spell, by hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have left their initial education spell, aged 16+ years old." "Initial education spell defined generously. Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + + +* Marital status +preserve + +collapse (mean) receives_ypncp pred_receives_ypncp [aw = dwt], by(dcpst stm) + +twoway /// +(line pred_receives_ypncp stm if dcpst == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if dcpst == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if dcpst == 2, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if dcpst == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Single") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypncp stm if dcpst == 3, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypncp stm if dcpst == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph3) title("Previously partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 , /// + title("Receives Capital Income") /// + subtitle("Left initial education spell") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who have their initial education spell, aged 16+ years old." "Initial education spell defined generously. Predictions are the average over 20 random draws.", size(vsmall)) + +graph export /// +"$dir_validation_graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both_partnership.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + + +****************************************** +* I3a amount - in initial education spell +****************************************** +use "$dir_validation_data/I3a_level_sample", clear + +keep if in_sample == 1 + +* Obtain predicted log amount +gen pred_ln_ypncp = p + +* Obtain random component +cap drop epsilon +gen epsilon = rnormal()*sigma + +* Convert into level with random component +gen pred_ypncp = exp(pred_ln_ypncp + epsilon) + +* Trim predictions +sum pred_ypncp, d +replace pred_ypncp = . if pred_ypncp < r(p1) | pred_ypncp > r(p99) + +twoway (hist pred_ypncp, width(1) color(green)) /// + (hist ypncp_lvl, width(1) color(none) lcolor(black)), /// + xtitle (Capital income (GBP)) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Capital Income Amount") /// + subtitle("In initial education spell") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of capital income received. Estimation sample plotted. Sample contains all" "individual age 16+, who are in their initial education spell. Initial education spell defined generously. GBP per year, in 2015 prices." "Top and bottom percentiles of predicted trimmed.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3a_amount_capital_init_edu_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + + +* By gender + +* Males +twoway (hist pred_ypncp if dgn == 1, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypncp_lvl if dgn == 1, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Males") name(graph1, replace) /// + xtitle (Capital income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + +* Females +twoway (hist pred_ypncp if dgn == 0, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypncp_lvl if dgn == 0, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Females") name(graph2, replace) /// + xtitle (Capital income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + + +grc1leg graph1 graph2 , /// + title("Capital Income Amount") /// + subtitle("In initial education spell") /// + legendfrom(graph1) rows(1) /// + graphregion(color(white)) /// + note("Notes: Predicted vs observed of capital income received. Estimation sample plotted. Sample contains all" "individual age 16+, who are in their initial education spell. Initial education spell defined generously. GBP per year, in 2015 prices." "Top and bottom percentiles of predicted trimmed.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3a_amount_capital_init_edu_hist_all_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +********************************************** +* I3b amount - left initial education spell +********************************************** +use "$dir_validation_data/I3b_level_sample", clear + +keep if in_sample == 1 + +* Obtain predicted log amount +gen pred_ln_ypncp = p + +* Obtain random component +cap drop epsilon +gen epsilon = rnormal()*sigma + +* Convert into level with random component +gen pred_ypncp = exp(pred_ln_ypncp + epsilon) + +* Trim predictions +sum pred_ypncp, d +replace pred_ypncp = . if pred_ypncp < r(p1) | pred_ypncp > r(p99) + +twoway (hist pred_ypncp, width(1) color(green)) /// + (hist ypncp_lvl, width(1) color(none) lcolor(black)), /// + xtitle (Capital income (GBP)) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Capital Income Amount") /// + subtitle("Left initial education spell") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of capital income received. Estimation sample plotted. Sample contains all" "individual age 16+, who have left their initial education spell. Initial education spell defined generously. GBP per year, in 2015 prices." "Top and bottom percentiles of predicted trimmed.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + + +* By gender + +* Males +twoway (hist pred_ypncp if dgn == 1, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypncp_lvl if dgn == 1, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Males") name(graph1, replace) /// + xtitle (Capital income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + +* Females +twoway (hist pred_ypncp if dgn == 0, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypncp_lvl if dgn == 0, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Females") name(graph2, replace) /// + xtitle (Capital income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + + +grc1leg graph1 graph2 , /// + title("Capital Income Amount") /// + subtitle("Left initial education spell") /// + legendfrom(graph1) rows(1) /// + graphregion(color(white)) /// + note("Notes: Predicted vs observed of capital income received. Estimation sample plotted. Sample contains all" "individual age 16+, who have left their initial education spell. Initial education spell defined generously. GBP per year, in 2015 prices." "Top and bottom percentiles of predicted trimmed.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* By education + +* Low +twoway (hist pred_ypncp if deh_c3 == 3, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypncp_lvl if dgn == 1, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Low education") name(graph1, replace) /// + xtitle (Capital income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + +* Medium +twoway (hist pred_ypncp if deh_c3 == 2, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypncp_lvl if dgn == 0, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Medium education") name(graph2, replace) /// + xtitle (Capital income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + +* High +twoway (hist pred_ypncp if deh_c3 == 1, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypncp_lvl if dgn == 0, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("High education") name(graph3, replace) /// + xtitle (Capital income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + + +grc1leg graph1 graph2 graph3 , /// + title("Capital Income Amount") /// + subtitle("Left initial education spell") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Predicted vs observed of capital income received. Estimation sample plotted. Sample contains all" "individual age 16+, who have left their initial education spell. Initial education spell defined generously. GBP per year, in 2015 prices." "Top and bottom percentiles of predicted trimmed.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all_edu.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +******************************** +* I4b: Amount of pension income. +******************************** + +use "$dir_validation_data/I4b_level_sample", clear + +keep if in_sample == 1 + +* Obtain predicted log amount +gen pred_ln_ypnoab = p + +* Obtain random component +cap drop epsilon +gen epsilon = rnormal()*sigma + +* Convert into level with random component +gen pred_ypnoab = exp(pred_ln_ypnoab + epsilon) + +* Trim predictions +sum pred_ypnoab, d +replace pred_ypnoab = . if pred_ypnoab < r(p1) | pred_ypnoab > r(p99) + +twoway (hist pred_ypnoab, width(25) color(green)) /// + (hist ypnoab_lvl, width(25) color(none) lcolor(black)), /// + xtitle (Private Pension Income (GBP)) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Private Pension Income Amount") /// + subtitle("Retired in the past year") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of Private Pension Income received. Estimation sample plotted. Sample contains all" "individual who were retired in the previous year. GBP per year, in 2015 prices." "Top and bottom percentiles of predicted trimmed.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I4b_amount_pension_retired_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + + +* By gender + +* Males +twoway (hist pred_ypnoab if dgn == 1, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypnoab_lvl if dgn == 1, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Males") name(graph1, replace) /// + xtitle (Private Pension Income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + +* Females +twoway (hist pred_ypnoab if dgn == 0, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypnoab_lvl if dgn == 0, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Females") name(graph2, replace) /// + xtitle (Private Pension Income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + + +grc1leg graph1 graph2 , /// + title("Private Pension Income Amount") /// + subtitle("Retired in the past year") /// + legendfrom(graph1) rows(1) /// + graphregion(color(white)) /// + note("Notes: Predicted vs observed of Private Pension Income received. Estimation sample plotted. Sample contains all" "individuals who were retired in the previous year. GBP per year, in 2015 prices." "Top and bottom percentiles of predicted trimmed.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I4b_amount_pension_retired_hist_all_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* By education + +* Low +twoway (hist pred_ypnoab if deh_c3 == 3, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypnoab_lvl if dgn == 1, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Low education") name(graph1, replace) /// + xtitle (Private Pension Income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + +* Medium +twoway (hist pred_ypnoab if deh_c3 == 2, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypnoab_lvl if dgn == 0, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Medium education") name(graph2, replace) /// + xtitle (Private Pension Income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + +* High +twoway (hist pred_ypnoab if deh_c3 == 1, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypnoab_lvl if dgn == 0, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("High education") name(graph3, replace) /// + xtitle (Private Pension Income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + + +grc1leg graph1 graph2 graph3 , /// + title("Private Pension Income Amount") /// + subtitle("Retired in the past year") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Predicted vs observed of Private Pension Income received. Estimation sample plotted. Sample contains all" "individuals who were retired in the previous year. GBP per year, in 2015 prices." "Top and bottom percentiles of predicted trimmed.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I4b_amount_pension_retired_hist_all_edu.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +*********************************************************************** +* I5a selection - private pension income, not retired in the past year +*********************************************************************** +use "$dir_validation_data/I5a_selection_sample", clear + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_receives_ypnoab`i' = 0 + replace pred_receives_ypnoab`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +replace stm = 2000 + stm +egen pred_receives_ypnoab = rowmean(pred_receives_ypnoab0-pred_receives_ypnoab19) + +* Raw prediction vs observed +twoway /// + (histogram pred_receives_ypnoab0, color(red)) /// + (histogram receives_ypnoab, color(none) lcolor(black)), /// + xtitle (Receives private pension income) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Receives private pension income") /// + subtitle("In initial education spell") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indicating private pension income is recieved. Estimation sample plotted. Sample contains all" "individuals who were not retired last year.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I5a_selection_private_pension_notretired_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +preserve + +collapse (mean) receives_ypnoab pred_receives_ypnoab [aw = dwt], by(stm) + +twoway /// +(line pred_receives_ypnoab stm, sort color(green) legend(label(1 "Predicted"))) /// +(line receives_ypnoab stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Receives Captial Income") /// + subtitle("In initial education spell") /// + xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals individuals who were not retired last year." "Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +restore + +graph drop _all + + +* By gender +preserve + +collapse (mean) receives_ypnoab pred_receives_ypnoab [aw = dwt], by(stm dgn) + +twoway /// +(line pred_receives_ypnoab stm if dgn == 0, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypnoab stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Females") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypnoab stm if dgn == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypnoab stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Males") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 , /// + title("Receives Captial Income ") /// + subtitle("In initial education spell") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals individuals who were not retired last year." "Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + + +* Share by age +preserve + +collapse (mean) receives_ypnoab pred_receives_ypnoab [aw = dwt], by(dag) + +twoway /// +(line pred_receives_ypnoab dag, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypnoab dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Receives private pension income") subtitle("In initial education spell, share by age") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who individuals who were not retired last year." "Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I5a_selection_private_pension_notretired_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + + +* Hh income +preserve + +collapse (mean) receives_ypnoab pred_receives_ypnoab [aw = dwt], by(ydses_c5 stm) + +twoway /// +(line pred_receives_ypnoab stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypnoab stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypnoab stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypnoab stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypnoab stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypnoab stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypnoab stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypnoab stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph4) title("Fourth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypnoab stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypnoab stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Receives private pension income ") /// + subtitle("In initial education spell, by hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who were not retired last year." "Predictions are the average over 20 random draws.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + + +* Marital status +preserve + +collapse (mean) receives_ypnoab pred_receives_ypnoab [aw = dwt], by(dcpst stm) + +twoway /// +(line pred_receives_ypnoab stm if dcpst == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypnoab stm if dcpst == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypnoab stm if dcpst == 2, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypnoab stm if dcpst == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Single") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_receives_ypnoab stm if dcpst == 3, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line receives_ypnoab stm if dcpst == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph3) title("Previously partnered") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 , /// + title("Receives private pension income") /// + subtitle("In initial education spell") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who were not retired last year." "Predictions are the average over 20 random draws.", size(vsmall)) + +graph export /// +"$dir_validation_graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both_partnership.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + +graph drop _all + +******************************** +* I5b: Amount of pension income. +******************************** + +use "$dir_validation_data/I5a_level_sample", clear + +keep if in_sample == 1 + +* Obtain predicted log amount +gen pred_ln_ypnoab = p + +* Obtain random component +cap drop epsilon +gen epsilon = rnormal()*sigma + +* Convert into level with random component +gen pred_ypnoab = exp(pred_ln_ypnoab + epsilon) + +* Trim predictions +sum pred_ypnoab, d +replace pred_ypnoab = . if pred_ypnoab < r(p1) | pred_ypnoab > r(p99) + +twoway (hist pred_ypnoab, width(1) color(green)) /// + (hist ypnoab_lvl, width(1) color(none) lcolor(black)), /// + xtitle (Private Pension Income (GBP)) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Private Pension Income Amount") /// + subtitle("Retired in the past year") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of Private Pension Income received. Estimation sample plotted. Sample contains all" "individual who were not retired in the previous year. GBP per year, in 2015 prices." "Top and bottom percentiles of predicted trimmed.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I5a_amount_pension_retired_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + + +* By gender + +* Males +twoway (hist pred_ypnoab if dgn == 1, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypnoab_lvl if dgn == 1, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Males") name(graph1, replace) /// + xtitle (Private Pension Income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + +* Females +twoway (hist pred_ypnoab if dgn == 0, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypnoab_lvl if dgn == 0, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Females") name(graph2, replace) /// + xtitle (Private Pension Income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + + +grc1leg graph1 graph2 , /// + title("Private Pension Income Amount") /// + subtitle("Retired in the past year") /// + legendfrom(graph1) rows(1) /// + graphregion(color(white)) /// + note("Notes: Predicted vs observed of Private Pension Income received. Estimation sample plotted. Sample contains all" "individuals who were not retired in the previous year. GBP per year, in 2015 prices." "Top and bottom percentiles of predicted trimmed.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I5a_amount_pension_retired_hist_all_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* By education + +* Low +twoway (hist pred_ypnoab if deh_c3 == 3, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypnoab_lvl if dgn == 1, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Low education") name(graph1, replace) /// + xtitle (Private Pension Income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + +* Medium +twoway (hist pred_ypnoab if deh_c3 == 2, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypnoab_lvl if dgn == 0, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("Medium education") name(graph2, replace) /// + xtitle (Private Pension Income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + +* High +twoway (hist pred_ypnoab if deh_c3 == 1, width(1) color(green) /// + legend(lab(1 "Predicted"))) /// +(histogram ypnoab_lvl if dgn == 0, width(1) color(none) lcolor(black) /// + legend(lab( 2 "Observed"))), /// + subtitle("High education") name(graph3, replace) /// + xtitle (Private Pension Income (GBP)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) + + +grc1leg graph1 graph2 graph3 , /// + title("Private Pension Income Amount") /// + subtitle("Retired in the past year") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Predicted vs observed of Private Pension Income received. Estimation sample plotted. Sample contains all" "individuals who were not retired in the previous year. GBP per year, in 2015 prices." "Top and bottom percentiles of predicted trimmed.", size(vsmall)) + +graph export "$dir_validation_graphs/income/int_validation_I5a_amount_pension_retired_hist_all_edu.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + + + graph drop _all diff --git a/validation/01_estimate_validation/do_files/int_val_leave_parental_home.do b/validation/01_estimate_validation/do_files/int_val_leave_parental_home.do new file mode 100644 index 000000000..e1f525c77 --- /dev/null +++ b/validation/01_estimate_validation/do_files/int_val_leave_parental_home.do @@ -0,0 +1,300 @@ +******************************************************************************** +* PROJECT: ESPON +* SECTION: Leave parental home +* OBJECT: Internal validation +* AUTHORS: Ashley Burdett, Daria Popova +* LAST UPDATE: July 2025 +* COUNTRY: UK + +* NOTES: Compares predicted values to the observed values of the +* leaving the parental home process. +* Individual heterogeneity added to the standard predicted +* values using a random draw like in stochasitic +* imputation. The pooled mean is obtained as in multiple +* imputation by repeating the random draw 20 times for each +* process. +* +* Run after "reg_leave_parental_home.do" +******************************************************************************** + +************************************ +* Process P1a: Leave Parental Home * +************************************ + +* Overall +use "$dir_validation_data/P1a_sample", clear + +set seed 12345 +gen rnd = runiform() +gen pred_dlftphm = 0 +replace pred_dlftphm = 1 if inrange(p,rnd,1) + +keep if in_sample == 1 + +twoway /// + (histogram pred_dlftphm, color(red)) /// + (histogram dlftphm, color(none) lcolor(black)), /// + xtitle (Leave) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Leaving the Parental Home") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indicating whether individual leaves the parental home given they were observed last year" "living with parents. Estimation sample plotted. Sample contains all 18+.", size(vsmall)) + +graph export "$dir_validation_graphs/leave_parental_home/int_validation_P1a_leave_parental_home_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + + +* Year +use "$dir_validation_data/P1a_sample", clear + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_dlftphm`i' = 0 + replace pred_dlftphm`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +collapse (mean) dlftphm pred_dlftphm* [aw = dwt], by(stm) + +order pred_dlftphm* + +egen pred_dlftphm = rowmean(pred_dlftphm0-pred_dlftphm19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dlftphm stm, sort color(green) legend(label(1 "Predicted"))) /// +(line dlftphm stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Leaving the Parental Home") xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+. ", size(vsmall)) + +graph export "$dir_validation_graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Gender +preserve + +collapse (mean) dlftphm pred_dlftphm* [aw = dwt], by(dgn stm) + +order pred_dlftphm* + +egen pred_dlftphm = rowmean(pred_dlftphm0-pred_dlftphm19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dlftphm stm if dgn == 0, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dlftphm stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Females") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlftphm stm if dgn == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dlftphm stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Males") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 , /// + title("Leaving the Parental Home") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+.", /// + size(vsmall)) + +graph export "$dir_validation_graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Age +preserve + +collapse (mean) dlftphm pred_dlftphm* [aw = dwt], by(dag) + +order pred_dlftphm* + +egen pred_dlftphm = rowmean(pred_dlftphm0-pred_dlftphm19) + +twoway /// +(line pred_dlftphm dag, sort color(green) legend(label(1 "Predicted"))) /// +(line dlftphm dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Leaving the Parental Home") subtitl("Share by age") /// +xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+.", /// + size(vsmall)) + +graph export "$dir_validation_graphs/leave_parental_home/int_validation_P1a_leave_parental_home_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Income +preserve + +collapse (mean) dlftphm pred_dlftphm* [aw = dwt], by(ydses_c5 stm) + +order pred_dlftphm* + +egen pred_dlftphm = rowmean(pred_dlftphm0-pred_dlftphm19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dlftphm stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dlftphm stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlftphm stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlftphm stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlftphm stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlftphm stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlftphm stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlftphm stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Forth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dlftphm stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlftphm stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Leaving the Parental Home") /// + subtitle("By hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+.", /// + size(vsmall)) + +graph export "$dir_validation_graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Education +preserve + +collapse (mean) dlftphm pred_dlftphm* [aw = dwt], by(deh_c3 stm) + +order pred_dlftphm* + +egen pred_dlftphm = rowmean(pred_dlftphm0-pred_dlftphm19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dlftphm stm if deh_c3 == 1, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlftphm stm if deh_c3 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph1) title("High education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + + +twoway /// +(line pred_dlftphm stm if deh_c3 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlftphm stm if deh_c3 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Medium education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + + +twoway /// +(line pred_dlftphm stm if deh_c3 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dlftphm stm if deh_c3 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Low education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3, /// + title("Leaving the parental home") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+.", /// + size(vsmall)) + +graph export "$dir_validation_graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both_edu.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + diff --git a/validation/01_estimate_validation/do_files/int_val_partnership.do b/validation/01_estimate_validation/do_files/int_val_partnership.do new file mode 100644 index 000000000..b93b3c2a3 --- /dev/null +++ b/validation/01_estimate_validation/do_files/int_val_partnership.do @@ -0,0 +1,703 @@ +******************************************************************************** +* PROJECT: ESPON +* SECTION: Partnership +* OBJECT: Internal validation +* AUTHORS: Ashley Burdett, Daria Popova +* LAST UPDATE: July 2025 +* COUNTRY: UK + +* NOTES: Compares predicted values to the observed values of the +* partnership processes. +* Individual heterogeneity added to the standard predicted +* values using a random draw like in stochasitic +* imputation. The pooled mean is obtained as in multiple +* imputation by repeating the random draw 20 times for each +* process. +* +* Run after "reg_partnership.do" +******************************************************************************** + +**************************************************** +* U1a: Partnership formation, in initial edu spell * +**************************************************** + +* Overall +use "$dir_validation_data/U1a_sample", clear + +set seed 12345 +gen rnd = runiform() +gen pred_dcpen = 0 +replace pred_dcpen = 1 if inrange(p,rnd,1) + +keep if in_sample == 1 + +twoway /// +(histogram pred_dcpen, color(red)) /// +(histogram dcpen, color(none) lcolor(black)), /// + xtitle (Formation) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Partnership Formation") /// + subtitle("In initial education spell") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indiciating forming a partnership. Estimation sample plotted. Sample contains individuals" "who are in their initial education spell and 18-29 years old. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U1a_partnership_init_edu_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + + +* Year +use "$dir_validation_data/U1a_sample", clear + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_dcpen`i' = 0 + replace pred_dcpen`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +collapse (mean) dcpen pred_dcpen* [aw = dwt], by(stm) + +order pred_dcpen* + +egen pred_dcpen = rowmean(pred_dcpen0-pred_dcpen19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dcpen stm, sort color(green) legend(label(1 "Predicted"))) /// +(line dcpen stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// + title("Partnership Formation") /// + subtitle("In initial education spell") /// + xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18-29 years old and in their initial education spell. Initial" "education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Gender +preserve + +collapse (mean) dcpen pred_dcpen* [aw = dwt], by(dgn stm) + +order pred_dcpen* + +egen pred_dcpen = rowmean(pred_dcpen0-pred_dcpen19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dcpen stm if dgn == 0, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dcpen stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Females") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpen stm if dgn == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dcpen stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Males") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2, /// + title("Partnership Formation") /// + subtitle("In initial education spell") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18-29 years old and in their initial education spell. Initial education spell" "defined generously.", size(vsmall)) + + +graph export "$dir_validation_graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Age +preserve + +collapse (mean) dcpen pred_dcpen* [aw = dwt], by(dag) + +order pred_dcpen* + +egen pred_dcpen = rowmean(pred_dcpen0-pred_dcpen19) + +twoway /// +(line pred_dcpen dag, sort color(green) legend(label(1 "Predicted"))) /// +(line dcpen dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Partnership Formation") /// + subtitle("In initial education spall, share by age") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+ years old and in their initial education spell. Initial" "education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U1a_partnership_init_edu_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Income +preserve + +collapse (mean) dcpen pred_dcpen* [aw = dwt], by(ydses_c5 stm) + +order pred_dcpen* + +egen pred_dcpen = rowmean(pred_dcpen0-pred_dcpen19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dcpen stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dcpen stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpen stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpen stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpen stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpen stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpen stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpen stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Forth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpen stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpen stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Partnership Formation") /// + subtitle("In initial education spell, by hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18-29 years old and in their initial education spell. Initial education spell" "defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +****************************************************** +* U1b: Partnership formation, left initial edu spell * +****************************************************** + +* Overall +use "$dir_validation_data/U1b_sample", clear + +set seed 12345 +gen rnd = runiform() +gen pred_dcpen = 0 +replace pred_dcpen = 1 if inrange(p,rnd,1) + +keep if in_sample == 1 + +twoway /// + (histogram pred_dcpen, color(red)) /// + (histogram dcpen, color(none) lcolor(black)), /// + xtitle (Formation) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Partnership Formation") /// + subtitle("Left initial education spell") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indicating forming a partnership. Estimation sample plotted. Sample contains individuals" "who are 18+ years old and have left their initial education spell. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U1b_partnership_left_edu_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +* Year +use "$dir_validation_data/U1b_sample", clear + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_dcpen`i' = 0 + replace pred_dcpen`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +collapse (mean) dcpen pred_dcpen* [aw = dwt], by(stm) + +order pred_dcpen* + +egen pred_dcpen = rowmean(pred_dcpen0-pred_dcpen19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dcpen stm, sort color(green) legend(label(1 "Predicted"))) /// +(line dcpen stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// + title("Partnership Formation") /// + subtitle("Left initial education spell") /// + xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+ years old and have left initial education spell. Initial" "education spell defined generously.", size(vsmall)) + + +graph export "$dir_validation_graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Gender +preserve + +collapse (mean) dcpen pred_dcpen* [aw = dwt], by(dgn stm) + +order pred_dcpen* + +egen pred_dcpen = rowmean(pred_dcpen0-pred_dcpen19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dcpen stm if dgn == 0, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dcpen stm if dgn == 0, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("Females") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpen stm if dgn == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dcpen stm if dgn == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph2) title("Males") xtitle("Year") ytitle("Share") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2, /// + title("Partnership Formation") /// + subtitle("Left initial education spell") /// + legendfrom(graph1) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+ years old and have left their initial education spall. Initial" "education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_gender.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Age +preserve + +collapse (mean) dcpen pred_dcpen* [aw = dwt], by(dag) + +order pred_dcpen* + +egen pred_dcpen = rowmean(pred_dcpen0-pred_dcpen19) + +twoway /// +(line pred_dcpen dag, sort color(green) legend(label(1 "Predicted"))) /// +(line dcpen dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// + title("Partnership Formation") /// + subtitle("Left initial education spell, share by age") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+ years old and have left their initial education spell. Initial" "education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U1b_partnership_left_edu_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Income +preserve + +collapse (mean) dcpen pred_dcpen* [aw = dwt], by(ydses_c5 stm) + +order pred_dcpen* + +egen pred_dcpen = rowmean(pred_dcpen0-pred_dcpen19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dcpen stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dcpen stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpen stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpen stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpen stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpen stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpen stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpen stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Forth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpen stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpen stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Partnership Formation") /// + subtitle("Left initial education spell, by hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individual who are 18+ years old and have left their initial education spell. Initial" "education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +********************************************************** +* U2b: Partnership termination, not in initial edu spell * +********************************************************** + +* Overall +use "$dir_validation_data/U2b_sample", clear + +set seed 12345 +gen rnd = runiform() +gen pred_dcpex = 0 +replace pred_dcpex = 1 if inrange(p,rnd,1) + +keep if in_sample == 1 + +twoway /// + (histogram pred_dcpex, color(red)) /// + (histogram dcpex, color(none) lcolor(black)), /// + xtitle (Formation) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Partnership Termination") /// + subtitle("Left initial education spell") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indiciating ending a partnership. Estimation sample plotted. Sample contains individuals" "who have left their initial education spell and are 18+ years old. Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U2b_separation_left_edu_hist_all.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +use "$dir_validation_data/U2b_sample", clear + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_dcpex`i' = 0 + replace pred_dcpex`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +collapse (mean) dcpex pred_dcpex* [aw = dwt], by(stm) + +order pred_dcpex* + +egen pred_dcpex = rowmean(pred_dcpex0-pred_dcpex19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dcpex stm, sort color(green) legend(label(1 "Predicted"))) /// +(line dcpex stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Partnership Termination") /// + subtitle("Left initial education spell") /// + xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+ years old and have left their initial education spell." "Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U2b_separation_left_edu_ts_all_both.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Age +preserve + +collapse (mean) dcpex pred_dcpex* [aw = dwt], by(dag) + +order pred_dcpex* + +egen pred_dcpex = rowmean(pred_dcpex0-pred_dcpex19) + +twoway /// +(line pred_dcpex dag, sort color(green) legend(label(1 "Predicted"))) /// +(line dcpex dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Partnership Termination") /// + subtitle("Left initial education spell") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+ years old and have left their initial education spell." "Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U2b_separation_left_edu_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Income +preserve + +collapse (mean) dcpex pred_dcpex* [aw = dwt], by(ydses_c5 stm) + +order pred_dcpex* + +egen pred_dcpex = rowmean(pred_dcpex0-pred_dcpex19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dcpex stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dcpex stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + + +twoway /// +(line pred_dcpex stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpex stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + + +twoway /// +(line pred_dcpex stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpex stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + + +twoway /// +(line pred_dcpex stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpex stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Forth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + + +twoway /// +(line pred_dcpex stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpex stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// +title("Partnership Termination") /// + subtitle("Left initial education spell by hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+ years old and have left their initial education spell." "Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U2b_separation_init_edu_ts_all_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Education +preserve + +collapse (mean) dcpex pred_dcpex* [aw = dwt], by(deh_c3 stm) + +order pred_dcpex* + +egen pred_dcpex = rowmean(pred_dcpex0-pred_dcpex19) + +replace stm = 2000 + stm + +twoway /// +(line pred_dcpex stm if deh_c3 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line dcpex stm if deh_c3 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("High education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpex stm if deh_c3 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpex stm if deh_c3 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Medium education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_dcpex stm if deh_c3 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line dcpex stm if deh_c3 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Low education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3, /// +title("Partnership Termination") /// + subtitle("Left initial education spell") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 18+ years old and have left their initial education spell." "Initial education spell defined generously.", size(vsmall)) + +graph export "$dir_validation_graphs/partnership/int_validation_U2b_separation_init_edu_ts_all_both_edu.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore diff --git a/validation/01_estimate_validation/do_files/int_val_retirement.do b/validation/01_estimate_validation/do_files/int_val_retirement.do new file mode 100644 index 000000000..355849eaf --- /dev/null +++ b/validation/01_estimate_validation/do_files/int_val_retirement.do @@ -0,0 +1,492 @@ +******************************************************************************** +* PROJECT: ESPON +* SECTION: Retirement +* OBJECT: Internal validation +* AUTHORS: Ashley Burdett, Daria Popova +* LAST UPDATE: 1 July 2025 +* COUNTRY: UK + +* NOTES: Compares predicted values to the observed values of the +* 2 retirement processes estimated. +* Individual heterogeneity added to the standard predicted +* values using a random draw like in stochasitic +* imputation. The pooled mean is obtained as in multiple +* imputation by repeating the random draw 20 times for each +* process. +* +* Run after "reg_retirement.do" +******************************************************************************** + +**************************** +* R1a: Retirement - Single * +**************************** + +* Overall +use "$dir_validation_data/R1a_sample", clear + +set seed 12345 +gen rnd = runiform() +gen pred_drtren = 0 +replace pred_drtren = 1 if inrange(p,rnd,1) + +keep if in_sample == 1 + +twoway /// + (histogram pred_drtren, color(red)) /// + (histogram drtren, color(none) lcolor(black) ), /// + xtitle (Retired) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Retirement") /// + subtitle("Non-partnered") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indicating retire. Estimation sample plotted. Sample contains individuals" "who are 50+ years old years old and do not liv with a partner.", size(vsmall)) + +graph export "$dir_validation_graphs/retirement/int_validation_R1a_retirement_single_hist_50.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +use "$dir_validation_data/R1a_sample", clear + +// construct multiple versions of the predicted outcome allowing for different +// random draws +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_drtren`i' = 0 + replace pred_drtren`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +// for each iteration calculate the share that leave edu +collapse (mean) drtren pred_drtren* [aw = dwt], by(stm) + +order pred_drtren* + +// take the average across datasets +egen pred_drtren = rowmean(pred_drtren0-pred_drtren19) +replace stm = 2000 + stm + +twoway /// +(line pred_drtren stm, sort color(green) legend(label(1 "Predicted"))) /// +(line drtren stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Retirement") /// + subtitle("Non-partnered") /// + xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 50+ years old and do not live with a partner.", size(vsmall)) + +graph export "$dir_validation_graphs/retirement/int_validation_R1a_retirement_single_ts_50.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Age +preserve + +collapse (mean) drtren pred_drtren* [aw = dwt], by(dag) + +order pred_drtren* + +egen pred_drtren = rowmean(pred_drtren0-pred_drtren19) + +twoway /// +(line pred_drtren dag, sort color(green) legend(label(1 "Predicted"))) /// +(line drtren dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Retirement") subtitle("Non-partnered, share by age") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 50+ years old and do not live with a partner.", size(vsmall)) + + +graph export "$dir_validation_graphs/retirement/int_validation_R1a_retirement_single_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Income +preserve + +collapse (mean) drtren pred_drtren* [aw = dwt], by(ydses_c5 stm) + +order pred_drtren* + +egen pred_drtren = rowmean(pred_drtren0-pred_drtren19) + +replace stm = 2000 + stm + +twoway /// +(line pred_drtren stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line drtren stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_drtren stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_drtren stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_drtren stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Forth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_drtren stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Retirement single") /// + subtitle("Non-partnered, by hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 50+ years old and do not live with a partner.", size(vsmall)) + +graph export "$dir_validation_graphs/retirement/int_validation_R1a_retirement_single_ts_50_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +graph drop _all + +restore + + +* Education +preserve + +collapse (mean) drtren pred_drtren* [aw = dwt], by(deh_c3 stm) + +order pred_drtren* + +egen pred_drtren = rowmean(pred_drtren0-pred_drtren19) + +replace stm = 2000 + stm + +twoway /// +(line pred_drtren stm if deh_c3 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line drtren stm if deh_c3 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("High education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + + +twoway /// +(line pred_drtren stm if deh_c3 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if deh_c3 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Medium education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_drtren stm if deh_c3 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if deh_c3 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Low education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + + +grc1leg graph1 graph2 graph3 , /// + title("Retirement") /// + subtitle("Non-partnered") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 50+ years old and do not live with a partner.", size(vsmall)) + +graph export "$dir_validation_graphs/retirement/int_validation_R1a_retirement_single_ts_50_both_edu.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +graph drop _all + +restore + + +******************************* +* R1b: Retirement - Partnered * +******************************* + +* Overall +use "$dir_validation_data/R1b_sample", clear + +set seed 12345 +gen rnd = runiform() +gen pred_drtren = 0 +replace pred_drtren = 1 if inrange(p,rnd,1) + +keep if in_sample == 1 + +twoway /// + (histogram pred_drtren, color(red)) /// + (histogram drtren, color(none) lcolor(black)), /// + xtitle (Retired) /// + legend(lab(1 "Predicted") lab( 2 "Observed")) name(levels, replace) /// + title("Retirement") /// + subtitle("Partnered") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Predicted vs observed of dummy indicating retire. Estimation sample plotted. Sample contains individuals who are 50+ years old and live with a partner.", size(vsmall)) + +graph export "$dir_validation_graphs/retirement/int_validation_R1b_retirement_partnered_hist_50.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +* Year +use "$dir_validation_data/R1b_sample", clear + +forvalues i = 0/19 { + local my_seed = 12345 + `i' + set seed `my_seed' + gen rnd = runiform() + gen pred_drtren`i' = 0 + replace pred_drtren`i' = 1 if inrange(p,rnd,1) + drop rnd +} + +keep if in_sample == 1 + +preserve + +collapse (mean) drtren pred_drtren* [aw = dwt], by(stm) + +order pred_drtren* + +egen pred_drtren = rowmean(pred_drtren0-pred_drtren19) + +replace stm = 2000 + stm + +twoway /// +(line pred_drtren stm, sort color(green) legend(label(1 "Predicted"))) /// +(line drtren stm, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Retirement") /// + subtitle("Partnered") /// + xtitle("Year") ytitle("Share") /// + graphregion(color(white)) /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 50+ years old and live with a partner.", size(vsmall)) + +graph export "$dir_validation_graphs/retirement/int_validation_R1b_retirement_partnered_ts_50.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Age +preserve + +collapse (mean) drtren pred_drtren* [aw = dwt], by(dag) + +order pred_drtren* + +egen pred_drtren = rowmean(pred_drtren0-pred_drtren19) + +twoway /// +(line pred_drtren dag, sort color(green) legend(label(1 "Predicted"))) /// +(line drtren dag, sort color(green) color(green%20) lpattern(dash) /// + legend(label(2 "Observed"))), /// +title("Retirement") subtitle("Partnered, share by age") /// + xtitle("Age") /// + ytitle("Share") xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 50+ years old and live with a partner.", size(vsmall)) + +graph export "$dir_validation_graphs/retirement/int_validation_R1b_retirement_partnered_share_age.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +restore + + +* Income +preserve + +collapse (mean) drtren pred_drtren* [aw = dwt], by(ydses_c5 stm) + +order pred_drtren* + +egen pred_drtren = rowmean(pred_drtren0-pred_drtren19) + +replace stm = 2000 + stm + +twoway /// +(line pred_drtren stm if ydses_c5 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line drtren stm if ydses_c5 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("First quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_drtren stm if ydses_c5 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if ydses_c5 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Second quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_drtren stm if ydses_c5 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if ydses_c5 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Third quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_drtren stm if ydses_c5 == 4, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if ydses_c5 == 4, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph4) title("Forth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_drtren stm if ydses_c5 == 5, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if ydses_c5 == 5, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph5) title("Fifth quintile") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +grc1leg graph1 graph2 graph3 graph4 graph5, /// + title("Retirement") /// + subtitle("Partnered, by hh disposable income") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 50+ years old and live with a partner.", size(vsmall)) + +graph export "$dir_validation_graphs/retirement/int_validation_R1b_retirement_partnered_ts_50_both_income.png", /// + as(png) replace width(2560) height(1440) //quality(100) + +graph drop _all + +restore + + +* Education +preserve + +collapse (mean) drtren pred_drtren* [aw = dwt], by(deh_c3 stm) + +order pred_drtren* + +egen pred_drtren = rowmean(pred_drtren0-pred_drtren19) + +replace stm = 2000 + stm + +twoway /// +(line pred_drtren stm if deh_c3 == 1, sort color(green) /// + legend(label(1 "Predicted"))) /// +(line drtren stm if deh_c3 == 1, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Observed"))), /// +name(graph1) title("High education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_drtren stm if deh_c3 == 2, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if deh_c3 == 2, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph2) title("Medium education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + +twoway /// +(line pred_drtren stm if deh_c3 == 3, sort color(green) /// + legend(label(1 "Pred"))) /// +(line drtren stm if deh_c3 == 3, sort color(green) color(green%20) /// + lpattern(dash) legend(label(2 "Obs"))), /// +name(graph3) title("Low education") xtitle("Year") ytitle("") /// + xlabel(, labsize(small)) ylabel(, labsize(small)) /// + legend(size(small)) /// + graphregion(color(white)) + + +grc1leg graph1 graph2 graph3 , /// + title("Retirement") /// + subtitle("Partnered") /// + legendfrom(graph1) rows(2) /// + graphregion(color(white)) /// + note("Notes: Estimation sample plotted. Sample contains individuals who are 50+ years old and live with a partner.", size(vsmall)) + +graph export "$dir_validation_graphs/retirement/int_validation_R1b_retirement_partnered_ts_50_both_edu.png", /// + as(png) replace width(2560) height(1440) //quality(100) + + +graph drop _all + +restore + + + diff --git a/validation/01_estimate_validation/do_files/int_val_wages.do b/validation/01_estimate_validation/do_files/int_val_wages.do new file mode 100644 index 000000000..a3c3b916e --- /dev/null +++ b/validation/01_estimate_validation/do_files/int_val_wages.do @@ -0,0 +1,125 @@ +******************************************************************************** +* PROJECT: ESPON +* SECTION: Wages +* OBJECT: Internal validation +* AUTHORS: Ashley Burdett, Daria Popova +* LAST UPDATE: May 2025 +* COUNTRY: UK + +* NOTES: Compares predicted values to the observed values. +* Individual heterogeneity added to the standard predicted +* values using a random draw like in stochasitic +* imputation. The pooled mean is obtained as in multiple +* imputation by repeating the random draw 20 times for each +* process. +* +* Run after "reg_wages.do" +******************************************************************************** + +* Female - No previous wage + +use "$dir_validation_data/Female_NPW_sample", clear + +* Correct bias when transforming from log to levels +cap drop epsilon +gen epsilon = rnormal()*e(sigma) + +replace pred_hourly_wage = exp(lwage_hour_hat + epsilon) if in_sample_fnpw + +twoway (hist pred_hourly_wage if pred_hourly_wage<150 & in_sample_fnpw == 1, /// + width(1) color(red)) /// + (hist wage_hour if wage_hour<150 & in_sample_fnpw == 1, width(1) /// + color(none) lcolor(black)), /// + title("Hourly Wages") /// + subtitle("Females, no previous wage observed") /// + xtitle (Gross hourly wages (GBP)) legend(lab(1 "Observed") /// + lab( 2 "Predicted")) name(log, replace) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Sample includes working age (18-64) females. Predictions obtained from the estimates of a Heckman model.", size(vsmall)) + +graph export /// + "$dir_validation_graphs/wages/int_validation_wages_hist_f_npw.png", replace as(png) width(2560) height(1440) + + +* Male - No previous wage + +use "$dir_validation_data/Male_NPW_sample", clear + +* Correct bias when transforming from log to levels +cap drop epsilon +gen epsilon = rnormal()*e(sigma) + +replace pred_hourly_wage = exp(lwage_hour_hat + epsilon) if in_sample_mnpw + +twoway (hist pred_hourly_wage if pred_hourly_wage<150 & in_sample_mnpw == 1, /// + width(1) color(red)) /// + (hist wage_hour if wage_hour<150 & in_sample_mnpw == 1, width(1) /// + color(none) lcolor(black)), /// + title("Hourly Wages") /// + subtitle("Males, no previous wage observed") /// + xtitle (Gross hourly wages (GBP)) legend(lab(1 "Observed") /// + lab( 2 "Predicted")) name(log, replace) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Sample includes working age (18-64) males. Predictions obtained from the estimates of a Heckman model.", size(vsmall)) + +graph export /// + "$dir_validation_graphs/wages/int_validation_wages_hist_m_npw.png", replace as(png) width(2560) height(1440) + + +* Female - Previous wage + +use "$dir_validation_data/Female_PW_sample", clear + +* Correct bias when transforming from log to levels +cap drop epsilon +gen epsilon = rnormal()*e(sigma) + +replace pred_hourly_wage = exp(lwage_hour_hat + epsilon) if in_sample_fpw + +twoway (hist pred_hourly_wage if pred_hourly_wage<150 & in_sample_fpw == 1, /// + width(1) color(red)) /// + (hist wage_hour if wage_hour<150 & in_sample_fpw == 1, width(1) /// + color(none) lcolor(black)), /// + title("Hourly Wages") /// + subtitle("Females, previous wage observed") /// + xtitle (Gross hourly wages (GBP)) legend(lab(1 "Observed") /// + lab( 2 "Predicted")) name(log, replace) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Sample includes working age (18-64) females. Predictions obtained from the estimates of a Heckman model.", size(vsmall)) + +graph export /// + "$dir_validation_graphs/wages/int_validation_wages_hist_f_pw.png", replace as(png) width(2560) height(1440) + + +* Male - Previous wage + +use "$dir_validation_data/Male_PW_sample", clear + +* Correct bias when transforming from log to levels +cap drop epsilon +gen epsilon = rnormal()*e(sigma) + +replace pred_hourly_wage = exp(lwage_hour_hat + epsilon) if in_sample_mpw + +twoway (hist pred_hourly_wage if pred_hourly_wage<150 & in_sample_fpw == 1, /// + width(1) color(red)) /// + (hist wage_hour if wage_hour<150 & in_sample_fpw == 1, width(1) /// + color(none) lcolor(black)), /// + title("Hourly Wages") /// + subtitle("Males, previous wage observed") /// + xtitle (Gross hourly wages (GBP)) legend(lab(1 "Observed") /// + lab( 2 "Predicted")) name(log, replace) /// + graphregion(color(white)) /// + legend(size(small)) /// + note("Notes: Sample includes working age (18-64) males. Predictions obtained from the estimates of a Heckman model.", size(vsmall)) + +graph export /// + "$dir_validation_graphs/wages/int_validation_wages_hist_m_pw.png", replace as(png) width(2560) height(1440) + + +graph drop _all + + diff --git a/validation/01_estimate_validation/graphs/.DS_Store b/validation/01_estimate_validation/graphs/.DS_Store new file mode 100644 index 000000000..f95fac451 Binary files /dev/null and b/validation/01_estimate_validation/graphs/.DS_Store differ diff --git a/validation/01_estimate_validation/graphs/00_README.rtf b/validation/01_estimate_validation/graphs/00_README.rtf new file mode 100644 index 000000000..54fd79b5e --- /dev/null +++ b/validation/01_estimate_validation/graphs/00_README.rtf @@ -0,0 +1,10 @@ +{\rtf1\ansi\ansicpg1252\cocoartf2822 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\margl1440\margr1440\vieww11520\viewh8400\viewkind0 +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\fs24 \cf0 Date: 8/10/2025\ +Internal validation on specifications that include ethnicity. \ +} \ No newline at end of file diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_share_age.png b/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_share_age.png new file mode 100644 index 000000000..4c69443fc Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_both.png b/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_both.png new file mode 100644 index 000000000..21b4c6ee2 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_both.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_both_income.png b/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_both_income.png new file mode 100644 index 000000000..9199631e6 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_both_partnership.png b/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_both_partnership.png new file mode 100644 index 000000000..6cf64b352 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_both_partnership.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_gender.png b/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_gender.png new file mode 100644 index 000000000..22726db70 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E1a_continues_edu_ts_16_29_gender.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_share_age.png b/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_share_age.png new file mode 100644 index 000000000..b22f4b082 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_both.png b/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_both.png new file mode 100644 index 000000000..fa9a1c144 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_both.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_both_income.png b/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_both_income.png new file mode 100644 index 000000000..a3cf767a9 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_both_partnership.png b/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_both_partnership.png new file mode 100644 index 000000000..00ccc2376 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_both_partnership.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_gender.png b/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_gender.png new file mode 100644 index 000000000..235ccca84 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E1b_returns_edu_ts_16_35_gender.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_hist_16_29_both.png b/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_hist_16_29_both.png new file mode 100644 index 000000000..4051b736e Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_hist_16_29_both.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_share_age.png b/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_share_age.png new file mode 100644 index 000000000..3bb7bb2cc Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_ts_16_29_both.png b/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_ts_16_29_both.png new file mode 100644 index 000000000..7bdb42d91 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_ts_16_29_both.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_ts_16_29_both_income.png b/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_ts_16_29_both_income.png new file mode 100644 index 000000000..d55c62259 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_ts_16_29_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_ts_16_29_gender.png b/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_ts_16_29_gender.png new file mode 100644 index 000000000..2d439ed34 Binary files /dev/null and b/validation/01_estimate_validation/graphs/education/int_validation_E2a_edu_attainment_ts_16_29_gender.png differ diff --git a/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_hist_18_30.png b/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_hist_18_30.png new file mode 100644 index 000000000..4d848187c Binary files /dev/null and b/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_hist_18_30.png differ diff --git a/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_share_age.png b/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_share_age.png new file mode 100644 index 000000000..415b76bc4 Binary files /dev/null and b/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_ts_18_30.png b/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_ts_18_30.png new file mode 100644 index 000000000..af6a5b7d9 Binary files /dev/null and b/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_ts_18_30.png differ diff --git a/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_ts_18_30_both_income.png b/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_ts_18_30_both_income.png new file mode 100644 index 000000000..4895111e4 Binary files /dev/null and b/validation/01_estimate_validation/graphs/fertility/int_validation__F1a_fertility_init_edu_ts_18_30_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_hist_18_45.png b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_hist_18_45.png new file mode 100644 index 000000000..a03ca9d83 Binary files /dev/null and b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_hist_18_45.png differ diff --git a/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_share_age.png b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_share_age.png new file mode 100644 index 000000000..28dd9c0c2 Binary files /dev/null and b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45.png b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45.png new file mode 100644 index 000000000..4e4dd964b Binary files /dev/null and b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45.png differ diff --git a/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45_edu.png b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45_edu.png new file mode 100644 index 000000000..0e1af77f0 Binary files /dev/null and b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45_edu.png differ diff --git a/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45_income.png b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45_income.png new file mode 100644 index 000000000..0880f8203 Binary files /dev/null and b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45_income.png differ diff --git a/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45_partnership.png b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45_partnership.png new file mode 100644 index 000000000..106599f1b Binary files /dev/null and b/validation/01_estimate_validation/graphs/fertility/int_validation__F1b_fertility_left_edu_ts_18_45_partnership.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_hist_18_29.png b/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_hist_18_29.png new file mode 100644 index 000000000..641732bb0 Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_hist_18_29.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_ts_18_29_both.png b/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_ts_18_29_both.png new file mode 100644 index 000000000..fdfba5f68 Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_ts_18_29_both.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_ts_18_29_female.png b/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_ts_18_29_female.png new file mode 100644 index 000000000..99d9d2520 Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_ts_18_29_female.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_ts_18_29_male.png b/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_ts_18_29_male.png new file mode 100644 index 000000000..cc271a23a Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_init_edu_ts_18_29_male.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_left_edu_hist_all.png b/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_left_edu_hist_all.png new file mode 100644 index 000000000..094547199 Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H1a_health_left_edu_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H1b_health_left_edu_ts_all_both.png b/validation/01_estimate_validation/graphs/health/int_validation_H1b_health_left_edu_ts_all_both.png new file mode 100644 index 000000000..b6979d216 Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H1b_health_left_edu_ts_all_both.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H1b_health_left_edu_ts_all_female.png b/validation/01_estimate_validation/graphs/health/int_validation_H1b_health_left_edu_ts_all_female.png new file mode 100644 index 000000000..f64ca15d1 Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H1b_health_left_edu_ts_all_female.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H1b_health_left_edu_ts_all_male.png b/validation/01_estimate_validation/graphs/health/int_validation_H1b_health_left_edu_ts_all_male.png new file mode 100644 index 000000000..8a07f5e2e Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H1b_health_left_edu_ts_all_male.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_hist_all.png b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_hist_all.png new file mode 100644 index 000000000..5eb26c398 Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_share_age.png b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_share_age.png new file mode 100644 index 000000000..c12668863 Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both.png b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both.png new file mode 100644 index 000000000..dda79ba10 Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_edu.png b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_edu.png new file mode 100644 index 000000000..5662817bf Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_edu.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_income.png b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_income.png new file mode 100644 index 000000000..c71373959 Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_partnership.png b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_partnership.png new file mode 100644 index 000000000..f4b09a26f Binary files /dev/null and b/validation/01_estimate_validation/graphs/health/int_validation_H2b_disablilty_left_edu_ts_all_both_partnership.png differ diff --git a/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_hist_all.png b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_hist_all.png new file mode 100644 index 000000000..add30fc7d Binary files /dev/null and b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_share_age.png b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_share_age.png new file mode 100644 index 000000000..6c86a0ade Binary files /dev/null and b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both.png b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both.png new file mode 100644 index 000000000..76ebccdb2 Binary files /dev/null and b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both.png differ diff --git a/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_edu.png b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_edu.png new file mode 100644 index 000000000..d678963ca Binary files /dev/null and b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_edu.png differ diff --git a/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_income.png b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_income.png new file mode 100644 index 000000000..ee36ef152 Binary files /dev/null and b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_partnership.png b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_partnership.png new file mode 100644 index 000000000..dfa017f36 Binary files /dev/null and b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_both_partnership.png differ diff --git a/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_gender.png b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_gender.png new file mode 100644 index 000000000..883b20d5a Binary files /dev/null and b/validation/01_estimate_validation/graphs/home_ownership/int_validation_HO1a_homeownership_ts_all_gender.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3a_amount_capital_init_edu_hist_all.png b/validation/01_estimate_validation/graphs/income/int_validation_I3a_amount_capital_init_edu_hist_all.png new file mode 100644 index 000000000..143a03eb2 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3a_amount_capital_init_edu_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3a_amount_capital_init_edu_hist_all_gender.png b/validation/01_estimate_validation/graphs/income/int_validation_I3a_amount_capital_init_edu_hist_all_gender.png new file mode 100644 index 000000000..ccc94083b Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3a_amount_capital_init_edu_hist_all_gender.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_hist_all.png b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_hist_all.png new file mode 100644 index 000000000..0e9e64d02 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_share_age.png b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_share_age.png new file mode 100644 index 000000000..8e38267b5 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both.png b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both.png new file mode 100644 index 000000000..1708b8601 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both_income.png b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both_income.png new file mode 100644 index 000000000..8c74fd0f2 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both_partnership.png b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both_partnership.png new file mode 100644 index 000000000..a5cd26424 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_both_partnership.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_gender.png b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_gender.png new file mode 100644 index 000000000..60cf6530d Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3a_selection_capital_init_edu_ts_all_gender.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all.png b/validation/01_estimate_validation/graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all.png new file mode 100644 index 000000000..893bf89e3 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all_edu.png b/validation/01_estimate_validation/graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all_edu.png new file mode 100644 index 000000000..37585960f Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all_edu.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all_gender.png b/validation/01_estimate_validation/graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all_gender.png new file mode 100644 index 000000000..b0ace9d07 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3b_amount_capital_left_edu_hist_all_gender.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_hist_all.png b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_hist_all.png new file mode 100644 index 000000000..6016e812a Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_share_age.png b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_share_age.png new file mode 100644 index 000000000..d939f8295 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both.png b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both.png new file mode 100644 index 000000000..293c848cd Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both_income.png b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both_income.png new file mode 100644 index 000000000..766e20e2e Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both_partnership.png b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both_partnership.png new file mode 100644 index 000000000..f5858a9c5 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_both_partnership.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_gender.png b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_gender.png new file mode 100644 index 000000000..0bb884194 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I3b_selection_capital_left_edu_ts_all_gender.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I4b_amount_pension_retired_hist_all.png b/validation/01_estimate_validation/graphs/income/int_validation_I4b_amount_pension_retired_hist_all.png new file mode 100644 index 000000000..c1e931a94 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I4b_amount_pension_retired_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I4b_amount_pension_retired_hist_all_edu.png b/validation/01_estimate_validation/graphs/income/int_validation_I4b_amount_pension_retired_hist_all_edu.png new file mode 100644 index 000000000..7199d24c3 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I4b_amount_pension_retired_hist_all_edu.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I4b_amount_pension_retired_hist_all_gender.png b/validation/01_estimate_validation/graphs/income/int_validation_I4b_amount_pension_retired_hist_all_gender.png new file mode 100644 index 000000000..eb5269251 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I4b_amount_pension_retired_hist_all_gender.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I5a_amount_pension_retired_hist_all.png b/validation/01_estimate_validation/graphs/income/int_validation_I5a_amount_pension_retired_hist_all.png new file mode 100644 index 000000000..9867f03a7 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I5a_amount_pension_retired_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I5a_amount_pension_retired_hist_all_edu.png b/validation/01_estimate_validation/graphs/income/int_validation_I5a_amount_pension_retired_hist_all_edu.png new file mode 100644 index 000000000..edd44df48 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I5a_amount_pension_retired_hist_all_edu.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I5a_amount_pension_retired_hist_all_gender.png b/validation/01_estimate_validation/graphs/income/int_validation_I5a_amount_pension_retired_hist_all_gender.png new file mode 100644 index 000000000..15a473722 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I5a_amount_pension_retired_hist_all_gender.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_hist_all.png b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_hist_all.png new file mode 100644 index 000000000..fba960afa Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_share_age.png b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_share_age.png new file mode 100644 index 000000000..87afcebef Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both.png b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both.png new file mode 100644 index 000000000..1e17b338c Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both_income.png b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both_income.png new file mode 100644 index 000000000..a2a572c1a Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both_partnership.png b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both_partnership.png new file mode 100644 index 000000000..659ea047a Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_both_partnership.png differ diff --git a/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_gender.png b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_gender.png new file mode 100644 index 000000000..ed652a346 Binary files /dev/null and b/validation/01_estimate_validation/graphs/income/int_validation_I5a_selection_private_pension_notretired_ts_all_gender.png differ diff --git a/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_hist_all.png b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_hist_all.png new file mode 100644 index 000000000..b4d5fa08b Binary files /dev/null and b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_share_age.png b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_share_age.png new file mode 100644 index 000000000..5ff1a2c3a Binary files /dev/null and b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both.png b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both.png new file mode 100644 index 000000000..0cb74decb Binary files /dev/null and b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both.png differ diff --git a/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both_edu.png b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both_edu.png new file mode 100644 index 000000000..91f3cc6b6 Binary files /dev/null and b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both_edu.png differ diff --git a/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both_income.png b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both_income.png new file mode 100644 index 000000000..5089acc3e Binary files /dev/null and b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_gender.png b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_gender.png new file mode 100644 index 000000000..ddca8060b Binary files /dev/null and b/validation/01_estimate_validation/graphs/leave_parental_home/int_validation_P1a_leave_parental_home_ts_all_gender.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_hist_all.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_hist_all.png new file mode 100644 index 000000000..1cdfbbc5e Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_share_age.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_share_age.png new file mode 100644 index 000000000..7a365a831 Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_both.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_both.png new file mode 100644 index 000000000..2ef99e6dd Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_both.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_both_income.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_both_income.png new file mode 100644 index 000000000..7b6d1cfbe Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_gender.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_gender.png new file mode 100644 index 000000000..cb9e690b8 Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U1a_partnership_init_edu_ts_all_gender.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_hist_all.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_hist_all.png new file mode 100644 index 000000000..5ad14a8eb Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_share_age.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_share_age.png new file mode 100644 index 000000000..0c8971e49 Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_both.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_both.png new file mode 100644 index 000000000..24aef5c55 Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_both.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_both_income.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_both_income.png new file mode 100644 index 000000000..168af02a9 Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_gender.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_gender.png new file mode 100644 index 000000000..0ce7b6e37 Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U1b_partnership_left_edu_ts_all_gender.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_init_edu_ts_all_both_edu.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_init_edu_ts_all_both_edu.png new file mode 100644 index 000000000..bd03d88b3 Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_init_edu_ts_all_both_edu.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_init_edu_ts_all_both_income.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_init_edu_ts_all_both_income.png new file mode 100644 index 000000000..f62507685 Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_init_edu_ts_all_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_left_edu_hist_all.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_left_edu_hist_all.png new file mode 100644 index 000000000..f665a2aa0 Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_left_edu_hist_all.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_left_edu_share_age.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_left_edu_share_age.png new file mode 100644 index 000000000..22807f10d Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_left_edu_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_left_edu_ts_all_both.png b/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_left_edu_ts_all_both.png new file mode 100644 index 000000000..768d2d30c Binary files /dev/null and b/validation/01_estimate_validation/graphs/partnership/int_validation_U2b_separation_left_edu_ts_all_both.png differ diff --git a/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_hist_50.png b/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_hist_50.png new file mode 100644 index 000000000..3908cc48e Binary files /dev/null and b/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_hist_50.png differ diff --git a/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_share_age.png b/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_share_age.png new file mode 100644 index 000000000..42c0493ba Binary files /dev/null and b/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_ts_50.png b/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_ts_50.png new file mode 100644 index 000000000..14c873a57 Binary files /dev/null and b/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_ts_50.png differ diff --git a/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_ts_50_both_edu.png b/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_ts_50_both_edu.png new file mode 100644 index 000000000..2d92efba7 Binary files /dev/null and b/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_ts_50_both_edu.png differ diff --git a/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_ts_50_both_income.png b/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_ts_50_both_income.png new file mode 100644 index 000000000..b9162017f Binary files /dev/null and b/validation/01_estimate_validation/graphs/retirement/int_validation_R1a_retirement_single_ts_50_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_hist_50.png b/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_hist_50.png new file mode 100644 index 000000000..996e4ef93 Binary files /dev/null and b/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_hist_50.png differ diff --git a/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_share_age.png b/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_share_age.png new file mode 100644 index 000000000..fe936a20a Binary files /dev/null and b/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_share_age.png differ diff --git a/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_ts_50.png b/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_ts_50.png new file mode 100644 index 000000000..3c61c0327 Binary files /dev/null and b/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_ts_50.png differ diff --git a/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_ts_50_both_edu.png b/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_ts_50_both_edu.png new file mode 100644 index 000000000..44958947d Binary files /dev/null and b/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_ts_50_both_edu.png differ diff --git a/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_ts_50_both_income.png b/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_ts_50_both_income.png new file mode 100644 index 000000000..3a2d8f54a Binary files /dev/null and b/validation/01_estimate_validation/graphs/retirement/int_validation_R1b_retirement_partnered_ts_50_both_income.png differ diff --git a/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_f_npw.png b/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_f_npw.png new file mode 100644 index 000000000..fdce7406b Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_f_npw.png differ diff --git a/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_f_pw.png b/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_f_pw.png new file mode 100644 index 000000000..bc80eab39 Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_f_pw.png differ diff --git a/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_m_npw.png b/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_m_npw.png new file mode 100644 index 000000000..133bb78ef Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_m_npw.png differ diff --git a/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_m_pw.png b/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_m_pw.png new file mode 100644 index 000000000..cc6cd92ed Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/int_validation_wages_hist_m_pw.png differ diff --git a/validation/01_estimate_validation/graphs/wages/level_NWM.png b/validation/01_estimate_validation/graphs/wages/level_NWM.png new file mode 100644 index 000000000..3a26c0088 Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/level_NWM.png differ diff --git a/validation/01_estimate_validation/graphs/wages/level_NWW.png b/validation/01_estimate_validation/graphs/wages/level_NWW.png new file mode 100644 index 000000000..34ca3591b Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/level_NWW.png differ diff --git a/validation/01_estimate_validation/graphs/wages/level_WM.png b/validation/01_estimate_validation/graphs/wages/level_WM.png new file mode 100644 index 000000000..7b74ba884 Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/level_WM.png differ diff --git a/validation/01_estimate_validation/graphs/wages/level_WW.png b/validation/01_estimate_validation/graphs/wages/level_WW.png new file mode 100644 index 000000000..c305d7e10 Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/level_WW.png differ diff --git a/validation/01_estimate_validation/graphs/wages/log_NWM.png b/validation/01_estimate_validation/graphs/wages/log_NWM.png new file mode 100644 index 000000000..ec524c946 Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/log_NWM.png differ diff --git a/validation/01_estimate_validation/graphs/wages/log_NWW.png b/validation/01_estimate_validation/graphs/wages/log_NWW.png new file mode 100644 index 000000000..64d05b685 Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/log_NWW.png differ diff --git a/validation/01_estimate_validation/graphs/wages/log_WM.png b/validation/01_estimate_validation/graphs/wages/log_WM.png new file mode 100644 index 000000000..29b2bb9f9 Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/log_WM.png differ diff --git a/validation/01_estimate_validation/graphs/wages/log_WW.png b/validation/01_estimate_validation/graphs/wages/log_WW.png new file mode 100644 index 000000000..8f635ae1e Binary files /dev/null and b/validation/01_estimate_validation/graphs/wages/log_WW.png differ diff --git a/validation/02_simulated_output_validation/.DS_Store b/validation/02_simulated_output_validation/.DS_Store new file mode 100644 index 000000000..186b37e4c Binary files /dev/null and b/validation/02_simulated_output_validation/.DS_Store differ diff --git a/validation/do_files/00_master.do b/validation/02_simulated_output_validation/do_files/00_master.do similarity index 100% rename from validation/do_files/00_master.do rename to validation/02_simulated_output_validation/do_files/00_master.do diff --git a/validation/do_files/01_prepare_simulated_data.do b/validation/02_simulated_output_validation/do_files/01_prepare_simulated_data.do similarity index 100% rename from validation/do_files/01_prepare_simulated_data.do rename to validation/02_simulated_output_validation/do_files/01_prepare_simulated_data.do diff --git a/validation/do_files/02_create_simulated_variables.do b/validation/02_simulated_output_validation/do_files/02_create_simulated_variables.do similarity index 100% rename from validation/do_files/02_create_simulated_variables.do rename to validation/02_simulated_output_validation/do_files/02_create_simulated_variables.do diff --git a/validation/do_files/03_prepare_UKHLS_data.do b/validation/02_simulated_output_validation/do_files/03_prepare_UKHLS_data.do similarity index 100% rename from validation/do_files/03_prepare_UKHLS_data.do rename to validation/02_simulated_output_validation/do_files/03_prepare_UKHLS_data.do diff --git a/validation/do_files/05_create_UKHLS_validation_targets.do b/validation/02_simulated_output_validation/do_files/05_create_UKHLS_validation_targets.do similarity index 100% rename from validation/do_files/05_create_UKHLS_validation_targets.do rename to validation/02_simulated_output_validation/do_files/05_create_UKHLS_validation_targets.do diff --git a/validation/do_files/06_01_plot_activity_status.do b/validation/02_simulated_output_validation/do_files/06_01_plot_activity_status.do similarity index 100% rename from validation/do_files/06_01_plot_activity_status.do rename to validation/02_simulated_output_validation/do_files/06_01_plot_activity_status.do diff --git a/validation/do_files/06_02_plot_education_level.do b/validation/02_simulated_output_validation/do_files/06_02_plot_education_level.do similarity index 100% rename from validation/do_files/06_02_plot_education_level.do rename to validation/02_simulated_output_validation/do_files/06_02_plot_education_level.do diff --git a/validation/do_files/06_03_plot_gross_income.do b/validation/02_simulated_output_validation/do_files/06_03_plot_gross_income.do similarity index 100% rename from validation/do_files/06_03_plot_gross_income.do rename to validation/02_simulated_output_validation/do_files/06_03_plot_gross_income.do diff --git a/validation/do_files/06_04_plot_gross_labour_income.do b/validation/02_simulated_output_validation/do_files/06_04_plot_gross_labour_income.do similarity index 100% rename from validation/do_files/06_04_plot_gross_labour_income.do rename to validation/02_simulated_output_validation/do_files/06_04_plot_gross_labour_income.do diff --git a/validation/do_files/06_05_plot_capital_income.do b/validation/02_simulated_output_validation/do_files/06_05_plot_capital_income.do similarity index 100% rename from validation/do_files/06_05_plot_capital_income.do rename to validation/02_simulated_output_validation/do_files/06_05_plot_capital_income.do diff --git a/validation/do_files/06_06_plot_pension_income.do b/validation/02_simulated_output_validation/do_files/06_06_plot_pension_income.do similarity index 100% rename from validation/do_files/06_06_plot_pension_income.do rename to validation/02_simulated_output_validation/do_files/06_06_plot_pension_income.do diff --git a/validation/do_files/06_07_plot_disposable_income.do b/validation/02_simulated_output_validation/do_files/06_07_plot_disposable_income.do similarity index 100% rename from validation/do_files/06_07_plot_disposable_income.do rename to validation/02_simulated_output_validation/do_files/06_07_plot_disposable_income.do diff --git a/validation/do_files/06_08_plot_equivalised_disposable_income.do b/validation/02_simulated_output_validation/do_files/06_08_plot_equivalised_disposable_income.do similarity index 100% rename from validation/do_files/06_08_plot_equivalised_disposable_income.do rename to validation/02_simulated_output_validation/do_files/06_08_plot_equivalised_disposable_income.do diff --git a/validation/do_files/06_09_plot_hourly_wages.do b/validation/02_simulated_output_validation/do_files/06_09_plot_hourly_wages.do similarity index 100% rename from validation/do_files/06_09_plot_hourly_wages.do rename to validation/02_simulated_output_validation/do_files/06_09_plot_hourly_wages.do diff --git a/validation/do_files/06_10_plot_hours_worked.do b/validation/02_simulated_output_validation/do_files/06_10_plot_hours_worked.do similarity index 100% rename from validation/do_files/06_10_plot_hours_worked.do rename to validation/02_simulated_output_validation/do_files/06_10_plot_hours_worked.do diff --git a/validation/do_files/06_11_plot_income_shares.do b/validation/02_simulated_output_validation/do_files/06_11_plot_income_shares.do similarity index 100% rename from validation/do_files/06_11_plot_income_shares.do rename to validation/02_simulated_output_validation/do_files/06_11_plot_income_shares.do diff --git a/validation/do_files/06_12_plot_partnership_status.do b/validation/02_simulated_output_validation/do_files/06_12_plot_partnership_status.do similarity index 100% rename from validation/do_files/06_12_plot_partnership_status.do rename to validation/02_simulated_output_validation/do_files/06_12_plot_partnership_status.do diff --git a/validation/do_files/06_13_plot_health.do b/validation/02_simulated_output_validation/do_files/06_13_plot_health.do similarity index 100% rename from validation/do_files/06_13_plot_health.do rename to validation/02_simulated_output_validation/do_files/06_13_plot_health.do diff --git a/validation/do_files/06_14_plot_at_risk_of_poverty.do b/validation/02_simulated_output_validation/do_files/06_14_plot_at_risk_of_poverty.do similarity index 100% rename from validation/do_files/06_14_plot_at_risk_of_poverty.do rename to validation/02_simulated_output_validation/do_files/06_14_plot_at_risk_of_poverty.do diff --git a/validation/do_files/06_15_plot_inequality.do b/validation/02_simulated_output_validation/do_files/06_15_plot_inequality.do similarity index 100% rename from validation/do_files/06_15_plot_inequality.do rename to validation/02_simulated_output_validation/do_files/06_15_plot_inequality.do diff --git a/validation/do_files/06_16_plot_number_children.do b/validation/02_simulated_output_validation/do_files/06_16_plot_number_children.do similarity index 100% rename from validation/do_files/06_16_plot_number_children.do rename to validation/02_simulated_output_validation/do_files/06_16_plot_number_children.do diff --git a/validation/do_files/06_17_plot_disability.do b/validation/02_simulated_output_validation/do_files/06_17_plot_disability.do similarity index 100% rename from validation/do_files/06_17_plot_disability.do rename to validation/02_simulated_output_validation/do_files/06_17_plot_disability.do diff --git a/validation/do_files/06_18_plot_social_care.do b/validation/02_simulated_output_validation/do_files/06_18_plot_social_care.do similarity index 100% rename from validation/do_files/06_18_plot_social_care.do rename to validation/02_simulated_output_validation/do_files/06_18_plot_social_care.do diff --git a/validation/do_files/07_01_correlations.do b/validation/02_simulated_output_validation/do_files/07_01_correlations.do similarity index 100% rename from validation/do_files/07_01_correlations.do rename to validation/02_simulated_output_validation/do_files/07_01_correlations.do diff --git a/validation/02_simulated_output_validation/graphs/.DS_Store b/validation/02_simulated_output_validation/graphs/.DS_Store new file mode 100644 index 000000000..80c312e8a Binary files /dev/null and b/validation/02_simulated_output_validation/graphs/.DS_Store differ diff --git a/validation/02_simulated_output_validation/graphs/20250909_run/.DS_Store b/validation/02_simulated_output_validation/graphs/20250909_run/.DS_Store new file mode 100644 index 000000000..b226b12b1 Binary files /dev/null and b/validation/02_simulated_output_validation/graphs/20250909_run/.DS_Store differ diff --git a/validation/graphs/README b/validation/02_simulated_output_validation/graphs/20250909_run/00_README similarity index 100% rename from validation/graphs/README rename to validation/02_simulated_output_validation/graphs/20250909_run/00_README diff --git a/validation/graphs/children/validation_UK_children_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/children/validation_UK_children_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/children/validation_UK_children_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/children/validation_UK_children_ts_18_65_both.jpg diff --git a/validation/graphs/children/validation_UK_young_child_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/children/validation_UK_young_child_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/children/validation_UK_young_child_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/children/validation_UK_young_child_ts_18_65_both.jpg diff --git a/validation/graphs/disability/validation_UK_disability_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/disability/validation_UK_disability_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/disability/validation_UK_disability_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/disability/validation_UK_disability_ts_18_65_both.jpg diff --git a/validation/graphs/disability/validation_UK_disability_ts_18_65_male_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/disability/validation_UK_disability_ts_18_65_male_female.jpg similarity index 100% rename from validation/graphs/disability/validation_UK_disability_ts_18_65_male_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/disability/validation_UK_disability_ts_18_65_male_female.jpg diff --git a/validation/graphs/disability/validation_UK_disability_ts_all_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/disability/validation_UK_disability_ts_all_both.jpg similarity index 100% rename from validation/graphs/disability/validation_UK_disability_ts_all_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/disability/validation_UK_disability_ts_all_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_60_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_60_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_60_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_60_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_prev_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_prev_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_prev_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_prev_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_single.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_single.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_single.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_both_single.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female_prev_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female_prev_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female_prev_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_female_prev_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_prev_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_prev_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_prev_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_prev_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_single.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_single.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_single.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17_65_male_single.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_male.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_17plus_male.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_all_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_all_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_all_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_all_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_all_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_all_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_all_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_all_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_all_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_all_male.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_not_employed_ts_all_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_not_employed_ts_all_male.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_note_employed_ts_17_65_female_single.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_note_employed_ts_17_65_female_single.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_note_employed_ts_17_65_female_single.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_note_employed_ts_17_65_female_single.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_30_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_30_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_30_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_30_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_30_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_30_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_30_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_30_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_30_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_30_male.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_30_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_30_male.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_60_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_60_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_60_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_60_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_both_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_both_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_both_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_both_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_both_prev_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_both_prev_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_both_prev_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_both_prev_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_both_single.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_both_single.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_both_single.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_both_single.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_both_single_com.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_both_single_com.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_both_single_com.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_both_single_com.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_female_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_female_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_female_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_female_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_female_prev_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_female_prev_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_female_prev_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_female_prev_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_female_single.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_female_single.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_female_single.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_female_single.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_female_single_com.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_female_single_com.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_female_single_com.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_female_single_com.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_male.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_male.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_male_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_male_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_male_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_male_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_male_prev_partnered.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_male_prev_partnered.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_male_prev_partnered.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_male_prev_partnered.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_male_single.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_male_single.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_male_single.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_male_single.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_male_single_com.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_male_single_com.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17_65_male_single_com.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17_65_male_single_com.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17plus_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17plus_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17plus_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17plus_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17plus_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17plus_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17plus_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17plus_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_17plus_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17plus_male.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_17plus_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_17plus_male.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_all_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_all_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_all_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_all_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_all_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_all_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_all_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_all_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_activity_status_ts_all_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_all_male.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_activity_status_ts_all_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_activity_status_ts_all_male.jpg diff --git a/validation/graphs/economic_activity/validation_UK_employed_ts_17_60_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17_60_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_employed_ts_17_60_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17_60_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_employed_ts_17_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17_65_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_employed_ts_17_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17_65_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_employed_ts_17_65_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17_65_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_employed_ts_17_65_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17_65_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_employed_ts_17_65_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17_65_male.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_employed_ts_17_65_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17_65_male.jpg diff --git a/validation/graphs/economic_activity/validation_UK_employed_ts_17plus_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17plus_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_employed_ts_17plus_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17plus_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_employed_ts_17plus_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17plus_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_employed_ts_17plus_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17plus_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_employed_ts_17plus_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17plus_male.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_employed_ts_17plus_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_17plus_male.jpg diff --git a/validation/graphs/economic_activity/validation_UK_employed_ts_all_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_all_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_employed_ts_all_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_all_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_employed_ts_all_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_all_female.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_employed_ts_all_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_all_female.jpg diff --git a/validation/graphs/economic_activity/validation_UK_employed_ts_all_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_all_male.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_employed_ts_all_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_employed_ts_all_male.jpg diff --git a/validation/graphs/economic_activity/validation_UK_students_ts_15_29_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_students_ts_15_29_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_students_ts_15_29_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_students_ts_15_29_both.jpg diff --git a/validation/graphs/economic_activity/validation_UK_students_ts_all_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_students_ts_all_both.jpg similarity index 100% rename from validation/graphs/economic_activity/validation_UK_students_ts_all_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/economic_activity/validation_UK_students_ts_all_both.jpg diff --git a/validation/graphs/education/validation_UK_education_ts_17_30_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_30_both.jpg similarity index 100% rename from validation/graphs/education/validation_UK_education_ts_17_30_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_30_both.jpg diff --git a/validation/graphs/education/validation_UK_education_ts_17_30_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_30_female.jpg similarity index 100% rename from validation/graphs/education/validation_UK_education_ts_17_30_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_30_female.jpg diff --git a/validation/graphs/education/validation_UK_education_ts_17_30_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_30_male.jpg similarity index 100% rename from validation/graphs/education/validation_UK_education_ts_17_30_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_30_male.jpg diff --git a/validation/graphs/education/validation_UK_education_ts_17_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_65_both.jpg similarity index 100% rename from validation/graphs/education/validation_UK_education_ts_17_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_65_both.jpg diff --git a/validation/graphs/education/validation_UK_education_ts_17_65_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_65_female.jpg similarity index 100% rename from validation/graphs/education/validation_UK_education_ts_17_65_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_65_female.jpg diff --git a/validation/graphs/education/validation_UK_education_ts_17_65_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_65_male.jpg similarity index 100% rename from validation/graphs/education/validation_UK_education_ts_17_65_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_17_65_male.jpg diff --git a/validation/graphs/education/validation_UK_education_ts_66_70_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_66_70_both.jpg similarity index 100% rename from validation/graphs/education/validation_UK_education_ts_66_70_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_education_ts_66_70_both.jpg diff --git a/validation/graphs/education/validation_UK_leave_education_ts_17_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_leave_education_ts_17_65_both.jpg similarity index 100% rename from validation/graphs/education/validation_UK_leave_education_ts_17_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/education/validation_UK_leave_education_ts_17_65_both.jpg diff --git a/validation/graphs/health/validation_UK_mcs_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_mcs_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/health/validation_UK_mcs_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_mcs_ts_18_65_both.jpg diff --git a/validation/graphs/health/validation_UK_mcs_ts_18_65_gender.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_mcs_ts_18_65_gender.jpg similarity index 100% rename from validation/graphs/health/validation_UK_mcs_ts_18_65_gender.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_mcs_ts_18_65_gender.jpg diff --git a/validation/graphs/health/validation_UK_mcs_ts_all_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_mcs_ts_all_female.jpg similarity index 100% rename from validation/graphs/health/validation_UK_mcs_ts_all_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_mcs_ts_all_female.jpg diff --git a/validation/graphs/health/validation_UK_mcs_ts_all_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_mcs_ts_all_male.jpg similarity index 100% rename from validation/graphs/health/validation_UK_mcs_ts_all_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_mcs_ts_all_male.jpg diff --git a/validation/graphs/health/validation_UK_pcs_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_pcs_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/health/validation_UK_pcs_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_pcs_ts_18_65_both.jpg diff --git a/validation/graphs/health/validation_UK_pcs_ts_18_65_gender.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_pcs_ts_18_65_gender.jpg similarity index 100% rename from validation/graphs/health/validation_UK_pcs_ts_18_65_gender.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_pcs_ts_18_65_gender.jpg diff --git a/validation/graphs/health/validation_UK_pcs_ts_all_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_pcs_ts_all_female.jpg similarity index 100% rename from validation/graphs/health/validation_UK_pcs_ts_all_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_pcs_ts_all_female.jpg diff --git a/validation/graphs/health/validation_UK_pcs_ts_all_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_pcs_ts_all_male.jpg similarity index 100% rename from validation/graphs/health/validation_UK_pcs_ts_all_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_pcs_ts_all_male.jpg diff --git a/validation/graphs/health/validation_UK_sf1_hist_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_hist_18_65_both.jpg similarity index 100% rename from validation/graphs/health/validation_UK_sf1_hist_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_hist_18_65_both.jpg diff --git a/validation/graphs/health/validation_UK_sf1_hist_18_65_gender.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_hist_18_65_gender.jpg similarity index 100% rename from validation/graphs/health/validation_UK_sf1_hist_18_65_gender.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_hist_18_65_gender.jpg diff --git a/validation/graphs/health/validation_UK_sf1_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/health/validation_UK_sf1_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_ts_18_65_both.jpg diff --git a/validation/graphs/health/validation_UK_sf1_ts_18_65_gender.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_ts_18_65_gender.jpg similarity index 100% rename from validation/graphs/health/validation_UK_sf1_ts_18_65_gender.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_ts_18_65_gender.jpg diff --git a/validation/graphs/health/validation_UK_sf1_ts_all_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_ts_all_female.jpg similarity index 100% rename from validation/graphs/health/validation_UK_sf1_ts_all_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_ts_all_female.jpg diff --git a/validation/graphs/health/validation_UK_sf1_ts_all_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_ts_all_male.jpg similarity index 100% rename from validation/graphs/health/validation_UK_sf1_ts_all_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/health/validation_UK_sf1_ts_all_male.jpg diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2011.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2011.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2011.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2011.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2011_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2011_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2011_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2011_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2011_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2011_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2011_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2011_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2011_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2011_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2011_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2011_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2012.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2012.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2012.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2012.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2012_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2012_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2012_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2012_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2012_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2012_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2012_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2012_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2012_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2012_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2012_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2012_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2013.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2013.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2013.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2013.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2013_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2013_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2013_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2013_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2013_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2013_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2013_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2013_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2013_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2013_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2013_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2013_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2014.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2014.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2014.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2014.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2014_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2014_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2014_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2014_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2014_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2014_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2014_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2014_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2014_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2014_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2014_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2014_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2015.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2015.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2015.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2015.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2015_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2015_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2015_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2015_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2015_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2015_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2015_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2015_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2015_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2015_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2015_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2015_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2016.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2016.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2016.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2016.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2016_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2016_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2016_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2016_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2016_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2016_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2016_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2016_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2016_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2016_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2016_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2016_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2017.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2017.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2017.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2017.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2017_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2017_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2017_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2017_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2017_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2017_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2017_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2017_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2017_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2017_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2017_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2017_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2018.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2018.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2018.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2018.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2018_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2018_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2018_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2018_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2018_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2018_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2018_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2018_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2018_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2018_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2018_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2018_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2019.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2019.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2019.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2019.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2019_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2019_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2019_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2019_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2019_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2019_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2019_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2019_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2019_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2019_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2019_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2019_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2020.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2020.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2020.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2020.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2020_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2020_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2020_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2020_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2020_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2020_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2020_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2020_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2020_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2020_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2020_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2020_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2021.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2021.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2021.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2021.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2021_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2021_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2021_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2021_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2021_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2021_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2021_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2021_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2021_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2021_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2021_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2021_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2022.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2022.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2022.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2022.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2022_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2022_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2022_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2022_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2022_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2022_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2022_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2022_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2022_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2022_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2022_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2022_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2023.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2023.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2023.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2023.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2023_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2023_female.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2023_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2023_female.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2023_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2023_male.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2023_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2023_male.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_hist_2023_unrestricted.png b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2023_unrestricted.png similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_hist_2023_unrestricted.png rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_hist_2023_unrestricted.png diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_ts_18_65_both.jpg diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_ts_18_65_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_ts_18_65_female.jpg similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_ts_18_65_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_ts_18_65_female.jpg diff --git a/validation/graphs/hours_worked/validation_UK_hours_worked_ts_18_65_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_ts_18_65_male.jpg similarity index 100% rename from validation/graphs/hours_worked/validation_UK_hours_worked_ts_18_65_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/hours_worked/validation_UK_hours_worked_ts_18_65_male.jpg diff --git a/validation/02_simulated_output_validation/graphs/20250909_run/income/.DS_Store b/validation/02_simulated_output_validation/graphs/20250909_run/income/.DS_Store new file mode 100644 index 000000000..26fa95923 Binary files /dev/null and b/validation/02_simulated_output_validation/graphs/20250909_run/income/.DS_Store differ diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2011.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2011.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2011.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2011.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2012.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2012.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2012.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2012.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2013.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2013.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2013.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2013.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2014.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2014.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2014.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2014.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2015.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2015.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2015.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2015.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2016.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2016.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2016.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2016.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2017.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2017.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2017.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2017.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2018.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2018.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2018.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2018.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2019.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2019.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2019.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2019.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2020.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2020.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2020.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2020.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2021.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2021.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2021.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2021.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2022.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2022.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2022.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2022.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_dist_2023.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2023.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_dist_2023.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_dist_2023.png diff --git a/validation/graphs/income/capital_income/validation_UK_capital_income_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_capital_income_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_capital_income_ts_18_65_both.jpg diff --git a/validation/graphs/income/capital_income/validation_UK_no_capital_income_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_no_capital_income_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_no_capital_income_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_no_capital_income_ts_18_65_both.jpg diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2011.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2011.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2011.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2011.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2012.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2012.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2012.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2012.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2013.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2013.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2013.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2013.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2014.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2014.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2014.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2014.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2015.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2015.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2015.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2015.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2016.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2016.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2016.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2016.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2017.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2017.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2017.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2017.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2018.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2018.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2018.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2018.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2019.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2019.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2019.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2019.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2020.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2020.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2020.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2020.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2021.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2021.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2021.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2021.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2022.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2022.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2022.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2022.png diff --git a/validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2023.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2023.png similarity index 100% rename from validation/graphs/income/capital_income/validation_UK_positive_capital_income_dist_2023.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/capital_income/validation_UK_positive_capital_income_dist_2023.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2011.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2011.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2011.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2011.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2012.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2012.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2012.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2012.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2013.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2013.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2013.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2013.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2014.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2014.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2014.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2014.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2015.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2015.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2015.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2015.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2016.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2016.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2016.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2016.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2017.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2017.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2017.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2017.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2018.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2018.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2018.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2018.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2019.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2019.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2019.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2019.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2020.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2020.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2020.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2020.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2021.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2021.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2021.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2021.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2022.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2022.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2022.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2022.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2023.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2023.png similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_dist_2023.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_dist_2023.png diff --git a/validation/graphs/income/disposable_income/validation_UK_disposable_income_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/income/disposable_income/validation_UK_disposable_income_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/income/disposable_income/validation_UK_disposable_income_ts_18_65_both.jpg diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2011.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2011.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2011.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2011.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2012.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2012.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2012.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2012.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2013.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2013.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2013.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2013.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2014.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2014.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2014.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2014.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2015.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2015.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2015.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2015.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2016.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2016.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2016.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2016.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2017.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2017.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2017.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2017.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2018.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2018.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2018.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2018.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2019.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2019.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2019.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2019.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2020.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2020.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2020.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2020.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2021.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2021.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2021.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2021.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2022.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2022.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2022.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2022.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2023.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2023.png similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2023.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_inc_dist_2023.png diff --git a/validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_income_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_income_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/income/equivalised_disposable_income/validation_UK_equivalised_disposable_income_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/income/equivalised_disposable_income/validation_UK_equivalised_disposable_income_ts_18_65_both.jpg diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2011.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2011.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2011.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2011.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2012.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2012.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2012.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2012.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2013.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2013.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2013.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2013.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2014.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2014.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2014.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2014.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2015.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2015.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2015.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2015.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2016.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2016.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2016.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2016.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2017.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2017.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2017.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2017.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2018.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2018.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2018.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2018.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2019.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2019.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2019.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2019.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2020.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2020.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2020.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2020.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2021.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2021.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2021.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2021.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2022.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2022.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2022.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2022.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_dist_2023.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2023.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_dist_2023.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_dist_2023.png diff --git a/validation/graphs/income/gross_income/validation_UK_gross_income_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_gross_income_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_gross_income_ts_18_65_both.jpg diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2011_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2011_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2011_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2011_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2011_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2011_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2011_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2011_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2012_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2012_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2012_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2012_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2012_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2012_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2012_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2012_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2013_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2013_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2013_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2013_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2013_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2013_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2013_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2013_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2014_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2014_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2014_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2014_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2014_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2014_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2014_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2014_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2015_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2015_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2015_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2015_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2015_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2015_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2015_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2015_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2016_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2016_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2016_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2016_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2016_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2016_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2016_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2016_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2017_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2017_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2017_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2017_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2017_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2017_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2017_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2017_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2018_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2018_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2018_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2018_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2018_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2018_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2018_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2018_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2019_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2019_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2019_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2019_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2019_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2019_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2019_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2019_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2020_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2020_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2020_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2020_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2020_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2020_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2020_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2020_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2021_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2021_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2021_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2021_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2021_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2021_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2021_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2021_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2022_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2022_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2022_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2022_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2022_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2022_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2022_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2022_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2023_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2023_female.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2023_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2023_female.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2023_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2023_male.png similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_dist_2023_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_dist_2023_male.png diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_ts_18_65_both.jpg diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_ts_18_65_female.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_ts_18_65_female.jpg similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_ts_18_65_female.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_ts_18_65_female.jpg diff --git a/validation/graphs/income/gross_income/validation_UK_ind_gross_income_ts_18_65_male.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_ts_18_65_male.jpg similarity index 100% rename from validation/graphs/income/gross_income/validation_UK_ind_gross_income_ts_18_65_male.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_income/validation_UK_ind_gross_income_ts_18_65_male.jpg diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2011_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2011_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2011_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2011_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2012_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2012_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2012_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2012_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2013_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2013_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2013_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2013_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2014_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2014_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2014_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2014_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2015_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2015_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2015_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2015_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2016_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2016_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2016_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2016_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2017_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2017_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2017_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2017_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2018_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2018_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2018_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2018_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2019_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2019_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2019_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2019_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2020_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2020_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2020_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2020_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2021_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2021_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2021_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2021_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2022_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2022_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2022_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2022_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2023_both.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2023_both.png similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_dist_2023_both.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_dist_2023_both.png diff --git a/validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_ts_18_65.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_ts_18_65.jpg similarity index 100% rename from validation/graphs/income/gross_labour_income/validation_UK_gross_labour_income_ts_18_65.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/income/gross_labour_income/validation_UK_gross_labour_income_ts_18_65.jpg diff --git a/validation/graphs/income/pension_income/validation_UK_no_pension_income_ts_65plus_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_no_pension_income_ts_65plus_both.jpg similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_no_pension_income_ts_65plus_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_no_pension_income_ts_65plus_both.jpg diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2011.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2011.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2011.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2011.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2012.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2012.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2012.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2012.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2013.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2013.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2013.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2013.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2014.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2014.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2014.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2014.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2015.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2015.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2015.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2015.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2016.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2016.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2016.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2016.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2017.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2017.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2017.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2017.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2018.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2018.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2018.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2018.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2019.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2019.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2019.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2019.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2020.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2020.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2020.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2020.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2021.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2021.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2021.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2021.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2022.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2022.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2022.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2022.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_dist_2023.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2023.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_dist_2023.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_dist_2023.png diff --git a/validation/graphs/income/pension_income/validation_UK_pension_income_ts_65plus_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_ts_65plus_both.jpg similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_pension_income_ts_65plus_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_pension_income_ts_65plus_both.jpg diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2011.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2011.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2011.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2011.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2012.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2012.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2012.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2012.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2013.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2013.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2013.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2013.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2014.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2014.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2014.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2014.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2015.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2015.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2015.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2015.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2016.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2016.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2016.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2016.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2017.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2017.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2017.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2017.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2018.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2018.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2018.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2018.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2019.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2019.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2019.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2019.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2020.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2020.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2020.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2020.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2021.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2021.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2021.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2021.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2022.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2022.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2022.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2022.png diff --git a/validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2023.png b/validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2023.png similarity index 100% rename from validation/graphs/income/pension_income/validation_UK_positive_pension_income_dist_2023.png rename to validation/02_simulated_output_validation/graphs/20250909_run/income/pension_income/validation_UK_positive_pension_income_dist_2023.png diff --git a/validation/graphs/inequality/validation_UK_9010.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/inequality/validation_UK_9010.jpg similarity index 100% rename from validation/graphs/inequality/validation_UK_9010.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/inequality/validation_UK_9010.jpg diff --git a/validation/graphs/inequality/validation_UK_gini.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/inequality/validation_UK_gini.jpg similarity index 100% rename from validation/graphs/inequality/validation_UK_gini.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/inequality/validation_UK_gini.jpg diff --git a/validation/graphs/inequality/validation_UK_p90p10.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/inequality/validation_UK_p90p10.jpg similarity index 100% rename from validation/graphs/inequality/validation_UK_p90p10.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/inequality/validation_UK_p90p10.jpg diff --git a/validation/graphs/inequality/validation_UK_p90p50.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/inequality/validation_UK_p90p50.jpg similarity index 100% rename from validation/graphs/inequality/validation_UK_p90p50.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/inequality/validation_UK_p90p50.jpg diff --git a/validation/graphs/partnership/validation_UK_partnered_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnered_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/partnership/validation_UK_partnered_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnered_ts_18_65_both.jpg diff --git a/validation/graphs/partnership/validation_UK_partnership_children_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnership_children_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/partnership/validation_UK_partnership_children_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnership_children_ts_18_65_both.jpg diff --git a/validation/graphs/partnership/validation_UK_partnership_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnership_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/partnership/validation_UK_partnership_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnership_ts_18_65_both.jpg diff --git a/validation/graphs/partnership/validation_UK_partnership_ts_20_29_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnership_ts_20_29_both.jpg similarity index 100% rename from validation/graphs/partnership/validation_UK_partnership_ts_20_29_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnership_ts_20_29_both.jpg diff --git a/validation/graphs/partnership/validation_UK_partnership_ts_30_39_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnership_ts_30_39_both.jpg similarity index 100% rename from validation/graphs/partnership/validation_UK_partnership_ts_30_39_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnership_ts_30_39_both.jpg diff --git a/validation/graphs/partnership/validation_UK_partnership_ts_40_59_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnership_ts_40_59_both.jpg similarity index 100% rename from validation/graphs/partnership/validation_UK_partnership_ts_40_59_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/partnership/validation_UK_partnership_ts_40_59_both.jpg diff --git a/validation/graphs/poverty/validation_UK_at_risk_of_poverty_18_65.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/poverty/validation_UK_at_risk_of_poverty_18_65.jpg similarity index 100% rename from validation/graphs/poverty/validation_UK_at_risk_of_poverty_18_65.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/poverty/validation_UK_at_risk_of_poverty_18_65.jpg diff --git a/validation/graphs/poverty/validation_UK_at_risk_of_poverty_18plus.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/poverty/validation_UK_at_risk_of_poverty_18plus.jpg similarity index 100% rename from validation/graphs/poverty/validation_UK_at_risk_of_poverty_18plus.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/poverty/validation_UK_at_risk_of_poverty_18plus.jpg diff --git a/validation/graphs/wages/validation_UK_wages_dist_2011.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2011.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2011.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2011.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2011_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2011_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2011_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2011_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2011_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2011_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2011_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2011_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2012.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2012.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2012.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2012.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2012_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2012_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2012_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2012_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2012_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2012_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2012_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2012_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2013.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2013.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2013.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2013.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2013_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2013_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2013_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2013_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2013_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2013_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2013_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2013_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2014.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2014.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2014.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2014.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2014_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2014_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2014_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2014_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2014_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2014_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2014_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2014_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2015.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2015.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2015.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2015.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2015_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2015_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2015_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2015_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2015_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2015_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2015_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2015_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2016.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2016.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2016.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2016.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2016_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2016_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2016_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2016_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2016_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2016_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2016_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2016_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2017.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2017.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2017.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2017.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2017_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2017_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2017_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2017_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2017_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2017_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2017_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2017_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2018.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2018.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2018.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2018.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2018_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2018_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2018_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2018_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2018_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2018_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2018_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2018_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2019.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2019.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2019.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2019.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2019_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2019_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2019_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2019_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2019_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2019_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2019_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2019_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2020.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2020.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2020.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2020.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2020_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2020_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2020_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2020_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2020_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2020_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2020_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2020_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2021.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2021.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2021.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2021.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2021_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2021_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2021_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2021_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2021_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2021_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2021_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2021_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2022.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2022.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2022.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2022.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2022_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2022_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2022_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2022_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2022_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2022_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2022_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2022_male.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2023.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2023.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2023.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2023.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2023_female.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2023_female.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2023_female.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2023_female.png diff --git a/validation/graphs/wages/validation_UK_wages_dist_2023_male.png b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2023_male.png similarity index 100% rename from validation/graphs/wages/validation_UK_wages_dist_2023_male.png rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_dist_2023_male.png diff --git a/validation/graphs/wages/validation_UK_wages_ts_18_65_both.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_ts_18_65_both.jpg similarity index 100% rename from validation/graphs/wages/validation_UK_wages_ts_18_65_both.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_ts_18_65_both.jpg diff --git a/validation/graphs/wages/validation_UK_wages_ts_18_65_gender.jpg b/validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_ts_18_65_gender.jpg similarity index 100% rename from validation/graphs/wages/validation_UK_wages_ts_18_65_gender.jpg rename to validation/02_simulated_output_validation/graphs/20250909_run/wages/validation_UK_wages_ts_18_65_gender.jpg diff --git a/validation/do_files/README b/validation/do_files/README deleted file mode 100644 index 8b1378917..000000000 --- a/validation/do_files/README +++ /dev/null @@ -1 +0,0 @@ -