Home » Topics » Mortality » Still Birth in India DHS-VII (Calculation of Still Birth Rates in India DHS-VII not matching with DHS report.)
Still Birth in India DHS-VII [message #27693] |
Wed, 20 September 2023 15:46 |
Mohammad9981
Messages: 3 Registered: September 2023
|
Member |
|
|
Hello there!
I was calculating the stillbirth rate for the India DHS-VII (2019-21) using the Individual Recode file (IAIR7EFL.DTA). I used the following code for the calculation :
*create weight
gen wt=v005/1000000
*limit the calendar to 60 months before the interview
gen cal = substr(vcal_7, v018, 80)
*check length - this shows calendar has been cut to 60 months (5 years)
gen length = strlen(cal)
*find the last occurrence of each code B=birth, A=abortion, M=miscarriage, S=stillbirth
gen last = .
gen lastb = strpos(cal, "B")
gen lasta = strpos(cal, "A")
gen lastm = strpos(cal, "M")
gen lasts = strpos(cal, "S")
*replace the codes for whichever occurs first in the string (last = most recent in history)
replace last = lastb if (lastb > 0 & lastb < last)
replace last = lasta if (lasta > 0 & lasta < last)
replace last = lastm if (lastm > 0 & lastm < last)
replace last = lasts if (lasts > 0 & lasts < last)
*label the codes with numbers
gen lastcode = substr(cal, last, 1)
gen pregout = .
replace pregout = 1 if strmatch(lastcode,"B")
replace pregout = 2 if strmatch(lastcode,"A")
replace pregout = 3 if strmatch(lastcode,"M")
replace pregout = 4 if strmatch(lastcode,"S")
label var pregout "Last Pregnancy Outcome"
label define pregout 1 "live birth" 2 "abortion" 3 "miscarriage" 4 "stillbirth"
label values pregout pregout
tab pregout [iw=wt]
When i run this code i get an estimate of stillbirths but the value I am getting in the pregout variables are not matching with the DHS final report for the lastest India DHS-VII 2019-21. The report says the estimate of stillbirth is 0.9% and after my calculation using the code above the estimates comes to be 0.68%. Also on my calculation the total number of cases come to be 185445 and in the report the total cases are mentioned as 255,549 for all the pregnancy outcomes.
Kindly help!
Regards,
Mohammad
Kindly help me on what i am doing wrong such that my calculations are not matching with the DHS final report for India
|
|
|
Re: Still Birth in India DHS-VII [message #27698 is a reply to message #27693] |
Thu, 21 September 2023 16:27 |
Janet-DHS
Messages: 880 Registered: April 2022
|
Senior Member |
|
|
Following is a response from DHS staff member, Tom Pullum:
You cannot construct Table 6.15 from vcal_7. The codes M, A, and S in vcal_7 do not stand for miscarriage, abortion, and stillbirth. You have to use s234, which refers only to the outcome of the most recent termination (i.e. live birth that did not end in a live birth). You also use v231, the cmc of that termination, to check that it occurred in the past 60 months and to compare it with the cmc of the most recent live birth, to see whether the most recent pregnancy outcome was a birth or a termination. Here is the Stata code that I would use to get the indicator as it is described in the table title:
tab s234 [iweight=v005/1000000]
gen bmas=s234 if v231>v008-60 & v231<.
replace bmas=0 if b19_01<60 & b3_01>v231
label define bmas 0 "Birth" 1 "Miscarriage" 2 "Abortion" 3 "Stillbirth"
label values bmas bmas
tab bmas [iweight=v005/1000000]
There could be some differences from this, but they should be minor. However, what I would consider "the right way" does not come close to matching the table. In order to get to the n of this table (255,549) it would be necessary to compare with ALL of the births in the past 5 years, not just the most recent one, and to me that does not make any sense.
I have looked into Table 6.15 several times over the past couple of years. All I can say is that the actual construction of the indicator in this table does not match the table title. The table is useless. I would be very interested in whether other users have anything to add.
|
|
|
|
Re: Still Birth in India DHS-VII [message #27730 is a reply to message #27706] |
Wed, 27 September 2023 09:26 |
Janet-DHS
Messages: 880 Registered: April 2022
|
Senior Member |
|
|
Following is a response from DHS staff member, Tom Pullum:
Are you referring to vcal_7, rather than the entire birth history? Not sure why you want to do this, but I'll sketch out how I would do it. I would select some other letter or symbol that does not appear in the calendar, for example "#". Using the regexr function, I would loop through vcal_7, 6 times should be enough, as follows:
forvalues li=1/6 {
regexr(vcal_7,"B","#")
regexr(vcal_7,"TPPPPPP","#######")
}
This will replace the B's with # and replace TPPPPPP (a stillbirth) with #######. You have to repeat 6 times because regexr only changes the first occurrence of the string. But, as I said, I'm not sure what this will accomplish, because vcal_7 does not include miscarriages or abortions.
|
|
|
|
Re: Still Birth in India DHS-VII [message #27837 is a reply to message #27811] |
Mon, 09 October 2023 14:19 |
Janet-DHS
Messages: 880 Registered: April 2022
|
Senior Member |
|
|
Following is a response from DHS staff member, Tom Pullum:
You are probably asking about table 6.15 in the NFHS-5 final report. There have been several forum postings on this table. Many tables in the NFHS-5 report cannot be matched exactly, but this one is in a class of its own. The title of table 6.15 has nothing to do with how it was actually constructed (and I cannot find the original code for its construction).
This survey did not include a pregnancy history and did not include a breakdown of terminations into miscarriages and abortions in the calendar. (Stillbirths can be identified in the calendar as a T preceded by 6+ months of P). The only explicit separation of terminations into miscarriages, abortions, and stillbirths is given with s234, for the most recent pregnancy that did not end in a live birth. Also relevant is v231, the cmc of that termination. That date can be compared with the cmc of the most recent live birth, b3_01. (This is NA for women who have not had any live births.)
The most blatant evidence of a problem is that the n for table 6.15 is given as 255,549. From v208 you can find that 176,877 women had a live birth in the past 5 years. There are 31,495 terminations reported with s234. There is no way to get an n of 255,549 (these frequencies are weighted).
Here are Stata lines that produce what I consider to be the distribution of outcomes that is described in the table title:
* Table 6.15 in the NFHS-5 final report
* Did the most recent pregnancy within the past 5 years end in a birth, miscarriage,
* abortion, or stillbirth?
* b3_01 is the cmc of the latest live birth
* v231 is the cmc of the latest termination (not a live birth)
* s234 is the type of termination (not a live birth)
use "...IAIR7EFL.DTA" , clear
gen wt=v005/1000000
tab s234 [iweight=v005/1000000]
gen bmas=s234 if v231>v008-60 & v231<.
* if there was a more recent live birth in the past five years, replace the termination
* code with 0
replace bmas=0 if b19_01<60 & b3_01>v231
label define bmas 0 "Birth" 1 "Miscarriage" 2 "Abortion" 3 "Stillbirth"
label values bmas bmas
tab bmas [iweight=v005/1000000]
|
|
|
Goto Forum:
Current Time: Wed Nov 13 04:54:23 Coordinated Universal Time 2024
|