Leçon 2 sur 8
Unité · L'échelle n'est pas la source
Le booléen qui divise une couverture par deux
62,0 % des ménages ont un ouvrage d'assainissement amélioré et 43,2 % un service élémentaire. L'écart tient à une colonne — la latrine est-elle partagée — et l'échelle de l'hygiène a un équivalent qui lui coûte encore la moitié.
L’assainissement a la même forme que l’eau
Un ouvrage amélioré est nécessaire et non suffisant, et le champ qui fait la différence est un booléen que personne ne regarde deux fois.
| Échelon | Définition |
|---|---|
| Géré en toute sécurité | Amélioré, non partagé, et excreta évacués ou traités sans risque |
| Élémentaire | Amélioré, non partagé avec d’autres ménages |
| Limité | Amélioré mais partagé |
| Non amélioré | Latrine à fosse sans dalle, latrine suspendue, seau |
| Défécation à l’air libre | Aucun ouvrage |
IMPROVED_SANITATION = {
"flush-to-sewer", "flush-to-septic", "vip-latrine", "pit-latrine-with-slab",
}
improved = households["sanitation_facility"].isin(IMPROVED_SANITATION)
shared = households["shared_sanitation"]
print(f"improved facility: {improved.mean():.1%}")
print(f"basic (not shared): {(improved & ~shared).mean():.1%}")
print(f"limited (shared): {(improved & shared).mean():.1%}")
improved_sanitation <- c("flush-to-sewer", "flush-to-septic",
"vip-latrine", "pit-latrine-with-slab")
households |>
mutate(service = case_when(
sanitation_facility == "open-defecation" ~ "open defecation",
!sanitation_facility %in% improved_sanitation ~ "unimproved",
shared_sanitation ~ "limited",
TRUE ~ "basic"
)) |>
count(service) |>
mutate(share = n / sum(n))
| Échelon | Ménages | Part |
|---|---|---|
| Élémentaire | 1 038 | 43,2 % |
| Limité (partagé) | 452 | 18,8 % |
| Non amélioré | 594 | 24,7 % |
| Défécation à l’air libre | 319 | 13,3 % |
62,0 % ont un ouvrage amélioré et 43,2 % un service élémentaire. Dix-huit points reposent sur une latrine conforme au standard de construction et partagée avec un autre ménage.
Pourquoi le partage coûte un échelon
Parce que la raison d’être du standard est l’usage, non la construction. Une latrine partagée est moins utilisée la nuit, moins par les femmes et les filles, et moins par les enfants — c’est-à-dire là où se situe le bénéfice sanitaire. La classification suit le comportement, non le béton.
C’est le même argument que les trente minutes. Dans les deux échelles, la seconde condition existe parce qu’un ouvrage techniquement adéquat et pratiquement évité ne produit aucun résultat sanitaire, et qu’un indicateur qui le compterait rapporterait un progrès que personne n’a vécu.
La défécation à l’air libre est le nombre à mettre en tête
od = households["sanitation_facility"].eq("open-defecation")
by_district = households.groupby("district")["sanitation_facility"].apply(
lambda s: s.eq("open-defecation").mean()
)
print(f"{od.sum()} households, {od.mean():.1%}")
print((by_district * 100).round(1))
households |>
summarise(open_defecation = mean(sanitation_facility == "open-defecation"),
n = n(), .by = district)
13,3 %, et c’est le seul chiffre EAH qu’un non-spécialiste lit correctement sans qu’on lui donne la définition. Mettez-le en tête, désagrégez-le, et notez que le champ district de ce fichier est écrit de six façons — le cours sur le nettoyage s’en est occupé, et grouper sans normaliser coupe le pire district en quatre.
L’échelle de l’hygiène, et l’observation qui la porte
Le service d’hygiène élémentaire exige un dispositif de lavage des mains avec eau et savon disponibles. Trois échelons, et l’enquête répond aux trois, parce que l’enquêteur a observé au lieu de demander.
has_facility = households["handwashing_facility"].ne("no-facility")
soap = households["soap_observed"]
print(f"any facility: {has_facility.mean():.1%}")
print(f"basic (facility + soap): {(has_facility & soap).mean():.1%}")
print(f"limited (no soap): {(has_facility & ~soap).mean():.1%}")
print(f"no facility: {(~has_facility).mean():.1%}")
households |>
mutate(hygiene = case_when(
handwashing_facility == "no-facility" ~ "no facility",
soap_observed ~ "basic",
TRUE ~ "limited"
)) |>
count(hygiene) |>
mutate(share = n / sum(n))
| Échelon | Ménages | Part |
|---|---|---|
| Élémentaire — dispositif et savon | 819 | 34,1 % |
| Limité — dispositif, sans savon | 811 | 33,7 % |
| Aucun dispositif | 773 | 32,2 % |
67,8 % ont un endroit où se laver les mains et 34,1 % y ont du savon. L’échelle de l’hygiène perd la moitié de son échelon supérieur sur un seul article observé, ce qui est une chute plus forte que dans les deux autres échelles.
C’est l’observation qui rend ce chiffre fiable. Le lavage des mains déclaré
dépasse largement le lavage observé partout où les deux ont été mesurés, parce que
la question a une réponse manifestement attendue. La colonne employée ici est ce
que l’enquêteur a vu, et son nom doit le dire — soap_observed, non soap.
Les trois échelles ne se moyennent pas
summary = pd.DataFrame({
"ladder": ["Drinking water", "Sanitation", "Hygiene"],
"at_least_basic": [0.547, 0.432, 0.341],
"denominator": ["all households"] * 3,
})
print(summary)
tibble::tribble(
~ladder, ~at_least_basic,
"Drinking water", 0.547,
"Sanitation", 0.432,
"Hygiene", 0.341
)
Trois nombres sur le même dénominateur, ce qui est inhabituel et mérite d’être remarqué — ils peuvent légitimement figurer côte à côte. Ce qu’ils ne peuvent pas être, c’est combinés. Il n’existe pas d’indicateur de « couverture EAH », et une moyenne des trois ne décrirait aucun ménage : un ménage avec eau élémentaire, assainissement partagé et pas de savon n’est pas « couvert à 58 % », c’est un ménage qui a un service sur trois.
Là où un chiffre composite est exigé, publiez les trois et le nombre de ménages qui disposent des trois, qui est une quantité réelle et généralement dégrisante.
La suite
Les échelles classent. Elles ne disent pas combien d’eau est arrivée, combien de temps a duré l’attente, ni si l’eau était potable. Les deux leçons suivantes portent sur les mesures que Sphère ajoute par-dessus — et la première recèle deux erreurs d’unité.