|
Re: Where can I find z-scores? [message #91 is a reply to message #51] |
Thu, 21 February 2013 10:11 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Liz-DHS
Messages: 1516 Registered: February 2013
|
Senior Member |
|
|
Dear User, HC70 to HC73 and HW70 to HW73 were introduced to the recode definition to store the standard deviations of the new WHO child growth definition. Essentially all files using the DHS-5 recode structure have these variables.
[Updated on: Thu, 21 February 2013 10:19] Report message to a moderator
|
|
|
Re: Where can I find z-scores? [message #127 is a reply to message #51] |
Mon, 18 March 2013 16:42 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Reduced-For(u)m
Messages: 292 Registered: March 2013
|
Senior Member |
|
|
If you are a STATA user, there is a new package called "haz06" which you can install that will calculate the WHO standards using the height and age variables, which is particularly convenient when you are using older DHS surveys that only have the old standards. You have to be careful that you are using age and height in the right units (months and cm - I think).
If any of the mods/DHS people know something I don't know about this package, I'd be very happy to hear, but it seems to work pretty well for me, and the new standards are a lot more consistent across age (especially at the over/under 24 month cut) than the old ones, at least for populations with mean HAZ below -1 (like most of the populations the DHS covers).
|
|
|
|
|
|
Re: Where can I find z-scores? [message #232 is a reply to message #188] |
Sat, 30 March 2013 00:14 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Reduced-For(u)m
Messages: 292 Registered: March 2013
|
Senior Member |
|
|
Yeah. The DHS reports the HAZ/WAZ/WHZ as standard deviations * 100, so -2sd is -200 here. I usually convert them back for graphs and figures, just so all the units are comparable to other work.
Just be careful when you are writing your definition that you don't accidentally make the missing values equal to 1 or 0, which can happen in certain environments.
So, in Stata, just to be sure, I would code:
gen stunted = HW70<=-200
replace stunted = . if HW70==.
There are other ways to do that, but that's one example. Also, I'm not technically sure if -2 exactly is stunted or not. It should matter very little, but the question is whether to code "<" or "<=". Someone from DHS know the answer to that?
|
|
|
|
Re: Where can I find z-scores? [message #2546 is a reply to message #127] |
Thu, 10 July 2014 10:01 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
giacomo
Messages: 4 Registered: July 2014
|
Member |
|
|
Reduced-For(u)m wrote on Mon, 18 March 2013 16:42
If you are a STATA user, there is a new package called "haz06" which you can install that will calculate the WHO standards using the height and age variables, which is particularly convenient when you are using older DHS surveys that only have the old standards. You have to be careful that you are using age and height in the right units (months and cm - I think).
Forgive me for contributing to a very old post, but my problem is related to this and in the future others may have the same issue.
I need to construct HAZ scores based on 2006 WHO standards for old rounds of the DHS data. To test the "zscore06" package in STATA I first tried to replicate the HAZ score provided by DHS in a recent dataset (Round V). The results I obtained for some observations are substantially different. I read the help provided with the package and the code (and variables' units) I used should be correct. Has anyone had experience on successfully replicating the HAZ scores with the "zscore06" package?
For your info, this is the code I used in a children dataset:
gen hw2_2 = hw2/10 /// Convert weight in Kg
gen hw3_2 = hw3/10 /// Convert height in cm
zscore06, a(hw1) s(b4) h(hw3_2) w(hw2_2)
gen HAZ = haz06 * 100
list HAZ hw70
Many thanks,
Giacomo
[Updated on: Thu, 10 July 2014 10:41] Report message to a moderator
|
|
|
Re: Where can I find z-scores? [message #2548 is a reply to message #2546] |
Thu, 10 July 2014 13:20 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Trevor-DHS
Messages: 802 Registered: January 2013
|
Senior Member |
|
|
Hi Giacomo,
A couple of notes for you:
1) You don't need to compute the z-scores for older rounds of data. The Z-scores for the older rounds of surveys are available in separate data files that can be downloaded. These are the HW (Height and Weight scores) files, for example for Benin 2001 the file is BJHW41xx.zip (where xx is the type of data file).
2) The reason you are not matching the z-scores in the DHS data is because of the calculation of age used in the computation of the Z-scores. HW1 only gives age rounded off to the month, but in the calculation of the z-scores we compute age to the day, as follows:
* Calculate measurement date in days
gen mdate = mdy(hw18, hw17, hw19)
* Calculate birth date in days
gen bdate = mdy(b1, hw16, b2) if hw16 <= 31
replace bdate = mdy(b1, 15, b2) if hw16 > 31
* Calculate age in months with days expressed as decimals.
gen age = (mdate-bdate)/30.4375
* Compute Z-scores
zscore06, a(age) s(b4) h(hw3_2) w(hw2_2)
Note, though that the zscore06 software does not handle some of the flagging of data that we do, so you will find some differences related to flagged cases and to cases where the data of birth was imputed (where b10 != 1).
I hope this helps.
|
|
|
|
|
Re: Where can I find z-scores? [message #12341 is a reply to message #12340] |
Wed, 03 May 2017 13:15 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Trevor-DHS
Messages: 802 Registered: January 2013
|
Senior Member |
|
|
I'm not sure what exactly you are looking for. We have no additional dofile - we don't use Stata as the standard software for most of our processing. I recommend either using the downloadable datasets we have already produced, or calculating the scores as given earlier.
[Updated on: Wed, 03 May 2017 18:38] Report message to a moderator
|
|
|
Re: Where can I find z-scores? [message #12374 is a reply to message #12341] |
Mon, 08 May 2017 07:07 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Gowokani
Messages: 9 Registered: October 2016 Location: Malawi
|
Member |
|
|
Dear Trevor,
I am trying to calculate the HAZ and WAZ for 1992, 2000, 2006. I understand that you say these can simply be dowloaded in a "seperate file" which is available. Is this downloadable file located where we download the other datasets for a sepcific coutnrty? I cannot fid this. And if so, how is it matched to the individual data for a child/ mother characteristics in the other files/
Gowo
Gowokani Chijere Chirwa
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Where can I find z-scores? [message #18130 is a reply to message #18129] |
Tue, 24 September 2019 14:21 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Trevor-DHS
Messages: 802 Registered: January 2013
|
Senior Member |
|
|
No, the code provided is correct. The first line is if the day of birth was reported (hw16 <= 31), and the second line is used if the day of birth was not reported, i.e. is "don't know" (98) or missing (99), in which case the value of 15 is used as the midpoint of the month.
gen bdate = mdy(b1, hw16, b2) if hw16 <= 31
replace bdate = mdy(b1, 15, b2) if hw16 > 31
[Updated on: Tue, 24 September 2019 14:21] Report message to a moderator
|
|
|
|
|
|
Re: Where can I find z-scores? [message #18139 is a reply to message #51] |
Wed, 25 September 2019 16:44 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Trevor-DHS
Messages: 802 Registered: January 2013
|
Senior Member |
|
|
The code described earlier is a little simplistic and doesn't handle all of the special cases that need to be taken into account. The code below addresses these. The code displays cases where the output of zscore06 and the DHS variables differs, but these should all be flagged cases where DHS has set the variables to a special value.
The following special situations are handled:
1) Setting the weight or height to missing if the child was not weighed or measured
2) Setting the age to missing if either the month or year of birth was not given, but assuming day 15 if only day of birth was not given. Some dates are imputed, but these are not used as they are not accurate measures of age in months (values of b10 > 1)
3) Setting whether the child was measured lying or standing.
4) DHS has used a special rule that if reported as "standing" but age is < 8 month (actually 240 days), this is ignored and the child is assumed to have been lying. Similarly if reported as "lying" but age 3 years or older (>1095 days) the child is assumed to have been standing. Note that this rule is likely to change in future surveys following WHO guidance to ignore "standing" if the child is less than 9 months of age, but permit "lying" for children older than 3 years.
5) zscore06 does not flag cases with implausible values. The code below flags H/A, W/A and W/H based on the zscore06 output variables. zscore06 leaves the implausible zscores in the data, while DHS replaces them with special values.
6) In earlier survey such as Guyana 2009, DHS variables hw70, hw71, or hw72 are all marked as flagged if any of the 3 indicators were flagged in 5) above. This has changed in more recent surveys so that only the individual indicator is marked as flagged.
gen hw2_2 = hw2/10
* set weight to missing if not weighed for any reason
replace hw2_2 = . if hw2 >= 990
gen hw3_2 = hw3/10
* set height to missing if not measured for any reason
replace hw3_2 = . if hw3 >= 9990
* calculate date of measurement and date of birth
gen mdate = mdy(hw18,hw17,hw19)
gen bdate = mdy(b1,hw16,b2) if hw16<=31
replace bdate = mdy(b1,15,b2) if hw16>31
* if month or year of birth not reported, we don't have accurate age
replace bdate = . if b10 > 1
gen age = (mdate-bdate)/30.4375
* lying or standing
gen measure = hw15
replace measure = . if measure == 9
* DHS ignores lying or standing if: "standing" but < 8 months (240 days); or "lying", but >= 36 months (>1095 days)
replace measure = . if measure==2 & age < 8 & age!=.
replace measure = . if measure==1 & age >= 36 & age!=.
* calculate z-scores
zscore06, a(age) s(b4) h(hw3_2) w(hw2_2) measure(measure)
* mark those with different results - these should all be flagged cases
gen dif_ha = (round(haz06*100,1) == hw70) if hw3_2 != .
gen dif_wa = (round(waz06*100,1) == hw71) if hw2_2 != .
gen dif_wh = (round(whz06*100,1) == hw72) if hw2_2 != . & hw3_2 != .
* generate flag variables from the zscore06 variables
gen flag_ha = (haz06 < -6 | haz06 > 6)
gen flag_wa = (waz06 < -6 | waz06 > 5)
gen flag_wh = (whz06 < -5 | whz06 > 5)
* just show the cases with some difference to check
browse b4 b10 hw2_2 hw3_2 hw15 age haz06 waz06 whz06 flag_ha flag_wa flag_wh hw70 hw71 hw72 dif_ha dif_wa dif_wh if dif_ha == 0 | dif_wa == 0 | dif_wh == 0
Note that the code above is for use with the HW series of variables in the KR file. In fact, for most analyses of anthropometric data, DHS uses the PR file and the equivalent HC variables. The difference is that the PR file includes all children in the KR file, plus children who were residents of the household, but whose mother did not live in the household or was not interviewed, whereas the KR file only includes children of interviewed women.
|
|
|
|