cassionData Analysis

Lab · Intermediate

The interval the survey actually bought

A 30-cluster SMART survey with no weights and no frame. Work out what it can and cannot support, compute GAM with a design-adjusted interval, and decide whether it can be read against the 15% emergency threshold.

PythonYour own machine180 min

Every survey in the course so far shipped its frame. This one does not, and that is the situation you will actually inherit: 930 children, 30 clusters, four teams, and no weights anywhere.

The question the survey exists to answer is whether acute malnutrition has crossed the 15% emergency threshold. The point estimate sits just below it. Whether the survey can answer the question at all is the finding, and it depends entirely on the interval.

The file

smart-nutrition-survey-2024.v1.csv — 930 children aged 6 to 59 months from a 30-cluster SMART survey, with cluster, team, raw weight and height, measurement position and oedema. No z-scores and no weights.

You will also need public/datasets/reference/who-2006-weight-for-lenhei.csv for the WHO 2006 LMS parameters. The joining course’s lab covers that join; here it is a step rather than the subject.

Set up first

A project folder, both files read-only, an outputs/ directory, and a script that runs top to bottom from a clean interpreter.

Part one: what design is this, and what is missing

Before computing anything, write down what the file tells you about the design and what it does not.

  • The primary sampling unit is recorded. Say what it is and how many there are.
  • The strata are not. Say what that means for your variance estimate and which direction the omission errs in.
  • The weights are not there either. SMART surveys are usually designed to be self-weighting; state the condition under which that is true, and whether anything in the file lets you check it.
  • The frame is absent, so a non-response adjustment is impossible. Say what you would need.

Write this as a short design block in the shape the course uses. It is the first deliverable and everything else depends on it.

Part two: the estimate

Compute GAM and SAM by weight-for-height z-score, applying the range checks and flagging the dataset’s notes describe, and produce for each:

  • the point estimate, with the analysed denominator stated
  • the intra-cluster correlation and the design effect
  • the effective sample size
  • a 95% confidence interval that accounts for the clustering
  • the same interval computed as though the survey were a simple random sample

Report the last two side by side. The gap between them is what this lab is for.

Use the logit interval for SAM. The estimate is small enough that the symmetric interval misbehaves, and showing that it does is part of the answer.

Part three: the threshold

The dataset notes state that a correct analysis puts GAM near 14.9%, just under the 15% emergency threshold.

Answer the question the survey was commissioned for, in the three-branch form the course uses — above, below, or cannot be distinguished — and show the arithmetic that decides it. Then compute how many children the survey would have needed to resolve the question, at the design effect you measured.

Part four: the teams

Team 3’s clusters give GAM near 22% against 10 to 16% for the other teams.

  • Estimate GAM by team with intervals, and say whether the difference between team 3 and the others is larger than the intervals support.
  • Then say why a statistically clear difference here is not a finding about nutrition, and what it does to the survey-wide estimate and its interval.

This is the point where survey analysis and data quality assessment meet, and the right answer uses both.

What to hand in

A Python script, run from a clean interpreter, producing:

  • the design block from part one
  • a results table with estimate, denominator, ICC, design effect, effective n, and both intervals, for GAM and SAM
  • the threshold verdict with its arithmetic
  • the by-team table with intervals
  • everything written to outputs/

Check your numbers

Expected
Children analysed after range checks and flagging about 874
Global acute malnutrition about 14.9%
Severe acute malnutrition about 3.9%
Team 3 GAM about 22%
Other teams GAM 10% to 16%

If your design effect is exactly 1.0, you have not used the cluster column. If GAM is nearer 12%, check the sign of the length-height adjustment before anything else.

The questions to answer in prose

Three sentences each.

1. Your two intervals — design-adjusted and simple random — differ. Say by how much, and what a reader would have concluded about the emergency threshold from the narrower one.

2. No weights are shipped. State the condition under which a SMART survey is self-weighting, say whether you can verify it from this file, and what you would write in the limitations section as a result.

3. Team 3’s clusters are 22%. Explain why excluding them is not obviously the right answer, what excluding them does to the interval as well as the estimate, and what you would recommend the survey report do.

How to know you are done

Delete outputs/, restart the interpreter, run once, and every table regenerates identically. Your results table has an interval on every estimate, and no estimate appears anywhere in your output without one.

What this lab is not

It is not nutrition survey methodology. What SMART requires of a survey, how the plausibility report is scored and what the IPC does with a prevalence belong with the nutrition content. This lab is the survey statistics: a design you have to infer from the file, a design effect you have to measure, an interval of the right shape, and an honest answer to whether the survey can settle the question it was paid to settle.