* Adult and maternal mortality counts - Trevor Croft - April 25, 2015
* This version applied to Indonesia DHS 2012 - Jan 3, 2016
cd "C:\Data\DHS_Stata"
use "IDIR63FL.DTA", clear
* keep only the variables needed
keep caseid v001 v002 v003 v005 v008 v011 v012 v013 awfactt mm* mmc*
* Rename all of the repeating variables to drop the leading 0 to help with reshaping
rename mm*_0* mm*_*
* Reshape the file into a sibling history file
* This will be slow to run and could take several minutes or more.
reshape long mmidx_ mm1_ mm2_ mm3_ mm4_ mm5_ mm6_ mm7_ mm8_ mm9_ mm10_ mm11_ mm12_ mm13_ mm14_ mm15_, i(caseid) j(mmindex)
* Rename to drop the trailing underscore on the end of the reshaped variables
rename mm*_ mm*
* Drop empty entries
drop if mmidx==.
* Check total sisters and brothers - compare total from table 15.1
tab mm1
* Drop siblings without sex or survival status
drop if (mm1 == 8 | mm1 == 9 | mm2 == 8 | mm2 == 9 | mm1 == . | mm2 == .)
* Check counts of sisters and brothers by survival status - compare with living siblings and dead siblings from table 15.1
tab mm2 mm1
* Period to use
* 7 years (84 months) before interview or 5 years (60 months)
local period 60
* Calculate deaths and exposure for each age group. Each woman can contribute to up to 3 different age groups in the past 7 years.
* Calculate upper and lower limits in CMC for inclusion for time period. Exclude month of interview.
gen upplim = v008-1
* replace upper limit with CMC date of death for siblings that died
replace upplim = mm8 if mm2 == 0
* lower limit - 7 years (84 months) before interview or 5 years (60 months)
gen lowlim = v008-`period'
* Total exposure in the time period
gen exposure = upplim-lowlim+1
replace exposure = 0 if exposure < 0
* Oldest age group
gen agegrp1 = int((upplim-mm4)/60)
* Calculate exposure in this age group
gen expo1 = min(exposure,upplim - (mm4 + agegrp1*60) + 1)
* Calculate deaths
gen deaths1 = (mm2==0 & expo1 > 0)
* Calculate remaining exposure time
replace exposure = exposure - expo1
* Middle age group
gen agegrp2 = agegrp1 - 1
* Calculate exposure in this age group
gen expo2 = min(60,exposure)
* Set deaths to 0 - all deaths are in the oldest age group
gen deaths2 = 0
* Calculate remaining exposure time
replace exposure = exposure - expo2
* Youngest age group
gen agegrp3 = agegrp2 - 1
* Calculate exposure in this age group
gen expo3 = min(60,exposure)
* Set deaths to 0 - all deaths are in the oldest age group
gen deaths3 = 0
* Reshape so that there are separate records for each age group with exposure and eaths in those age groups
reshape long agegrp expo deaths, i(caseid mmindex) j(j)
* Only keep the deaths and exposure in age groups 3 (15-19) through 9 (45-49)
keep if agegrp >= 3 & agegrp <= 9
label define agegrp 3 "15-19" 4 "20-24" 5 "25-29" 6 "30-34" 7 "35-39" 8 "40-44" 9 " 45-49"
label values agegrp agegrp
* Sample weight
gen wt = v005/1000000
* Deaths from table 15.3
tab agegrp mm1 [iw=deaths*wt ]
* Exposure from table 15.3 (expo is in months, division by 12 to give years)
tab agegrp mm1 [iw=expo*wt/12]
* Deaths from table 15.4 - restict to maternal deaths
tab agegrp [iw=deaths*wt ] if mm1 == 2 & mm9 >= 2 & mm9 <= 6
* Exposure from table 15.4 (expo is in months, division by 12 to give years) - restrict to women only
tab agegrp [iw=expo*wt/12] if mm1 == 2