The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Data » Dataset use in Stata » Birth order and Antenatal Care NFHS-5 India (Replicating Table 8.3)
Birth order and Antenatal Care NFHS-5 India [message #27893] Wed, 18 October 2023 00:07 Go to next message
Rupon is currently offline  Rupon
Messages: 16
Registered: October 2023
Member
Hi!
I am new to this dataset. I tried to replicate Table 8.3 (Antenatal Care) from NFHS-5, India. I have kept data for midx_1==1. I have recoded the birth order (bord_01) as (1=1) (2/3=2) (4/5=3) (6/max=4). I tried to tabulate birth order with antenatal_care: doctor (m2a_1) for the recent live births. The result however didn't match with report.

It is my request to you to help in in this regard.
Thank you.

Regards
Rupon
Re: Birth order and Antenatal Care NFHS-5 India [message #27898 is a reply to message #27893] Thu, 19 October 2023 08:41 Go to previous messageGo to next message
Bridgette-DHS is currently offline  Bridgette-DHS
Messages: 3115
Registered: February 2013
Senior Member
Following is a response from Senior DHS Staff Member, Tom Pullum:

The Stata lines pasted below will calculate the outcome variable used in NFHS-5 table 8.3. The problem you are having may be with the handling of cases with multiple providers. In such cases, the variable is classified with the most qualified provider, which is the one farthest to the left in the columns of the table. Note that this sequence is a little different from the sequence of the providers in the questionnaire. Because you have already constructed to covariates for this table, you should be able to reproduce the whole table now.

* Antenatal care, NFHS5, table 8.3
* combine m2a to m2n into a single variable, with a higher qualified provider replacing
*   a less qualified provider

* Sequence the providers as in table 8.3

* m2a M2A        prenatal: doctor
* m2b M2B        prenatal: anm/nurse/midwife/lhv
* m2g M2G        prenatal: dai/traditional birth attendant
* m2i M2I        prenatal: anganwadi/icds worker
* m2h M2H        prenatal: community/village health worker
* m2j M2J        prenatal: asha
* m2k M2K        prenatal: other
* m2n M2N        prenatal: no one

* Follow THE REVERSE of this sequence in the construction


use "C:\Users\26216\ICF\Analysis - Shared Resources\Data\DHSdata\IAKR7EFL.DTA", clear

gen wt=v005/1000000

gen provider=8
replace provider=7 if m2k==1
replace provider=6 if m2j==1
replace provider=5 if m2h==1
replace provider=4 if m2i==1
replace provider=3 if m2g==1
replace provider=2 if m2b==1
replace provider=1 if m2a==1

label define type 1 "Doctor" 2 "ANM or nurse or midwife or LHV" 3 "Dai or TBA" 4 "Aganwadi or ICDS worker" 5 "Community or village health worker" 6 "ASHA" 7 "Other" 8 "None"

label values provider type
tab provider if bidx==1 [iweight=wt]

* This matches the percentages and n in the bottom row of table 8.3
Re: Birth order and Antenatal Care NFHS-5 India [message #27904 is a reply to message #27898] Fri, 20 October 2023 12:58 Go to previous messageGo to next message
Rupon is currently offline  Rupon
Messages: 16
Registered: October 2023
Member
Thank you so much for a quick reply. While the results did match for all other variables, for variable 'Birth Order' however it did not. I tried categorizing birth order as in my question. Could you please advise on it? Thank you

Regards
Rupon
Re: Birth order and Antenatal Care NFHS-5 India [message #27905 is a reply to message #27904] Fri, 20 October 2023 13:56 Go to previous messageGo to next message
Bridgette-DHS is currently offline  Bridgette-DHS
Messages: 3115
Registered: February 2013
Senior Member
Following is a response from Senior DHS Staff Member, Tom Pullum:

Yes, that's tricky. In this table (and some others, including the others in chapter 8 of the NFHS-4 and -5 reports), birth order does not distinguish between the children born in the same multiple birth. For example, suppose that a woman has had 4 live births (4 children) but they arrived as two pairs of twins. She would have had only two birth events, for the purposes of these tables. In the following construction, I start with "bord" and then construct a variable "border". I then recode "border" into a variable with categories 1, 2-3, 4-5, and 6+, which is called "birth_order".

* Birth order
* To match birth order in the tables, bord must be modified to include multiple births 
gen border=.
forvalues ll=1/5 {
replace border=`ll' if (bord==`ll' & b0==0) | (bord==`ll'+1 & b0==2) | (bord==`ll'+2 & b0==3)
} 
gen     birth_order=1 if border==1
replace birth_order=2 if border>1
replace birth_order=3 if border>3
replace birth_order=4 if border>5
label variable birth_order "Birth order"
label define birth_order 1 "1" 2 "2-3" 3 "4-5" 4 "6+"
label values birth_order birth_order
tab birth_order [iweight=wt]
drop border

Re: Birth order and Antenatal Care NFHS-5 India [message #27914 is a reply to message #27905] Sat, 21 October 2023 11:39 Go to previous messageGo to next message
Rupon is currently offline  Rupon
Messages: 16
Registered: October 2023
Member
Thank you so much. I tried to run these codes.However, as I had never done 'loops' before, I could not understand the same. Nonetheless, I got some clues from the command and I checked the data. I ran the following codes thereafter. Kindly let me know if these are correct. Results did match with the report (number of live births, for each category of adjusted birth order from KR file)

[code][/*birth order generation, adjusting for twins/triplets*/

/*use KR Children Recode file */

/*variables:
birth_order_bord "birth order number"
b0= "child is twin", 0= single, 1 = 1st of multiple, 2 = 2nd of multiple, 3 = 3rd of multiple
weight = v005/1000000*/


/*generating twin/triplet adjusted birth order variable */
gen birth_order_bord=bord
gen border= birth_order_bord if b0==0
replace border= birth_order_bord if b0==1
replace border= birth_order_bord-1 if b0==2
replace border= birth_order_bord-2 if b0==3
replace border= birth_order_bord-3 if b0==4

/*categorising adjusted birth order */
gen bord_cat =1 if border==1
replace bord_cat=2 if border>1
replace bord_cat = 3 if border>3
replace bord_cat = 4 if border>=6

/*Tabulation */
tab bord_cat[iw=weight] if midx==1 /*most recent birth */
tab bord_cat[iw=weight]]

Thank you
Re: Birth order and Antenatal Care NFHS-5 India [message #27927 is a reply to message #27914] Mon, 23 October 2023 08:53 Go to previous messageGo to next message
Bridgette-DHS is currently offline  Bridgette-DHS
Messages: 3115
Registered: February 2013
Senior Member
Following is a response from Senior DHS Staff Member, Tom Pullum:

Yes, that's tricky. In this table (and some others, including the others in chapter 8 of the NFHS-4 and -5 reports), birth order does not distinguish between the children born in the same multiple birth. For example, suppose that a woman has had 4 live births (4 children) but they arrived as two pairs of twins. She would have had only two birth events, for the purposes of these tables. In the following construction, I start with "bord" and then construct a variable "border". I then recode "border" it into a variable with categories 1, 2-3, 4-5, and 6+, which is called "birth_order".

* Birth order
* To match birth order in the tables, bord must be modified to include multiple births 
gen border=.
forvalues ll=1/5 {
replace border=`ll' if (bord==`ll' & b0==0) | (bord==`ll'+1 & b0==2) | (bord==`ll'+2 & b0==3)
} 
gen     birth_order=1 if border==1
replace birth_order=2 if border>1
replace birth_order=3 if border>3
replace birth_order=4 if border>5
label variable birth_order "Birth order"
label define birth_order 1 "1" 2 "2-3" 3 "4-5" 4 "6+"
label values birth_order birth_order
tab birth_order [iweight=wt]
drop border


Re: Birth order and Antenatal Care NFHS-5 India [message #27929 is a reply to message #27927] Mon, 23 October 2023 10:19 Go to previous message
Bridgette-DHS is currently offline  Bridgette-DHS
Messages: 3115
Registered: February 2013
Senior Member

Following is a response from Senior DHS Staff Member, Tom Pullum:

This looks fine to me. If it matches the report (you say that it does) then it must be ok!
Previous Topic: stunting calculation
Next Topic: GMHS and Weighting
Goto Forum:
  


Current Time: Sat Jul 20 02:06:15 Coordinated Universal Time 2024