The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Countries » Nepal » Nutritional status of women
Nutritional status of women [message #3550] Mon, 05 January 2015 23:57 Go to next message
sohelruhrd is currently offline  sohelruhrd
Messages: 19
Registered: July 2014
Location: Bangladesh
Member

i used the following STATA commands to get the results of nutritional status among women using Nepal DHS 2011 data.

****************************************************
clear all
set more off
use "C:\dhs\Nepal 2011\individual recode\NPIR60FL.DTA", clear
* generate sampling weight
g wgt=v005/1000000

** Currently pregnancy
tab v213
** height/weight measured
tab v447

tab v445 if v447==0
gen bmi=v445/100 if v447==0

gen bmic=1 if bmi<18.5
replace bmic=2 if bmi>=18.5 & bmi<25
replace bmic=3 if bmi>=25 & bmi<30
replace bmic=4 if bmi>=30 & bmi<50
label define bmic 1"Underweight" 2"Normal" 3"Overweight" 4"Obese"
label values bmic bmic

tab bmic if v213==0 & v447==0 [iw=wgt]
****************************************************
however, the result is not same as the NDHS report. i found higher frequency (5851) than that reported in the NDHS report (5800) (page no-183). Can anybody help me to get the exact result as reported in the NDHS 2011 report?
Re: Nutritional status of women [message #3906 is a reply to message #3550] Wed, 04 March 2015 12:33 Go to previous messageGo to next message
Liz-DHS
Messages: 1516
Registered: February 2013
Senior Member
Dear User,
Your message has been forwarded to one of our experts. Will provide an answer as soon as it becomes available.
Thank you!
Re: Nutritional status of women [message #3917 is a reply to message #3550] Fri, 06 March 2015 05:18 Go to previous messageGo to next message
Liz-DHS
Messages: 1516
Registered: February 2013
Senior Member
Dear User,
Here is a response from one of our experts, Dr. Tom Pullum:
Quote:
The main reason you have not matched table 11.10 on page 183 of the Nepal 2011 report is that you did not apply all the restrictions given in the footnote to the table. You need to remove the cases with v438 coded in the 9000's; the women who are pregnant; and the women with a birth in the preceding two months. You missed the third restriction, which requires looking at v008-b3_01. Here, v008 is the cmc of interview and b3_01 is the cmc of the most recent birth. You exclude the case if that difference is 0 or 1. I will put my modification of your code below and then the tabulation that corresponds to the bottom row of table 11.10.


gen bmi=v445/100 
gen bmic=1 if bmi<18.5
replace bmic=2 if bmi>=18.5 & bmi<25
replace bmic=3 if bmi>=25 & bmi<30
replace bmic=4 if bmi>=30 & bmi<50
label define bmic 1"Underweight" 2"Normal" 3"Overweight" 4"Obese"
label values bmic bmic
gen ht_flag=0
replace ht_flag=1 if v438>9000
gen preg_flag=0
replace preg_flag=1 if v213==1
gen months_since_last_birth=v008-b3_01
gen recent_birth_flag=0
replace recent_birth_flag=1 if months_since_last_birth<=1
tab bmic if ht_flag==0 & preg_flag==0 & recent_birth_flag==0 [iweight=v005/1000000]

       bmic |      Freq.     Percent        Cum.
------------+-----------------------------------
Underweight | 1,055.0565       18.19       18.19
     Normal | 3,963.9914       68.35       86.54
Overweight | 650.396456       11.21       97.76
      Obese | 130.142492        2.24      100.00
------------+-----------------------------------
      Total | 5,799.5868      100.00
Re: Nutritional status of women [message #12133 is a reply to message #3917] Fri, 31 March 2017 09:48 Go to previous messageGo to next message
UserUkbasedresearcher is currently offline  UserUkbasedresearcher
Messages: 2
Registered: March 2017
Location: London
Member
Hello,
I am using the code supplied above to get the BMI of women. It worked well in the Bangladesh 2014 DHS data. However, using it for the Tanzania 2015 data I seem to not get results matching the report. I have 11732 observations while the report (on page 249) shows 11.634 observations. I am a little tuck here. Any help would be much appreciated! I have the pasted the code again below.
Thanks,



Chris.

gen bmi=v445/100
gen bmic=1 if bmi<18.5
replace bmic=2 if bmi>=18.5 & bmi<25
replace bmic=3 if bmi>=25 & bmi<30
replace bmic=4 if bmi>=30 & bmi<50
label define bmic 1"Underweight" 2"Normal" 3"Overweight" 4"Obese"
label values bmic bmic
gen ht_flag=0
replace ht_flag=1 if v438>9000
gen preg_flag=0
replace preg_flag=1 if v213==1
gen months_since_last_birth=v008-b3_01
gen recent_birth_flag=0
replace recent_birth_flag=1 if months_since_last_birth<=1
tab bmic if ht_flag==0 & preg_flag==0 & recent_birth_flag==0 [iweight=v005/1000000]
Re: Nutritional status of women [message #12141 is a reply to message #12133] Fri, 31 March 2017 17:35 Go to previous messageGo to next message
Liz-DHS
Messages: 1516
Registered: February 2013
Senior Member
A response from Dr. Tom Pullum:
Quote:

Your Stata code should work. The discrepancy in the number of cases is small and may be due to the difference between de facto and de jure residence (see hv102 and hv103 in the household file, v134 in the IR file). Or it could be the difference between the women who are in the PR file and those who are in the IR file. These numbers may differ slightly. Please look into those possibilities. If you still can't get a match, please tell us.


[Updated on: Fri, 31 March 2017 17:35]

Report message to a moderator

Re: Nutritional status of women [message #14343 is a reply to message #3917] Mon, 26 March 2018 09:58 Go to previous messageGo to next message
Ashmita2018 is currently offline  Ashmita2018
Messages: 2
Registered: March 2018
Location: Nepal
Member
I tried the code shared by Dr. Tom Pullum, but I tried for NDHS 2016. Although most of the variables are same it didn't replicate Table 11.10.1

Is there any specific reason for that ?
Re: Nutritional status of women [message #15641 is a reply to message #14343] Mon, 27 August 2018 12:09 Go to previous messageGo to next message
Liz-DHS
Messages: 1516
Registered: February 2013
Senior Member
Dear User,
Please refer to the following resources:
The Guide to DHS Statistics https:// dhsprogram.com/publications/publication-dhsg1-dhs-questionna ires-and-manuals.cfm,
The Standard Recode Manual https:// dhsprogram.com/publications/publication-DHSG4-DHS-Questionna ires-and-Manuals.cfm,
using Datasets for Analysis https://dhsprogram.com/data/Using-Datasets-for-Analysis.cfm and a series of videos to help
guide you with your analysis https://blog.dhsprogram.com/dhsdataintro/.
The IUPMS website is also a great resource: https://www.idhsdata.org/idhs/ For specific assistance with Stata, please visit
You may also want to search the forum for [url= http://www.cpc.unc.edu/research/tools/data_analysis/statatut orial/][url]
keywords which might help guide your analysis. After reviewing these resources, if you still have a question, please feel free to post
again. Thank you!
Re: Nutritional status of women [message #23318 is a reply to message #3917] Tue, 24 August 2021 05:59 Go to previous messageGo to next message
ChinweAU is currently offline  ChinweAU
Messages: 4
Registered: August 2021
Member
Thank you for this as I applied it to the Nigeria 2018 survey data. However, the figure I got after excluding pregnant women and women with a birth in the preceding 2 months does not match what is on the report (Table 11.12). Is there anything else that I need to do?
Re: Nutritional status of women [message #23325 is a reply to message #23318] Tue, 24 August 2021 10:35 Go to previous messageGo to next message
Shireen-DHS is currently offline  Shireen-DHS
Messages: 140
Registered: August 2020
Location: USA
Senior Member
Hello,

We have standard code for women's nutritional status in our code share library hosted on our Github site: https://github.com/DHSProgram/DHS-Indicators-Stata
Specially you can find the code in Chapter 11. Please read the readme file and main file for each chapter before using any code.

I was able to match the Table 11.12 using this code. For instance, for obesity I use the following code found in our code library in the NT_WM_NUT.do file: https://github.com/DHSProgram/DHS-Indicators-Stata/blob/mast er/Chap11_NT/NT_WM_NUT.do

*Stata code
gen wt=v005/1000000
gen age=b19_01
//Obese
gen nt_wm_obese= inrange(v445,3000,6000) if inrange(v445,1200,6000)
replace nt_wm_obese=. if (v213==1 | age<2)
label var nt_wm_obese "Obese BMI - women"
tab nt_wm_obese [iw=wt]
*****

This gives me 9.9% and 12,728 women as reported in the table.

Best,
Shireen Assaf
The DHS Program


Re: Nutritional status of women [message #23383 is a reply to message #23325] Wed, 01 September 2021 10:04 Go to previous messageGo to next message
ChinweAU is currently offline  ChinweAU
Messages: 4
Registered: August 2021
Member
Hello Shireen,

Thank you so much. I have tried the code and I got the same figures as well.

Now I am trying to clean up the dataset to exclude those that were pregnant and with less than 2 month old birth from my analysis but I am getting 14,867 instead of 12,728.

I used the following code to drop the cases:

//excluding pregnant women and less than 2 months since last birth
drop if (v213==1 | age<2)

summarize bmi

//Dropping outliers
drop if bmi<12.00
drop if bmi>60.00

summarize v438
drop if v438<1300
drop if v438>2200

Please assist me.

Thank you.

Kind regards

Chinwe Uzokwe
Re: Nutritional status of women [message #23385 is a reply to message #23383] Wed, 01 September 2021 14:02 Go to previous messageGo to next message
ChinweAU is currently offline  ChinweAU
Messages: 4
Registered: August 2021
Member

After I dropped the prgnant women and those with less than 2 month old birth, i categorised the BMI variable:

gen bmic=1 if bmi<18.5
replace bmic=2 if bmi>=18.5 & bmi<25
replace bmic=3 if bmi>=25 & bmi<30
replace bmic=4 if bmi>=30 & bmi<60
label define bmic 1"Underweight" 2"Normal" 3"Overweight" 4"Obese"
label values bmic bmic

When I ran the frequency of the categorized BMI, I am getting figures that are different from what is stated on the report. What did I not do right?

tab bmic [iw=wt]


bmic | Freq. Percent Cum.
------------+-----------------------------------
Underweight | 1,670.6812 11.35 11.35
Normal | 8,912.747 60.54 71.89
Overweight | 2,703.0016 18.36 90.25
Obese | 1,436.16 9.75 100.00
------------+-----------------------------------
Total | 14,722.59 100.00

Re: Nutritional status of women [message #23389 is a reply to message #23385] Thu, 02 September 2021 09:29 Go to previous messageGo to next message
Shireen-DHS is currently offline  Shireen-DHS
Messages: 140
Registered: August 2020
Location: USA
Senior Member
Hello,

It's best not to drop cases in this way. You have dropped cases according to bmi and then again for height, but that could drop women still part of the bmi sample. It's better to replace your variables as missing where the values should not apply.

For your categories I use the following code with the Nigeria 2018 survey and match Table 11.12.

Best,
Shireen


gen bmic=.
replace bmic=1 if v445>=1200 & v445<1850
replace bmic=2 if v445>=1850 & v445<2500
replace bmic=3 if v445>=2500 & v445<3000
replace bmic=4 if v445>=3000 & v445<6000
replace bmic=. if (v213==1 | age<2)
label define bmic 1"Underweight" 2"Normal" 3"Overweight" 4"Obese"
label values bmic bmic

gen wt=v005/1000000

ta bmic [iw=wt]
Re: Nutritional status of women [message #23390 is a reply to message #23389] Thu, 02 September 2021 11:10 Go to previous messageGo to next message
ChinweAU is currently offline  ChinweAU
Messages: 4
Registered: August 2021
Member
Thank you so much for your assistance.
Re: Nutritional status of women [message #24701 is a reply to message #23389] Thu, 23 June 2022 15:28 Go to previous messageGo to next message
Varsha is currently offline  Varsha
Messages: 39
Registered: November 2020
Member
I am using the following command to get nutritional status of women:
cap drop BMI
recode v445 (min/1849=0 "Too thin for their height")(1850/2499=1 "Normal")(2500/5999=2 "Overweight or Obese") (else=.), gen (BMI)
lab var BMI "Body Mass Index Women"
preserve
keep if inrange(b19_01, 2, 460) | inlist(v213, 0)
svy: tab BMI v025 , format(%13.4g) col obs ci

But I am getting the correct point estimate using the following code:
gen bmic=.
replace bmic=1 if v445>=1200 & v445<1850
replace bmic=2 if v445>=1850 & v445<2500
replace bmic=3 if v445>=2500 & v445<6000
replace bmic=. if (v213==1 | b19_01<2)
label define bmic 1"Underweight" 2"Normal" 3"Overweight/Obese"
label values bmic bmic
svy: tab bmic v025, format(%13.4g) col obs ci

Why am I getting the difference?
Re: Nutritional status of women [message #24714 is a reply to message #24701] Mon, 27 June 2022 15:23 Go to previous message
Janet-DHS is currently offline  Janet-DHS
Messages: 899
Registered: April 2022
Senior Member
The main difference between the two approaches is that the second one explicitly drops cases that are outside a plausible range from 1200 to 6000. The first one does not drop those cases. Also, I the second approach assigns an NA code (".") to the excluded values, whereas the first approach uses "keep if", which may have worked ok here but is risky because it drops cases and changes the file.

When comparing two alternative recodes, or even when validating one recode, I recommend a cross tabulation that includes NA cases. Here, for example, you can do "tab BMI bmic,m" to see the difference. The second recode (bmic) is correct because it drops cases outside the plausible range.
Previous Topic: DHS 1996, 2001, 2006 village names
Next Topic: Replicating some variables
Goto Forum:
  


Current Time: Mon Dec 9 02:17:36 Coordinated Universal Time 2024