Details on the Zscore.Wfl/Wfh functions

Dear all,
I’m currently working on a questionnaire designed to identify severely malnourished children aged 0-59 months old, using the weight-for-height/length z-scores. To do this, I’m using the Zscore.Wfl and Zscore.Wfh functions. To ensure that my Z-scores are accurate and that I am not missing out on any children, I’ve also tested the calculations using Stata’s zscore06 command. Both Survey Solutions and Stata use the 2006 WHO references tables, but I noticed that for values below -3, the results given by Stata are different from those given by Survey Solutions. I know that in the ado zscore06 file, the LMS method is used and an adjustment is made for values below -3 and above 3. I would like to have the details of the Zscore.Wfl and Zscore.Wfh functions to find the source of the difference, it could be about the method used or the adjustment applied to the extreme values.
Thank you in advance for your help.

Hello @m_toure ,

You wrote:

First of all, please take a note that the WHO Child Growth Standards mentions that:
and you are looking precisely out of that range.

Now, with regards to your question, I can comment that the calculation of the scores is done by applying the LMS model with coefficients specific to the function you are using. For example, WfaBoys table will be used for weight-for-age when the child is a boy.

The source code contains a reference for the source of the tables:

When I follow this link now, I see there is a redirection to a different address (indicating the target has changed), but the data files are still there.

Despite the changes in the site address, the data files seem to be not-modified:

Left panel: Excel file Boys table - Weight-for-age from the website (downloaded today);
Right panel: Survey Solutions source code.

I am not aware of any additional corrections, adjustments or transformations in Survey Solutions that could affect the returned value.

To verify the results, consider using the WHO example

Eye-balling the intersection points as: 6.260, 7.050, 7.900, 8.950, 10.100, 11.500, and 13.100 I get the following in Survey Solutions:


which is indeed very close for the -3, -2, -1, 0, 1, 2, and 3.

When running zscore06 in Stata I see the results are rounded to two decimals after comma. You may want to get in touch with that package’s author to clarify the exact transformations and see if they may explain the differences you’ve encountered.

Hope this helps in your investigations.

PS: Is there any reason why you do these calculations in the survey? What is your scenario?

Best, Sergiy Radyakin

1 Like

Hello Sergiy,

Thank you for your reply. I’m doing the z-score calculations directly in the survey because we plan to use a questionnaire called “screening questionnaire” to measure and identify severely malnourished children (WHZ<-3 or MUAC<115cm) and enroll them the same day in another more detailed questionnaire “household questionnaire”. So we are 100% relying on the z-scores calculated by Survey Solutions to identify the children that are eligible for our household survey. So we are not interested in the value of the z-scores per se but we want to be sure that both Survey Solutions and Stata are identifying the same eligible children.
I compared the two source codes, the same tables are used to extract the parameters L, M and S, the z-score are calculated the same way. But regarding the restriction to z-scores between -3 and 3, a correction is applied in the zscore06 Stata command to values below -3 or above -3:

It looks like this is the main difference between the Survey Solutions and the Stata source codes.

Thank you for your help.

In general this will not be the case for the reasons of differences you’ve pointed out and for reasons of precision of calculation/rounding/etc, but the chances of that happening are rather small - the child’s measurements have to be close to the cutoff value.

If your identification happens during the survey, so you rely on Survey Solutions only (100% as you wrote) then it’s best to save the scores calculated by Survey Solutions along with your data (into a calculated variable), and then once you finish your survey and download the data, you will find the scores already there once you open it in Stata. In that case you do not need to recalculate the scores again in Stata.