cassionAnalyse de données

Leçon 3 sur 8

Unité · L'adaptation est une séquence, non un score

Un ménage est classé par sa pire stratégie

Dix stratégies, trois phases de sévérité, et la règle est le maximum plutôt que la somme. 18,2 % de ces ménages ont employé une stratégie d'urgence, et la façon dont un district a traité « sans objet » rend ses prévalences fausses tout en laissant sa classification intacte.

PythonR135 minCadre intégré de classification de la sécurité alimentaire (IPC)Standards SphèreNorme humanitaire fondamentale (CHS)

Le module, et pourquoi ce n’est pas un indice de plus

Le module des stratégies d’adaptation aux moyens d’existence demande si un ménage a employé l’une de dix stratégies au cours des trente derniers jours. Chaque stratégie est classée à l’avance dans une phase de sévérité, avant toute collecte, et le ménage est ensuite classé par la stratégie la plus sévère qu’il a employée.

Phase Stratégies Ce qu’elles ont en commun
Stress Vente de biens du ménage, épargne épuisée, emprunt, vente d’animaux au-delà de l’habitude Réduisent la capacité à absorber un choc futur ; réversibles
Crise Vente d’actifs productifs, retrait des enfants de l’école, coupe des dépenses de santé Réduisent la productivité future ; difficiles à inverser
Urgence Vente de la maison ou de la terre, mendicité, vente des dernières femelles reproductrices Réduisent la productivité future et sont quasi irréversibles

La classification est un maximum, non une somme, et non un décompte. Un ménage qui a vendu une fois ses dernières reproductrices est plus mal en point qu’un ménage qui a emprunté quatre fois, et toute arithmétique qui additionne les deux dit le contraire.

import pandas as pd

coping = pd.read_csv("livelihood-coping-2024.v1.csv")

PHASE = {
    "sold_household_assets": "stress",
    "spent_savings": "stress",
    "borrowed_money": "stress",
    "sold_more_animals_than_usual": "stress",
    "sold_productive_assets": "crisis",
    "withdrew_children_from_school": "crisis",
    "reduced_health_expenditure": "crisis",
    "sold_house_or_land": "emergency",
    "begged": "emergency",
    "sold_last_female_animals": "emergency",
}
RANK = {"none": 0, "stress": 1, "crisis": 2, "emergency": 3}

used = coping[list(PHASE)].eq("yes")
severity = pd.Series("none", index=coping.index)
for strategy, phase in PHASE.items():
    higher = used[strategy] & (severity.map(RANK) < RANK[phase])
    severity[higher] = phase

print((severity.value_counts(normalize=True) * 100).round(1))
library(dplyr)

phase <- c(sold_household_assets = "stress", spent_savings = "stress",
           borrowed_money = "stress", sold_more_animals_than_usual = "stress",
           sold_productive_assets = "crisis",
           withdrew_children_from_school = "crisis",
           reduced_health_expenditure = "crisis",
           sold_house_or_land = "emergency", begged = "emergency",
           sold_last_female_animals = "emergency")
rank <- c(none = 0, stress = 1, crisis = 2, emergency = 3)
Classification Ménages Part
Aucune 339 16,0 %
Stress 754 35,5 %
Crise 642 30,3 %
Urgence 386 18,2 %

48,5 % ont employé une stratégie de crise ou d’urgence. Ce seul chiffre est ce que le tableau de preuves IPC retient de ce module, et c’est une image très différente des 7,3 % à consommation alimentaire pauvre.

Sans objet n’est pas non

Un ménage sans animaux ne peut pas vendre sa dernière femelle reproductrice. Le module l’enregistre comme not-applicable, et c’est une troisième réponse et non une variante de non.

answers = coping["sold_last_female_animals"].value_counts()
print(answers)

applicable = coping["sold_last_female_animals"].isin(["yes", "no"])
print(f"prevalence among applicable: "
      f"{coping.loc[applicable, 'sold_last_female_animals'].eq('yes').mean():.1%}")
print(f"prevalence if n/a counted as no: "
      f"{coping['sold_last_female_animals'].eq('yes').mean():.1%}")
coping |> count(sold_last_female_animals)

coping |>
  filter(sold_last_female_animals %in% c("yes", "no")) |>
  summarise(prevalence = mean(sold_last_female_animals == "yes"), n = n())
Stratégie Parmi les ménages concernés Si « sans objet » compté comme non
Vente d’animaux au-delà de l’habitude 37,4 % 27,5 %
Vente d’actifs productifs 19,8 % 17,3 %
Retrait des enfants de l’école 19,7 % 16,5 %
Vente des dernières femelles 8,6 % 5,8 %

Dix points d’écart sur la première ligne. Le dénominateur d’une prévalence par stratégie est l’ensemble des ménages auxquels la stratégie est ouverte, et compter les autres comme non-utilisateurs sous-estime chacune d’elles.

