Below I'm giving my code for calculating the numerators and denominators for the maternal mortality rates (not the ratios) for All women samples. This code usually matches the counts given in the reports exactly, however, for Indonesia 2012 the denominators do not match exactly, although the differences are small - I think this is probably because the maternal mortality modules dates and ages were re-imputed since the tabulations for the report were produced. The program below defaults to a 7 year period, but to produce estimates for a five year period, just change the local variable for the period to be 60 (5 years) instead of 84 (7 years): * 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