The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Topics » Mortality » Maternal Mortality
Re: Maternal Mortality [message #8851 is a reply to message #8552] Sun, 03 January 2016 16:14 Go to previous messageGo to previous message
Trevor-DHS is currently offline  Trevor-DHS
Messages: 789
Registered: January 2013
Senior Member
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


The problem you are having is probably that the 2012 Indonesia survey was an All Women sample while the 2007 Indonesia survey was an Ever-Married Women sample. When analyzing ever-married women samples you need to make assumptions about the never-married women. For example in fertility analysis in surveys using ever-married women samples we assume that never-married women had no children. For maternal mortality where we analyze siblings of respondents we would have to make assumptions about the age and survival status of siblings of never-married women. There are two obvious choices we could make: 1) The simplest - just analyse the siblings of the ever-married women (which is presumably what you have tried), 2) Assume that the distribution of the ages and survival statuses of the siblings of never-married women is the same as that for the ever-married women of the same age, and just apply the all women factors to the siblings data. Unfortunately neither of these assumptions is very good. The first is probably biased as it is excluding siblings of never-married women and never-married women tend to be younger, thus the siblings are biased toward older ages. The second is probably biased as it assumes that ages and survival status of the siblings of never-married women of a certain age is the same as that of ever-married women of the same age, and it seems unlikely that this is true, e.g. less educated women women may marry younger, may have more siblings, and more of them may die at younger ages.

To use the second option using the all women factors, you can just multiply the weight by the all women factor. In other words, replace:
gen wt = v005/1000000

with
gen wt = (v005/1000000)*(awfactt/100)

I tried to reproduce the maternal mortality tables in the report with the second option and I come close to what is shown in the report. When I looked further at our archives I found a re-run version of the tables which I am able to match with the current dataset. I checked for an explanation and do not find one, but it appears that the maternal mortality in the dataset or the maternal mortality tabulation program were modified and the tables in the report do not match what is produced with the current version of the dataset.

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Under five mortality
Next Topic: Effect of Fertility decline on Maternal Mortality
Goto Forum:
  


Current Time: Sat Apr 20 07:36:34 Coordinated Universal Time 2024