Exercice · Intermédiaire
La colonne qui n'était pas un nombre
271 lectures de chlore sont la chaîne "<0.1". Quelqu'un a converti la colonne en numérique et rapporté 46,5 % de conformité. Reconstruisez les deux chiffres, dites lequel est juste, et rédigez les deux phrases qui vont sous le tableau.
Le rapport EAH trimestriel indique que 46,5 % des points d’eau testés atteignaient la cible de chlore résiduel libre de 0,2 à 0,5 mg/L. Le script de votre prédécesseur compte une ligne de plus que le vôtre et produit une réponse différente.
Le sien convertissait d’abord la colonne en nombre.
Le fichier
water-point-monitoring-2024.v1.csv — 2 629 visites de suivi sur 242 points
d’eau. 811 d’entre elles portent une lecture de chlore et 271 de celles-ci sont
enregistrées comme la chaîne <0.1, la limite de détection du kit de terrain.
Synthétique.
Le travail
Partie une. Reproduisez les deux nombres. Montrez la ligne qui produit 46,5 % et celle qui produit 30,9 %, et dites en une phrase de quoi chacun est le taux de conformité.
Partie deux. Dites lequel est juste et pourquoi. Votre réponse doit traiter de
ce dont une lecture <0.1 est la mesure, et de pourquoi le sens de l’erreur n’est
pas un hasard — toute valeur censurée échoue à la cible, si bien que les retirer ne
peut déplacer le chiffre que dans un sens.
Partie trois. Produisez le tableau de conformité que vous publieriez : lectures
prises, lectures sous le seuil de détection, lectures dans la plage cible, lectures
au-dessus, et le taux de conformité sur le dénominateur complet. Ventilez par
source_type. Un type détient 200 des 251 lectures dans la plage et seulement 28
des 271 censurées ; les quatre autres font l’inverse, et la raison n’est pas un
problème de données.
Partie quatre. Rédigez les deux phrases qui vont sous le tableau — l’une énonçant le dénominateur et le traitement des valeurs censurées, l’autre ce qu’un lecteur ne doit pas en conclure.
Ce qu’il faudra traiter
Trois choses, et seule la première est évidente.
as.numeric("<0.1")renvoie NA avec un avertissement. En pandas,pd.to_numeric(..., errors="coerce")fait la même chose sans aucun avertissement. Dans les deux cas, 271 mesures deviennent des valeurs manquantes et le dénominateur rétrécit.- La cible est une plage, non un minimum. Une lecture de 0,9 mg/L y échoue aussi sûrement qu’une sous 0,1, pour une autre raison, et ranger « au-dessus de la cible » avec « conforme » est l’image inversée de l’erreur que vous corrigez.
- Le test n’est pas réparti uniformément. 323 des 390 visites de bornes de réseau portent une lecture contre 300 des 1 421 visites de pompes manuelles, si bien que le sous-échantillon testé n’est pas le parc. Dites ce que cela fait à un chiffre de conformité à l’échelle du parc.
Trois points de repère
811 lectures, 271 sous la limite de détection, 251 à l’intérieur de la plage 0,2 à 0,5 mg/L. Si vos deux chiffres principaux ne sont pas approximativement 30,9 % et 46,5 %, vérifiez que votre test de plage est inclusif aux deux bornes avant d’aller plus loin.
Les questions à traiter en prose
Trois phrases chacune.
1. Un collègue propose de substituer la moitié de la limite de détection — 0,05 mg/L — à chaque lecture censurée, afin de pouvoir moyenner la colonne. Dites quand cette convention est raisonnable et pourquoi elle est inutile pour cet indicateur précis.
2. 243 des 271 lectures censurées portent sur des sources qui ne sont pas chlorées du tout. Expliquez ce que cela fait à un chiffre de conformité calculé sur tous les types de source, dites ce que l’indicateur mesure réellement sur une pompe manuelle, et donnez le dénominateur sur lequel vous le rapporteriez.
3. Le script de votre prédécesseur faisait une arithmétique juste sur les lignes dont il disposait. Dites quel type de relecture l’aurait attrapé, et pourquoi une relecture du code de calcul ne l’aurait pas fait.
À rendre
Un script R produisant le tableau de conformité par type de source, les deux
chiffres principaux côte à côte avec leurs dénominateurs, et les deux phrases en
commentaire en pied de fichier. Tableaux imprimés et écrits dans outputs/.
Comment savoir que c’est fini
Votre dénominateur vaut 811 sur chaque ligne qui rapporte une conformité, et l’effectif des lectures censurées figure dans le tableau et non en commentaire. Quelqu’un qui ne lit que le tableau peut reconstruire votre chiffre et celui de votre prédécesseur.