The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Countries » India » Telangana State discrepancy in numbers of women with a live birth
Re: Telangana State discrepancy in numbers of women with a live birth [message #25772 is a reply to message #25685] Wed, 07 December 2022 07:14 Go to previous message
Bridgette-DHS is currently offline  Bridgette-DHS
Messages: 3199
Registered: February 2013
Senior Member
Following is a response from Senior DHS staff member, Tom Pullum:


We apologize for the delay in posting a response to the original question, which was submitted on April 11. It was only because of the additional question on November 25 that we realized the initial post had not been answered.

We (the analysis staff at DHS) also are unable to get an exact match, in terms of the n's and the percentages. The Stata program below may help. It is set up to run on any state and either the NFHS-4 or NFHS-5, and is mainly about table 37 in the state reports, with some lines for table 38. I suspect that some of the discrepancies are due to differences between the data file that were used to construct the tables and the data files that are now available. The results are very close for table 37 (n is off by 2), less so for table 38 (n is off by about 20). Checking was only done for Telangana.

* Program to get tables 37-38 in the NFHS-4 and NFHS-5 tables for states

* Check against Tables 37-38 in the NFHS-5 report for Telangana state.

* n for table 37 should be 1793. Cannot confirm this.

* NOTE: must use the state weight, sweight or sv005


*************************************************************

program define make_ANC_tables

* state weight in NFHS-4 is sv005 
* state weight in NFHS-5 is sweight

label list V024
keep if v024==sstate 

if spv=="74" {
keep sv005 v0* b*_01 m2*_1 m44_1 m57*_1
}

if spv=="7D" {
keep sweight v0* b*_01 m2*_1
rename sweight sv005
}

gen b5yrs=0


* The woman's month and year of birth are given, but not the day; use 16

if spv=="74" {
gen age_at_birth=int((mdy(b1_01, 1, b2_01)-mdy(v009, 1, v010))/365.25)
replace b5yrs=1 if v008-b3<60
}

if spv=="7D" {
gen age_at_birth=int((mdy(b1_01, b17_01, b2_01)-mdy(v009, 16, v010))/365.25)
replace b5yrs=1 if b19_01<60
}

label variable b5yrs "Had a birth in the past 5 years"
keep if b5yrs==1

label variable age_at_birth "Age at latest birth in years"

gen age_at_birth_3cats=1
replace age_at_birth_3cats=2 if age_at_birth>=20
replace age_at_birth_3cats=3 if age_at_birth>=35

label define age3 1 "<20" 2 "20-34" 3 "35+"
label values age_at_birth_3cats age3
tab age_at_birth age_at_birth_3cats

gen bord_3cats=1
replace bord_3cats=2 if bord_01>1 
replace bord_3cats=3 if bord_01>3

label define bord3 1 "1" 2 "2-3" 3 "4+"
label values bord_3cats bord3

tab age_at_birth_3cats [iweight=sv005/1000000]
tab bord_3cats [iweight=sv005/1000000]

tab age_at_birth_3cats [iweight=sv005/1000000]
tab bord_3cats [iweight=sv005/1000000]

*gen anc_provider=7 if m2n_1==1 
gen anc_provider=7 if m2n_1==1 | m2n_1==.
replace anc_provider=6 if m2k_1==1
replace anc_provider=5 if m2j_1==1
replace anc_provider=4 if m2i_1==1
replace anc_provider=3 if m2h_1==1
replace anc_provider=3 if m2g_1==1
replace anc_provider=2 if m2b_1==1
replace anc_provider=1 if m2a_1==1

label define anc_provider 1 "Doctor" 2 "Nurse etc." 3 "Health worker" 4 "A/ICDS worker" 5 "ASHA" 6 "Other" 7 "No one"

label values anc_provider anc_provider

* The n is 1791 rather than 1793
* The % "no one" is 0.2% high and the % "Nurse etc." is 0.2% low
tab anc_provider [iweight=sv005/1000000]

local lvars age_at_birth_3cats bord_3cats v025
foreach lv of local lvars {
tab `lv' anc_provider [iweight=sv005/1000000], row
}

label values anc_provider anc_provider

* Table 37
* Tabulations by schooling, religion, case/tribe not included here
local lvars age_at_birth_3cats bord_3cats v025
foreach lv of local lvars {
tab `lv' anc_provider [iweight=sv005/1000000], row
}

local letters e f g h i j k l s

* The categories of source of ANC are not mutually exclusive
gen public=0
foreach ll of local letters {
replace public=1 if m57`ll'_1==1
}

gen private=0
replace private=1 if m57m_1==1 | m57n_1==1 | m57t_1==1

gen public_and_private=0
replace public_and_private=1 if public==1 & private==1 

gen hadcare=0
replace hadcare=1 if public==1 | private==1

* Table 38 (only for the row "where to go if experienced pregnancy 
*   complications, m44_1
tab m44_1
gen where_to_go=100*m44_1

tab v025 if hadcare==1 [iweight=sv005/1000000]

tabstat where_to_go if hadcare==1 [fweight=sv005], statistics(mean) by(v025)
tabstat where_to_go if hadcare==1 [fweight=sv005], statistics(mean) by(public)
tabstat where_to_go if hadcare==1 [fweight=sv005], statistics(mean) by(private)
tabstat where_to_go if hadcare==1 [fweight=sv005], statistics(mean) by(public_and_private)

end

*************************************************************
*************************************************************
*************************************************************
*************************************************************
* Execution begins here

scalar spath="C:\Users\26216\ICF\Analysis - Shared Resources\Data\DHSdata"
local lpath=spath

scalar scid="IA"
local lcid=scid

* specify the survey
scalar spv="74"
*scalar spv="7D"
local lpv=spv

* specify the state
scalar sstate=36


use "`lpath'\\`lcid'IR`lpv'FL.dta", clear
make_ANC_tables
 
Read Message
Read Message
Read Message
Previous Topic: anaemia in children
Next Topic: Inconsistencies between recode number of deaths and birth history
Goto Forum:
  


Current Time: Sun Nov 24 06:18:21 Coordinated Universal Time 2024