Retour à la leçon·Leçon 3 sur 8·Ce que Sphère demande et qu'une échelle ne dit pas
Quinze litres, trente minutes, cinq cents mètres
Le même diaporama que les téléchargements, rendu sous forme de page. Lancez le diaporama pour le présenter en plein écran — les flèches ou un clic avancent d'une diapositive, Échap quitte.
Ce que couvre cette leçon
- Ce que Sphère ajoute à l'échelle
- Deux erreurs d'unité, et une seule est visible
- L'attente est incluse dans l'aller-retour, et c'est un problème
- La distance n'est pas du tout dans le fichier
- Rapportez la distribution face au seuil
- La suite
Notes du présentateur
13,4 % de ces ménages passent sous le minimum Sphère de quantité. Deux des colonnes qui produisent ce nombre portent des erreurs d'unité, et l'une d'elles fait monter un ménage d'un échelon plutôt que sortir d'un graphique.Ce que Sphère ajoute à l'échelle
Standard Seuil Dans ce fichier Quantité Au moins 15 litres par personne et par jour litres_per_person_dayTemps d'attente 30 minutes au plus Inclus dans round_trip_minutesDistance 500 m au plus jusqu'au point le plus proche Non enregistrée ; le temps sert de proxy Notes du présentateur
Les échelles du JMP classent un service. Les standards minimaux Sphère y mettent des nombres, et les trois sur lesquels un programme d'eau est jugé sont :Ce que Sphère ajoute à l'échelle — En Python
import pandas as pd households = pd.read_csv("wash-household-survey-2024.v1.csv") litres = households["litres_per_person_day"] print(f"median {litres.median():.1f} L/p/d") print(f"below Sphere minimum: {(litres < 15).mean():.1%}") print(litres.describe().round(1))Notes du présentateur
Les seuils sont des minimums pour survivre dans la dignité, non des cibles. Un programme à 15,2 litres a atteint le standard et ne se porte pas bien, et un rapport qui n'imprime que la part au-dessus du seuil masque où se situe réellement la distribution.Ce que Sphère ajoute à l'échelle — En R
library(dplyr) households |> summarise( median = median(litres_per_person_day), below_15 = mean(litres_per_person_day < 15), n = n() )Ce que Sphère ajoute à l'échelle
- 13,4 % sous 15 litres — avec une médiane de 23,7
Notes du présentateur
13,4 % sous 15 litres, avec une médiane de 23,7. Les deux nombres ont leur place dans le rapport : le premier est le standard, le second dit que le ménage médian dispose d'environ la moitié en plus de ce qu'il lui faut et que le problème est de répartition plutôt que de volume total.Deux erreurs d'unité, et une seule est visible — En Python
print(litres.nlargest(8).round(1).tolist())Deux erreurs d'unité, et une seule est visible — En R
households |> slice_max(litres_per_person_day, n = 8) |> select(household_id, household_size, litres_per_person_day)Deux erreurs d'unité, et une seule est visible — En Python
suspect = households[litres > 80] recovered = suspect["litres_per_person_day"] / suspect["household_size"] print(recovered.round(1).describe())Notes du présentateur
Onze ménages dépassent 80 litres par personne et par jour, jusqu'à 277,6. C'est implausible dans ce contexte et ce n'est pas une faute de frappe — c'est la consommation totale du ménage saisie dans une colonne par personne. Divisez par la taille du ménage et chacun d'eux retombe dans une plage normale.Deux erreurs d'unité, et une seule est visible — En R
households |> filter(litres_per_person_day > 80) |> mutate(recovered = litres_per_person_day / household_size) |> summarise(min = min(recovered), max = max(recovered))Deux erreurs d'unité, et une seule est visible
- La seconde erreur est la dangereuse — parce qu'elle rend une valeur plus petite et non plus grande
Notes du présentateur
La seconde erreur est la dangereuse, parce qu'elle rend une valeur plus petite et non plus grande. Onze ménages ont un temps de collecte saisi en heures, si bien qu'un aller-retour de 90 minutes est enregistré comme 2. Il n'y a aucune valeur aberrante à attraper : 2 minutes est une valeur parfaitement ordinaire, et 85 ménages déclarent légitimement moins de 8 minutes.Deux erreurs d'unité, et une seule est visible — En Python
short = households[households["round_trip_minutes"].between(1, 8)] print(f"{len(short)} households report a round trip of 1 to 8 minutes") print(short["water_source"].value_counts())Deux erreurs d'unité, et une seule est visible — En R
households |> filter(between(round_trip_minutes, 1, 8)) |> count(water_source)Deux erreurs d'unité, et une seule est visible
- Une erreur qui ramène une valeur dans la plage normale ne se trouve pas en cherchant des valeurs aberrantes — Elle se…
Notes du présentateur
Une erreur qui ramène une valeur dans la plage normale ne se trouve pas en cherchant des valeurs aberrantes. Elle se trouve par une règle qui lie deux champs — un aller-retour de moins de dix minutes vers une source qui n'est ni sur place ni une borne publique de la même communauté mérite une vérification — ou elle s'évite à la saisie par une étiquette d'unité sur le formulaire. Sa conséquence ici n'est pas une moyenne fausse. C'est un échelon faux : chacun de ces ménages est classé en service élémentaire alors qu'il est limité.L'attente est incluse dans l'aller-retour, et c'est un problème — En Python
print("round_trip_minutes includes walking, queueing and return.") print(f"over 30 minutes: {(households['round_trip_minutes'] > 30).mean():.1%}") print("Queue time alone: not collected. Recommend adding it to the next round.")Notes du présentateur
Sphère fixe l'attente séparément du temps de collecte parce que les deux ont des causes et des remèdes différents. Une longue marche appelle un nouveau point d'eau ; une longue file appelle davantage de robinets au point existant, ou une plage horaire plus large. Cette enquête n'enregistre que l'aller-retour, qui contient les deux. Le rapport honnête dit donc ce qu'il peut et ne peut pas séparer :L'attente est incluse dans l'aller-retour, et c'est un problème — En R
# One line in the limitations section beats a queue statistic that is a walk.Notes du présentateur
39,3 % dépassent trente minutes, et rien de ce nombre ne peut être attribué à l'attente ou à la distance sans la ventilation. Dites laquelle des deux vous ne voyez pas, car l'action corrective diffère et un programme qui devine construira la mauvaise chose.La distance n'est pas du tout dans le fichier
- Là où un standard nomme une unité dont vous ne disposez pas, rapportez le proxy sous son propre nom — Rapporter le…
Notes du présentateur
Le standard des 500 mètres exige une coordonnée ou une distance mesurée, et cette enquête n'a ni l'une ni l'autre. Le temps en est un proxy et un mauvais : trente minutes font un kilomètre sur une route et trois cents mètres dans un ravin. Là où un standard nomme une unité dont vous ne disposez pas, rapportez le proxy sous son propre nom. Rapporter le temps d'aller-retour comme s'il s'agissait du standard de distance est la façon dont une évaluation conclut qu'une communauté est à moins de 500 mètres de l'eau alors qu'elle en est très loin.Rapportez la distribution face au seuil — Exemple
Water quantity, 2,403 households Median 23.7 L/person/day Below Sphere minimum (15 L) 13.4% 323 households Below 7.5 L 2.2% 54 households Collection time Over 30 minutes 39.3% 944 households Queue time not separated from walking time in this round. Distance not recorded; time is the proxy and is not equivalent. 11 records held household total litres in the per-person column and were corrected; 11 held collection time in hours and were corrected.Notes du présentateur
Le seuil, la distribution, et les corrections énoncées avec leurs effectifs. Un journal de nettoyage n'est pas un aveu — c'est ce qui permet au lecteur de voir que 13,4 % vient après correction de deux erreurs connues et non avant.La suite
- La quantité et le temps disent si l'eau est arrivée et à quel prix d'effort.
Notes du présentateur
La quantité et le temps disent si l'eau est arrivée et à quel prix d'effort. Ils ne disent rien de sa potabilité, et la leçon suivante est celle où le dénominateur change sous vos pieds.