/***********************************************************/ /* Summary sample growth */ /***********************************************************/ *pause on pause off capture log close log using "$logdir\frsim_sumsamplegrowth.log", replace * get following rules use "$workdir/frsim_fr_w1_2.dta", clear forvalues w=4(2)$maxsimm1 { local wm1=`w'-1 append using "$workdir/frsim_fr_w`wm1'_`w'.dta" } gen grp=1 append using "$workdir/frsim_fr_w${maxsimm1}_${maxsim}.dta" drop if grp==1 & wave==$maxsimm1 // avoid duplicate of wave 40 drop grp * add attrition preserve use "$workdir/frsim_nr_w1_3.dta", clear forvalues w=6(3)$maxsimm2 { local wm2=`w'-2 append using "$workdir/frsim_nr_w`wm2'_`w'.dta" } gen grp=1 append using "$workdir/frsim_nr_w${maxsimm2}_${maxsim}.dta" drop if grp==1 & wave==$maxsimm2 // avoid duplicate of wave 39 keep pid wave resp save "$workdir/frsim_frnr_1_$maxsim.dta", replace restore merge 1:1 wave pid using "$workdir/frsim_frnr_1_$maxsim.dta" drop _merge save "$workdir/frsim_frnr_1_$maxsim.dta", replace forvalues w=1/$maxsim { display "Loop for wave `w'" * get simulated wave and add following rules and attrition * do wave by wave due to problems processing with full set of waves use "$workdir/frsim_w`w'.dta", clear merge 1:1 wave pid using "$workdir/frsim_frnr_1_$maxsim.dta", keep(master match) drop _merge * calculate enumerated variable bys hid: egen enum=max(resp) // if any one person is responding, all persons in the hh are enumerated foreach fr in soep hilda bhps psid ukhls ukhlsa hildaa { forvalues sampgrp = 1/9 { gen sg`sampgrp'=(outcome==1) if fr_`fr'==`sampgrp' replace sg`sampgrp'=0 if sg`sampgrp'==. } foreach e in 0 1 { preserve collapse (sum) sg1=sg1 sg2=sg2 sg3=sg3 sg4=sg4 sg5=sg5 sg6=sg6 sg7=sg7 sg8=sg8 sg9=sg9 /// if enum>=`e', by(wave) gen enum=`e' gen fr="`fr'" if `w'==1 & "`fr'"=="soep" & `e'==0 { save "$workdir/frsim_sumsample", replace } else { append using "$workdir/frsim_sumsample" save "$workdir/frsim_sumsample", replace } restore } drop sg? } } use "$workdir/frsim_sumsample", clear * need cumulative sum so can plot stacked area graph gen s1=sg1 // osms gen s2=s1+sg2 // plus csm baby gen s3=s2+sg3 // plus csm other parent gen s4=s3+sg4 // plus csm recent arrival gen s5=s4+sg5 // plus csm any (soep) gen s6=s5+sg6 // plus psm gen s7=s6+sg7 // plus active tsm foreach fr in soep hilda bhps psid ukhls ukhlsa hildaa { foreach e in 0 1 { if `e'==0 { local titledesc "Sample size for following rules `fr', full sample" } else if `e'==1 { local titledesc "Sample size for following rules `fr', with attrition" } if "`fr'"=="soep" & `e'==0 { local maxy 4000000 local stepy 1000000 } else if `e'==0 { local maxy 50000 local stepy 10000 } else if "`fr'"=="soep" & `e'==1 { local maxy 650000 local stepy 130000 } else if `e'==1 { local maxy 25000 local stepy 5000 } if "`fr'"=="hilda" { local titledesc hilda1 fr } else if "`fr'"=="hildaa" { local titledesc hilda2 fr } else if "`fr'"=="ukhlsa" { local titledesc ukhls_alt fr } else { local titledesc `fr' fr } display "Graph for fr=`fr', enum=`e', maxy=`maxy', stepy=`stepy'" set scheme s2color // s1manual=plan look in monochrome (smaller), s2color=colour as used in stata manual, sj=stata journal * when include hildaa with csmra graph twoway area s7 s6 s5 s4 s3 s2 s1 wave if fr=="`fr'" & enum==`e', /// ylabel(0(`stepy')`maxy', angle(0) format(%6.0f)) /// xlabel(1(5)$maxsim, angle(0)) /// legend(row(2) order(7 "OSM" 6 "CSMbaby" 5 "CSMop" 4 "CSMra" 3 "CSMall" 2 "PSM" 1 "Active TSM") pos(6) symxsize(*0.75) region(color(white))) /// legend at 6 o'clock position title("`titledesc'") /// xtitle("Wave") /// ytitle("Active sample") /// graphregion(color(white)) plotregion(lcolor(gs4)) /// line around data, background white name(sumsample_`fr'_`e'_incra,replace) * when do not include hildaa graph twoway area s7 s6 s5 s3 s2 s1 wave if fr=="`fr'" & enum==`e', /// ylabel(0(`stepy')`maxy', angle(0) format(%6.0f)) /// xlabel(1(5)$maxsim, angle(0)) /// legend(row(2) order(6 "OSM" 5 "CSMbaby" 4 "CSMop" 3 "CSMall" 2 "PSM" 1 "Active TSM") pos(6) symxsize(*0.75) region(color(white))) /// legend at 6 o'clock position title("`titledesc'") /// xtitle("Wave") /// ytitle("Active sample") /// graphregion(color(white)) plotregion(lcolor(gs4)) /// line around data, background white name(sumsample_`fr'_`e',replace) *pause } } * put graphs into combined image * net install grc1leg.pkg * save default gph * Sample size for different following rules, full sample - including ukhlsa grc1leg sumsample_soep_0 sumsample_hilda_0 sumsample_bhps_0 sumsample_psid_0 sumsample_ukhls_0 /// sumsample_ukhlsa_0, /// legendfrom(sumsample_soep_0) /// graphregion(color(white)) /// saving("$resultsdir\combined_growth_0", replace) graph export "$resultsdir\combined_growth_0.svg", replace width(2000) // scale vector graph * Sample size for different following rules, with attrition - including ukhlsa grc1leg sumsample_soep_1 sumsample_hilda_1 sumsample_bhps_1 sumsample_psid_1 sumsample_ukhls_1 /// sumsample_ukhlsa_1, /// legendfrom(sumsample_soep_1) /// graphregion(color(white)) /// saving("$resultsdir\combined_growth_1", replace) graph export "$resultsdir\combined_growth_1.svg", replace width(2000) // scale vector graph * Sample size for different following rules, full sample - including hildaa grc1leg sumsample_soep_0_incra sumsample_hilda_0_incra sumsample_hildaa_0_incra sumsample_bhps_0_incra /// sumsample_psid_0_incra sumsample_ukhls_0_incra, /// legendfrom(sumsample_soep_0_incra) /// graphregion(color(white)) /// saving("$resultsdir\combined_growth_0_inchildaa", replace) graph export "$resultsdir\combined_growth_0_inchildaa.svg", replace width(2000) // scale vector graph * Sample size for different following rules, with attrition - including hildaa grc1leg sumsample_soep_1_incra sumsample_hilda_1_incra sumsample_hildaa_1_incra sumsample_bhps_1_incra /// sumsample_psid_1_incra sumsample_ukhls_1_incra , /// legendfrom(sumsample_soep_1_incra) /// graphregion(color(white)) /// saving("$resultsdir\combined_growth_1_inchildaa", replace) graph export "$resultsdir\combined_growth_1_inchildaa.svg", replace width(2000) // scale vector graph log close