cassionData Analysis

Dataset

SMART nutrition survey — anthropometry, 2024

A 30-cluster SMART survey of 930 children aged 6-59 months, shipped as raw weight and height so z-scores must be computed, and carrying the specific defects a SMART plausibility report is designed to catch.

syntheticNutritionAnthropometryNutrition surveillanceChild malnutritionSevere acute malnutritionModerate acute malnutrition
Rows
930
Variables
9
Period
2024-11
Licence
CC BY 4.0
Completeness
96%

Standards and methodologies

SMART surveyWHO Child Growth StandardsUNICEF indicator definitions

Files

Files are versioned by filename. A corrected release ships as .v2.csv rather than replacing the file in place, so an analysis pinned to v1 keeps reproducing.

Data dictionary

VariableTypeDescriptionAllowed values
clusterintegerSurvey cluster, 1 to 30. Children within a cluster are more alike than children across clusters, so a naive confidence interval will be too narrow.
teamintegerMeasurement team, 1 to 4. Required for the plausibility checks; two teams have distinguishable measurement problems.
child_idstringPseudonymous child identifier.
age_monthsmonthsintegerAge in completed months, 6 to 59. Heaped on whole years where no birth record existed.
sexcategoricalSex of the child. The sex ratio is one of the standard plausibility checks.f, m
weight_kgkgfloatWeight to the nearest 0.1 kg.
height_cmcmfloatLength or height as recorded, to the nearest 0.1 cm. Not adjusted for measurement position.
measured_lyingbooleanWhether the child was measured lying down. Length reads about 0.7 cm higher than height for the same child, so this must be subtracted before computing z-scores.true, false
oedemabooleanBilateral pitting oedema. A child with oedema is severely acutely malnourished regardless of weight-for-height.true, false

Provenance

Source
Synthetic, generated by scripts/generate/smart_nutrition_survey_2024.py
Collection method
Simulated 30-cluster SMART survey with four measurement teams
Geography
Anonymised survey area
Period
2024-11

Data quality

  • Fully generated. No real child is described and the results must not be cited as a real nutrition situation.
  • Z-scores are deliberately not shipped. Computing weight-for-height z-scores against the WHO 2006 growth standards is the exercise, and reading a precomputed column teaches nothing.
  • Measurement position must be handled first. Children under 87 cm were measured lying, and the recorded value carries the roughly 0.7 cm length-height difference. Skipping that adjustment biases every z-score for the youngest half of the sample.
  • Correctly analysed, this survey gives global acute malnutrition near 10.3% and severe acute malnutrition near 1.1% — a serious situation on WHO thresholds, short of the 15% emergency level.
  • Oedema overrides anthropometry. A child with bilateral pitting oedema is severely acutely malnourished whatever their weight-for-height, so the SAM numerator is not simply the count below -3 z-scores.

Known issues

  • Fifteen records hold impossible measurements: weights out by a factor of ten in both directions, and heights entered in metres. These must be excluded by a range check before any flagging rule is applied.
  • SMART flags exclude observations more than 3 SD from the survey mean; WHO flags use fixed bounds of -5 to +5. The two rules exclude different children and give slightly different rates, which is why a plausibility report states which was used.
  • Team 3 measures systematically low. Its clusters show global acute malnutrition near 15.5% against 7 to 11% for the other teams, with a mean z-score about 0.4 lower — a measurement artefact, not a real difference in nutrition status.
  • Team 2 shows heavy digit preference: about 69% of its height readings end in .0 or .5, against roughly 20% for the other teams.
  • Ages heap on whole years. There are 66 children recorded at exactly 24 months against 15 and 19 at 23 and 25, and 80 at 36 months against 28 and 17 either side.
  • Twenty-two children are missing an age and seven are missing a weight.

Worked examples

Python

Computing prevalence with WHO growth standards

Adjusts for measurement position, computes weight-for-height z-scores, applies SMART and WHO flagging in turn, and reports GAM and SAM with a design effect for the cluster sample.

Described here; the notebook is still being written.

SMART plausibility report

Reproduces the standard quality checks — flagged records, digit preference by team, age heaping, sex ratio and team bias — and states whether the survey would be accepted.

Described here; the notebook is still being written.

R

Computing prevalence with WHO growth standards

The same prevalence estimation in R, using a growth-standards package rather than reimplementing the LMS calculation.

Described here; the notebook is still being written.