Home » Data » Dataset use in Stata » Quetions about calculating stunting rates in Stata
Quetions about calculating stunting rates in Stata [message #261] 
Thu, 04 April 2013 14:33 
DHS user
Messages: 99 Registered: February 2013

Senior Member 


recently I've just got another issue on calculating the stunting rates (WHO reference) in STATA  I can't get the exact number as in DHS reports (my results are about 1 less)...Would you please suggest someone that can help with this?
My way to identify stunted children is like his:
keep if hw70<9996
*number of observations will be the denominator
gen stunting=hw70<200
*number of stunted children will be the numerator
I'm aware that I'm not considering the sample weight here  so that's probably why the number is not right...Would you give me some suggestions on how to do this? Also I wonder did you use hw70<200 or <=200?
I am working with the Bangladesh 2007 children's recode  I got the stunting rate as 41.7% (2210/5300) whereas the number from the DHS STATcompiler is 43.2...
Thanks so much for your help and look forward to hearing from you.



Re: Quetions about calculating stunting rates in Stata [message #262 is a reply to message #261] 
Thu, 04 April 2013 14:35 
BridgetteDHS
Messages: 1730 Registered: February 2013

Senior Member 


Here is a response from one of our DHS Stata experts Tom Pullum, that should answer your questions.
Your problem is that you were using the BR file, but DHS uses the PR file for this and the other child nutrition indicators. The PR file includes hc70 for all children under five in the household. The BR file includes hw70 for children under five in the household whose mother was also in the household and was eligible for the survey of women. This is a subset of the children in the PR file.
If you open the BR file in Stata and copy the following lines into the command window, you will get what you were doing:
* Use the following on the 2007 Bangladesh BR file
* BDBR51FL.dta
codebook hw70
tab hw70 if hw70>9990,m
tab hw70 if hw70>9990,m nolabel
gen HAZ=hw70
replace HAZ=. if HAZ>=9996
histogram HAZ
gen stunted=.
replace stunted=0 if HAZ ~=.
replace stunted=1 if HAZ<200
tab stunted
* 41.70% stunted (2210/5300)
* This number can be confirmed with a regression, no covariate.
* First without weights
regress stunted
* unweighted percent stunted is 41.70%
* Repeat the regression with weights
regress stunted [pweight=v005]
* weighted percent stunted is 42.96%
However, if you open the PR file and copy the following lines into the command window, you will replicate the number in the report and in Stat Compiler:
* Use the following on the 2007 Bangladesh PR file
* BDPR51FL.dta
codebook hc70
tab hc70 if hc70>9990,m
tab hc70 if hc70>9990,m nolabel
gen HAZ=hc70
replace HAZ=. if HAZ>=9996
histogram HAZ
gen stunted=.
replace stunted=0 if HAZ ~=.
replace stunted=1 if HAZ<200
tab stunted
* 41.92% stunted (2320/5535)
* This number can be confirmed with a regression, no covariate.
* First without weights
regress stunted
* unweighted percent stunted is 41.92%
* Repeat the regression with weights
regress stunted [pweight=hv005]
* weighted percent stunted is 43.24%
I am using a trick that you may not be aware of, linear regression without a covariate, to get the means of hw70 and hc70, unweighted or weighted. A command such as "regress y" will given just the intercept, which will be the mean of y. "regress y [pweight=hv005]" will give the weighted mean of y. Here the y variable is binary, so the mean of y is the proportion with y=1, and if multiplied by 100 you get the percentage with y=1
Let me know if you have other questions.
BridgetteDHS





Re: Quetions about calculating stunting rates in Stata [message #18617 is a reply to message #18545] 
Mon, 13 January 2020 09:22 
BridgetteDHS
Messages: 1730 Registered: February 2013

Senior Member 


Following is a response from DHS Senior Analysis & Research Manager, Shireen Assaf:
The Stata code below will match the table shown in the final report. Please use the PR file.
gen wt=hv005/1000000
//Severely stunted
gen nt_ch_sev_stunt= 0 if hv103==1
replace nt_ch_sev_stunt=. if hc70>=9996
replace nt_ch_sev_stunt=1 if hc70<300 & hv103==1
label var nt_ch_sev_stunt "Severely stunted child under 5 years"
//Stunted
gen nt_ch_stunt= 0 if hv103==1
replace nt_ch_stunt=. if hc70>=9996
replace nt_ch_stunt=1 if hc70<200 & hv103==1
label var nt_ch_stunt "Stunted child under 5 years"



Goto Forum:
Current Time: Tue Jan 21 13:51:08 Eastern Standard Time 2020