La classification au niveau du ménage y survit et la prévalence par stratégie non, car un maximum sur des valeurs yes ne se soucie pas de savoir si les autres valent no ou not-applicable. Cette asymétrie mérite d’être connue : c’est pourquoi un même fichier peut porter une classification juste et un tableau de prévalences faux sur la même page.

Le district où la distinction a été perdue

by_district = coping.groupby("district")["sold_last_female_animals"].agg(
    yes=lambda s: (s == "yes").sum(),
    applicable=lambda s: s.isin(["yes", "no"]).sum(),
    not_applicable=lambda s: (s == "not-applicable").sum(),
)
by_district["correct"] = by_district["yes"] / by_district["applicable"]
by_district["naive"] = by_district["yes"] / coping.groupby("district").size()
print((by_district[["correct", "naive"]] * 100).round(1))
coping |>
  summarise(yes = sum(sold_last_female_animals == "yes"),
            applicable = sum(sold_last_female_animals %in% c("yes", "no")),
            n = n(), .by = district) |>
  mutate(correct = yes / applicable, naive = yes / n)
District Bon dénominateur Tous les ménages
Nord-Ouest 12,3 % 6,8 %
Artibonite 9,7 % 5,3 %
Sud 7,5 % 4,5 %
Centre 6,5 % 6,4 %

Les deux colonnes de Centre sont presque identiques, celles de tous les autres districts non. La raison est dans les données brutes : Centre n’a aucune cellule not-applicable, parce que ses enquêteurs les ont toutes enregistrées comme no.

print(coping.groupby("district")[list(PHASE)]
      .apply(lambda block: (block == "not-applicable").sum().sum()))
coping |> summarise(across(all_of(names(phase)),
                    ~ sum(.x == "not-applicable")), .by = district)

Sur le bon dénominateur, Nord-Ouest vaut presque le double de Centre. Sur le mauvais, les deux sont identiques. Une comparaison de districts bâtie sur la colonne naïve conclurait que la vente de détresse du bétail est uniforme dans la zone de réponse, et lirait l’habitude de saisie d’une équipe.

Le module partiel

Cinquante-huit ménages ont les trois questions d’urgence vides.

emergency = [s for s, phase in PHASE.items() if phase == "emergency"]
partial = coping[emergency].eq("").all(axis=1) | coping[emergency].isna().all(axis=1)
print(f"{partial.sum()} households cannot be classified above crisis")
coping |> filter(if_all(c(sold_house_or_land, begged, sold_last_female_animals),
                        ~ is.na(.x))) |> nrow()

Un maximum calculé sur ce qui est présent les classe au pire en crise. Les 18,2 % en urgence sont donc une borne inférieure, et le rapport honnête le dit plutôt que de la présenter comme l’estimation.

L’alternative — les supprimer — fait de la part en urgence une estimation non biaisée d’une population légèrement différente. Les deux sont défendables ; trancher en silence ne l’est pas.

Pourquoi l’adaptation se mesure à part de la consommation

Les instruments ne se recouvrent pas comme on l’attend.

survey = pd.read_csv("food-security-survey-2024.v1.csv")
merged = survey.merge(coping, on="household_id", how="left", indicator=True)
print(merged["_merge"].value_counts())
survey |> left_join(coping, by = "household_id") |>
  summarise(matched = sum(!is.na(district.y)), n = n())

Les ménages recourent aux stratégies d’adaptation avant que leur consommation ne baisse — c’est l’objet même de l’adaptation. Un ménage qui vend des actifs pour continuer à manger a une consommation intacte et une base d’actifs qui s’effondre, et une analyse qui ne lit que le SCA l’enregistre comme en sécurité alimentaire jusqu’au jour où les actifs manquent.

C’est l’argument pour mesurer les deux, et la leçon suivante est ce qui arrive quand on le fait.

Deux choses à vérifier sur la jointure. Neuf ménages figurent dans le module et pas dans l’enquête, car le module a été administré à partir d’une liste distincte — une jointure interne les supprime sans un mot. Et les douze ménages enquêtés deux fois n’apparaissent qu’une fois dans le module, si bien que la jointure n’est pas un-à-un.

La suite

Quatre instruments existent désormais sur ces ménages : consommation, faim, comportements de survie et stratégies d’adaptation. La leçon suivante demande lesquels s’accordent sur qui est en insécurité alimentaire, et la réponse est l’essentiel de la raison d’être de l’IPC.

Animer cette leçon

La leçon en diaporama, la prose étant reléguée dans les notes du présentateur plutôt que projetée. Produit à partir de cette page, dont il ne peut donc pas s'écarter.

Lancer le diaporamaLire les diapositives

Le PDF ne requiert aucun logiciel et se projette depuis n'importe quel poste. Le fichier PowerPoint est fait pour être modifié : appliquez la charte de votre organisation, retirez une section pour une séance plus courte, ou fusionnez deux leçons en atelier.