The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Topics » Biomarkers » Diastolic measure for India DHS 2019-21 (Error in variable sb18d)
Diastolic measure for India DHS 2019-21 [message #24894] Sat, 30 July 2022 18:30 Go to next message
rburga is currently offline  rburga
Messages: 1
Registered: July 2022
Member
Hello,

I just wanted to report an error in the variable sb18d (first diastolic reading). It has a unique value (108) for all individuals. The tabulation looks like this:

first diastolic |
reading | Freq. Percent Cum.
------------------+-----------------------------------
108 | 724,115 100.00 100.00
------------------+-----------------------------------
Total | 724,115 100.00

Best

Re: Diastolic measure for India DHS 2019-21 [message #24904 is a reply to message #24894] Mon, 01 August 2022 12:06 Go to previous messageGo to next message
Bridgette-DHS is currently offline  Bridgette-DHS
Messages: 2587
Registered: February 2013
Senior Member

Following is a response from DHS Research & Data Analysis Director, Tom Pullum:

The variable you are referring to is shb18d (you left out the "h"). It is not quite true that ALL the values are 108, but about 55% are. There are also some implausibly small and large values.

Thanks for noting this. We will look into it.
Re: Diastolic measure for India DHS 2019-21 [message #24919 is a reply to message #24904] Tue, 02 August 2022 16:02 Go to previous messageGo to next message
Bridgette-DHS is currently offline  Bridgette-DHS
Messages: 2587
Registered: February 2013
Senior Member

Following is an update from DHS Research & Data Analysis Director, Tom Pullum:

We have confirmed that the concentration on 108 is due to an error in the construction of the recode file. The values in the raw data file (to which there is not general access), and the analysis in the final report are ok. The error will be corrected in the next version of the recode file.

Thanks again for reporting this.

Re: Diastolic measure for India DHS 2019-21 [message #25139 is a reply to message #24919] Sun, 04 September 2022 07:14 Go to previous messageGo to next message
govind@iips.net is currently offline  govind@iips.net
Messages: 5
Registered: February 2018
Location: Mumbai
Member
Dear All,

Currently, I am trying to match the sample size and prevalence of hypertension in India using the person file of DHS data 2119-21. I have used the following codes but cannot match the prevalence percentage and sample size with the final report of the National Family Health Survey (NFHS) 2019-21 report (tables 12.3.1 and 12.3.2). Please help me to match the prevalence percentage and sample size. The codes are:

gen sys = .
gen dia = .
* if the first measure is given
replace sys = shb18s if inrange(shb18s,20,299) & inrange(shb18d,20,299)
replace dia = shb18d if inrange(shb18s,20,299) & inrange(shb18d,20,299)
* if the second measure is given take it
replace sys = shb25s if inrange(shb25s,20,299) & inrange(shb25d,20,299)
replace dia = shb25d if inrange(shb25s,20,299) & inrange(shb25d,20,299)
* if the third measure is given take the last
replace sys = shb29s if inrange(shb29s,20,299) & inrange(shb29d,20,299)
replace dia = shb29d if inrange(shb29s,20,299) & inrange(shb29d,20,299)
* if all measures are given, then average the last two
replace sys = (shb25s + shb29s)/2 if inrange(shb29s,20,299) & inrange(shb29d,20,299) & inrange(shb25s,20,299) & inrange(shb25d,20,299)
replace dia = (shb25d + shb29d)/2 if inrange(shb29s,20,299) & inrange(shb29d,20,299) & inrange(shb25s,20,299) & inrange(shb25d,20,299)

***********
gen ht=.
replace ht=1 if (sys>139|dia>89| shb21==1) & (sys~=. |dia~=.)
replace ht=0 if ht==. & (sys~=. |dia~=.)


Thanking you.


Govind
Re: Diastolic measure for India DHS 2019-21 [message #25154 is a reply to message #25139] Wed, 07 September 2022 09:46 Go to previous messageGo to next message
Shireen-DHS is currently offline  Shireen-DHS
Messages: 128
Registered: August 2020
Location: USA
Senior Member
Hello,

Using the IAPR7CFL.dta file the following Stata code will get you a close match to the percentage (less than 1 percentage point difference from table) and a match with the denominator. This code has a different way to get the valid measurements than what you used in your code.

Thank you.
Best,
Shireen Assaf
The DHS Program



*Stata code:

gen bp_w=.

*each measurement is valid pair if sys and dia >20 and <299
gen valid3 = 0
replace valid3 = 1 if (shb29s>20 & shb29s<299 & shb29d>20 & shb29d<299)
gen valid2 = 0 if valid3==0
replace valid2 = 1 if (shb25s>20 & shb25s<299 & shb25d>20 & shb25d<299) & valid3==0
gen valid1 = 0 if valid2==0 & valid3==0
replace valid1 = 1 if (shb18s>20 & shb18s<299 & shb18d>20 & shb18d<299) & valid2==0 & valid3==0
* 3 valid measurements
gen validbp = 0
replace validbp =1 if (shb18s>20 & shb18s<299 & shb18d>20 & shb18d<299) ///
& (shb25s>20 & shb25s<299 & shb25d>20 & shb25d<299) ///
& (shb29s>20 & shb29s<299 & shb29d>20 & shb29d<299)
* if 3 valid measurements, take average of last two
gen sys = 0
replace sys = ((shb25s+shb29s)/2) if validbp==1
* if < 3 valid measurements, take last valid measurement
if sys== 0 {
replace sys = shb29s if valid3==1
}
if sys==0{
replace sys = shb25s if valid2==1
}
if sys==0 {
replace sys = shb18s if valid1==1
}
gen dia = 0
replace dia = ((shb25d+shb29d)/2) if validbp==1
* if < 3 valid measurements, take last valid measurement
if dia==0 {
replace dia = shb29d if valid3==1
}
if dia==0{
replace dia = shb25d if valid2==1
}
if dia==0 {
replace dia = shb18d if valid1==1
}


*gen variable to exclude women with no valid bp measurements
gen validany = 0
replace validany = 1 if valid1>0 | valid2>0 | valid3>0

*bp for women - restricted to age 15-49, women,
replace bp_w=0 if validany==1
replace bp_w = 1 if ((sys>=140 | dia>=90) | shb21==1) & validany==1
replace bp_w =. if hv104 !=2
replace bp_w=. if hv105<15 | hv105>95
cap label var bp_w "Women who have hypertension"

gen wt=hv005/1000000

tab bp_w [iw=wt]
tab bp_w if hv105<50 [iw=wt]
Re: Diastolic measure for India DHS 2019-21 [message #25175 is a reply to message #25154] Fri, 09 September 2022 04:41 Go to previous messageGo to next message
govind@iips.net is currently offline  govind@iips.net
Messages: 5
Registered: February 2018
Location: Mumbai
Member
Thanks, Shireen for your kind gesture.
Yes, denominators are matching with the report. however, I just wanted to know whether these differences in the prevalence rate are due to the sampling weight used in the person file.

Thanks.
Govind


Govind
Re: Diastolic measure for India DHS 2019-21 [message #25176 is a reply to message #25175] Fri, 09 September 2022 08:04 Go to previous message
Shireen-DHS is currently offline  Shireen-DHS
Messages: 128
Registered: August 2020
Location: USA
Senior Member
Hello,

The code I provided uses weights, see below:

gen wt=hv005/1000000

tab bp_w [iw=wt]
tab bp_w if hv105<50 [iw=wt]


The difference in the prevalence was less than 1 percentage point and I could not identify the reason. It's not because of the weight.

Thank you.
Best,
Shireen Assaf
Previous Topic: Hypertension
Goto Forum:
  


Current Time: Tue Sep 27 22:47:51 Coordinated Universal Time 2022