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
Telangana State discrepancy in numbers of women with a live birth [message #24276] Mon, 11 April 2022 08:19 Go to next message
EmmaR is currently offline  EmmaR
Messages: 4
Registered: July 2016
Member
I'm conducting an analysis of antenatal care (ANC) in Telangana State using the NFHS-4 (India 2015-16 DHS) individual recode dataset. I've noticed a discrepancy between the state report and dataset in the numbers of women with a live birth in the last five years and numbers of women with a live birth in the last five years who received ANC.

According to the Telangana Final Report (https://dhsprogram.com/pubs/pdf/FR338/FR338.TG.pdf), in Tables 37 and 38 (pages 71-72), here are the numbers for the respective groups:

Total number of women who had a live birth in the five years preceding the survey
Table 37 in the report: 1793
My result: 1785

Total number of women who had a live birth in the five years preceding the survey who received antenatal care
Table 38 in the report: 1744
My result: 1729


I've checked my Stata code with a couple experienced DHS analysts and cannot figure out where the discrepancy lies. Here's a snippet of the Stata code to produce the above numbers:

*** keep Telangana State only
use IAIR74FL.dta
keep if v024==36

*** Birth in last 5 years
recode v208 (0=0 "no") (1/10 = 1 "yes"), g(birthlastfive)
tab birthlastfive, m

*** Any ANC visits
recode m14_1 (0 99 = 0 "None") (1/60 98 = 1 "1+ ANC visit"), g(ancany)
tab ancany, m


Has anyone else encountered this problem? Any guidance on how to match the denominators in the state report would be much appreciated!

Thank you very much,
Emma
Re: Telangana State discrepancy in numbers of women with a live birth [message #25685 is a reply to message #24276] Fri, 25 November 2022 09:08 Go to previous messageGo to next message
diwakar_kishore is currently offline  diwakar_kishore
Messages: 2
Registered: October 2022
Member
Hi, I am interested in this post as well. Can we please get a response for this post? Thanks.
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
Previous Topic: anaemia in children
Next Topic: Inconsistencies between recode number of deaths and birth history
Goto Forum:
  


Current Time: Wed Nov 27 14:20:46 Coordinated Universal Time 2024