Dataset
Two-stage cluster household survey with sampling frame — 2025
996 household interviews drawn from a 470-area frame by stratified PPS sampling, shipped with the frame rather than with the weights, so selection probabilities have to be reconstructed before any estimate is made.
- Rows
- 1,466
- Variables
- 21
- Period
- 2025-02-03 to 2025-03-21
- Licence
- CC BY 4.0
- Completeness
- 98%
Standards and methodologies
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
| Variable | Type | Description | Allowed values |
|---|---|---|---|
ea_id | string | Pseudonymous enumeration area identifier. The key that joins the survey to the frame. | — |
stratum | categorical | Sampling stratum. Allocation is equal across strata and the strata are not, which is where every weight comes from. | urban, rural-accessible, rural-remote |
households | integer | Households listed in the area at frame construction. The stage-one size measure. | — |
population | integer | People listed in the area at frame construction, for person-level denominators. | — |
selected | boolean | Whether the area was selected into the sample. | true, false |
households_selected | integer | Households drawn in the area at stage two. Blank for unselected areas. | — |
households_interviewed | integer | Households actually interviewed. The denominator of the non-response adjustment. | — |
replacement_for | string | Where an inaccessible area was replaced, the identifier of the area it replaced. | — |
household_id | string | Pseudonymous household identifier, unique across the survey. | — |
interview_date | date | Date the interview took place. | — |
household_size | integer | People usually living in the household. Needed for any person-level weight. | — |
sex_head_of_household | categorical | Sex of the head of household. Recorded with a different code in one area. | f, m |
displacement_status | categorical | Displacement status of the household. | resident, displaced, returnee |
main_livelihood | categorical | Main source of household income in the three months before the interview. | casual-labour, petty-trade, farming, livestock, salaried, remittances |
food_insecure | boolean | Whether the household was classified food insecure at interview. The headline outcome. | true, false |
improved_water_source | boolean | Whether the household's main drinking water source is improved. | true, false |
minutes_to_waterminutes | integer | Round trip to the main water source. Blank where the source is on the plot. | — |
children_under5 | integer | Children under five usually living in the household. | — |
child_age_monthsmonths | integer | Age of the one child under five selected for measurement. Blank where the household has none. | — |
child_sex | categorical | Sex of the measured child. | f, m |
child_muac_mmmm | integer | Mid-upper arm circumference of the measured child. | — |
Provenance
Data quality
- Fully generated. No real household is described and these figures must never be cited as a real assessment.
- Weights are deliberately not shipped. Reconstructing them from the frame is the exercise, in the same way the SMART survey ships raw measurements rather than z-scores.
- The design is self-weighting within a stratum. PPS at stage one and a fixed take of 14 at stage two cancel, so the base weight depends only on the stratum. Frame households are 21,270 urban, 28,958 rural accessible and 6,200 rural remote, giving base weights of about 60.8, 82.7 and 17.7.
- Weighting changes the headline. Food insecurity is 32.8% unweighted and 29.1% weighted, because the smallest stratum is the most oversampled and has the worst outcomes — 14.6% urban, 36.2% rural accessible, 46.4% rural remote. Improved water access moves further, from 62.8% unweighted to 69.8% weighted.
- The design effect is real. Outcomes are correlated within enumeration area at an intra-cluster correlation near 0.11, which on a mean of 13.3 interviews per area gives a design effect near 2.4. A confidence interval computed as though this were a simple random sample is about 35% too narrow.
- Response is not uniform. 996 of the 1,050 selected households were interviewed, at 90.3% in urban areas against 96.3% and 98.0% in the two rural strata. A base weight without a non-response adjustment therefore understates the urban stratum, which is also the least food insecure.
Known issues
- Two rural remote areas were inaccessible and replaced. The frame records the replacement, and treating a replacement as though it had been selected at stage one misstates its selection probability.
- Household size is missing for about 2% of households. It is needed for a person-level weight and not for a household-level one, so the two estimates have different analysable samples.
- Water collection time is blank where the source is on the plot. Treating the blank as zero pulls the mean down; excluding those households answers a different question.
- One area recorded the head of household's sex as M and F rather than m and f, which fragments a sex-disaggregated table into four categories.
- Five child MUAC values were left in centimetres and never converted, appearing as implausible values below 20.
Worked examples
Python
Weighted prevalence with a design-adjusted confidence interval
The same estimate in Python, computing the stratified two-stage variance directly so the arithmetic behind the design effect is visible rather than delegated.
Described here; the notebook is still being written.
What the weights are worth
Compares unweighted, design-weighted and non-response-adjusted estimates for every outcome in the survey, and decomposes the gap by stratum.
Described here; the notebook is still being written.
R
Weighted prevalence with a design-adjusted confidence interval
Reconstructs the design weights from the frame, adjusts for non-response, and estimates food insecurity with the survey package, reporting the design effect alongside the interval.
Described here; the notebook is still being written.