Birth order and Antenatal Care NFHS-5 India [message #27893] |
Wed, 18 October 2023 00:07 |
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 #27905 is a reply to message #27904] |
Fri, 20 October 2023 13:56 |
Bridgette-DHS
Messages: 3185 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 |
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 |
Bridgette-DHS
Messages: 3185 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
|
|
|
|