cassionAnalyse de données

Leçon 3 sur 8

Unité · Confronter à la source

Le recomptage, et le nombre qu'il produit

Un facteur de vérification est le recomptage divisé par le chiffre rapporté. Le district est à 1,012, ce que personne ne contesterait, et une école sur vingt-quatre est à 1,42.

PythonR75 minDéfinitions d'indicateurs de l'UNICEFNorme humanitaire fondamentale (CHS)Gestion axée sur les résultats (GAR)

L’exactitude est la dimension qui exige un déplacement

Les quatre autres dimensions sortent de l’extraction. Celle-ci non. L’exactitude signifie « le chiffre rapporté correspond-il à la source », et la source est un registre papier dans une armoire, une fiche de pointage, ou une tablette qui n’a plus synchronisé depuis mars.

La méthode est la plus ancienne de ce cours et personne n’a fait mieux — allez le recompter. Puis divisez.

Le facteur de vérification

verification factor = recount / reported

Ce que vous avez compté à la source, divisé par ce qui a été remonté. Un facteur de 1,00 signifie que le rapport correspondait au registre. C’est un rapport, non un pourcentage d’erreur, et le mettre dans le bon sens compte au moment de l’écrire.

Les deux sens sont des constats, et ce ne sont pas les mêmes.

  • Facteur supérieur à 1 — le registre contient plus que ce qui a été rapporté. Sous-déclaration. Généralement une perte de transcription ou d’agrégation : une colonne non additionnée, une page sautée, une extraction électronique qui a laissé tomber des valeurs qu’elle ne reconnaissait pas. Le programme a fait plus de travail qu’on ne lui en attribue.
  • Facteur inférieur à 1 — le rapport revendique plus que le registre ne soutient. Surdéclaration. Parfois un double comptage ou un écart de définition ; occasionnellement quelque chose de plus grave. C’est le sens qui fait suspendre une subvention, donc celui qu’il faut affirmer avec le plus de précaution.

Calculez-le sur un registre dont vous disposez

Prenez le registre de présence scolaire. L’extraction électronique porte des marques true et false ; une école a aussi enregistré certains jours en Y et N, que la conversion booléenne de l’extraction n’a pas reconnus. Une visite de vérification lisant le registre papier compterait ces jours comme des présences. L’extraction ne l’a pas fait.

Cela donne un recomptage réel et un chiffre rapporté réel, sur les mêmes données.

import pandas as pd

attendance = pd.read_csv("school-attendance-2024.v1.csv")
roster = pd.read_csv("school-roster-2024.v1.csv")

# The two students on the roster twice are ambiguous; exclude them from the
# verification and say so, rather than assigning them arbitrarily.
duplicated = roster["student_id"].duplicated(keep=False)
clean_roster = roster[~duplicated]

marks = attendance.merge(
    clean_roster[["student_id", "school_id"]], on="student_id",
    how="inner", validate="many_to_one",
)

vf = (
    marks.assign(
        reported=marks["present"] == "true",
        recount=marks["present"].isin(["true", "Y"]),
    )
    .groupby("school_id")[["recount", "reported"]]
    .sum()
)
vf["verification_factor"] = vf["recount"] / vf["reported"]
print(vf.sort_values("verification_factor", ascending=False).head())
library(dplyr)

clean_roster <- roster |>
  group_by(student_id) |> filter(n() == 1) |> ungroup()

vf <- attendance |>
  inner_join(select(clean_roster, student_id, school_id), by = "student_id",
             relationship = "many-to-one") |>
  summarise(
    recount  = sum(present %in% c("true", "Y")),
    reported = sum(present == "true"),
    .by = school_id
  ) |>
  mutate(verification_factor = recount / reported) |>
  arrange(desc(verification_factor))
École Recomptage Rapporté Facteur
SCH09 2 456 1 734 1,416
SCH01 2 945 2 945 1,000
SCH02 2 569 2 569 1,000
… 22 autres 1,000
District 61 764 61 042 1,012

Le chiffre du district est le piège

Lisez la dernière ligne d’abord, car c’est celle qui figure dans la plupart des rapports. Le facteur de vérification du district vaut 1,012 — un peu plus d’un pour cent — et aucun auditeur au monde ne soulèverait de constat là-dessus.

Lisez maintenant la première ligne. Une école sur vingt-quatre a sous-déclaré sa présence de 42 %, et cela est invisible dans le total du district parce que les vingt-trois autres sont exactes.

C’est l’argument que le cours précédent avançait à propos de la moyenne des facteurs de vérification, et il mérite d’être avancé deux fois car c’est la manière la plus courante dont une évaluation délivre un satisfecit à un district qui a un vrai problème. Rapportez la distribution et les exceptions. La moyenne est la statistique la moins informative disponible.

print(vf["verification_factor"].describe())
outliers = vf[(vf["verification_factor"] - 1).abs() > 0.05]
print(f"{len(outliers)} of {len(vf)} schools outside the tolerance band")
summary(vf$verification_factor)
vf |> filter(abs(verification_factor - 1) > 0.05)

La bande de tolérance

Une évaluation a besoin d’un seuil fixé avant de regarder, sans quoi chaque constat devient une négociation.

La convention retenue par la plupart des cadres bailleurs est 0,95 à 1,05 — à 5 % près c’est acceptable, au-delà c’est un constat. C’est une convention et non une loi, et deux ajustements sont légitimes.

  • Élargissez-la pour les petits nombres. Une formation rapportant 12 cas a un facteur de 1,08 si un cas a été manqué. Sur de petits effectifs, employez aussi une différence absolue — « hors de 5 % et de plus de 5 unités ».
  • Resserrez-la quand il y a de l’argent. Lorsque le chiffre déclenche un paiement — financement basé sur les résultats, remboursement par bénéficiaire — 5 % représentent beaucoup d’argent et la bande est en général plus étroite, fixée par le contrat et non par vous.
TOLERANCE = 0.05
MIN_ABSOLUTE = 5

vf["difference"] = vf["recount"] - vf["reported"]
vf["finding"] = (
    ((vf["verification_factor"] - 1).abs() > TOLERANCE)
    & (vf["difference"].abs() > MIN_ABSOLUTE)
)
print(vf[vf["finding"]])
vf <- vf |>
  mutate(
    difference = recount - reported,
    finding = abs(verification_factor - 1) > 0.05 & abs(difference) > 5
  )

Inscrivez la bande dans le protocole avant la visite. Un seuil choisi après avoir vu les chiffres n’est pas un seuil, et tout le monde dans la salle le saura.

Le recomptage est un protocole, pas une après-midi

L’arithmétique est triviale. Tout ce qui rend le nombre digne de confiance se joue en amont.

  • Fixez la période exactement. « Mars » n’est pas une période. « Du 1er au 31 mars, par date de service et non par date de saisie » en est une.
  • Fixez la définition exactement. Comptez ce que dit le numérateur de l’indicateur, non ce que dit l’en-tête de colonne du registre. La plupart des facteurs éloignés de 1 sont des écarts de définition, et ce ne sont les erreurs de personne.
  • Recomptez indépendamment. La personne qui a compilé le rapport ne doit pas faire le recomptage. Non par défiance — parce qu’elle reproduira la même interprétation, et c’est l’interprétation que vous testez.
  • Notez à partir de quoi vous avez compté. Registre, fiche de pointage, cartes individuelles. Deux sources d’une même formation se contredisent souvent, et celle que vous avez comptée fait partie du constat.

Ce qu’un facteur de vérification ne peut pas dire

Trois limites à énoncer dans le rapport, sinon quelqu’un sur-interprétera le nombre.

Il ne dit pas que le registre est juste. Un facteur de 1,00 signifie que le rapport correspond au registre. Si le registre a été rempli en fin de semaine de mémoire, les deux sont faux ensemble et le facteur reste muet.

Il ne se généralise pas au-delà des formations visitées, sauf si vous avez échantillonné correctement. C’est la leçon suivante.

Ce n’est pas une accusation. Un facteur de 1,42 dans une école, avec vingt-trois autres à exactement 1,00, a la silhouette d’un défaut de système — la convention de saisie d’une école, non reconnue par l’extraction — et non celle d’un directeur gonflant ses chiffres. L’écrire de la seconde façon garantit que le tour suivant sera pire.

La suite

Vous ne pouvez pas visiter trente-huit formations. La leçon suivante montre comment choisir celles que vous visiterez, combien suffisent, et ce qu’un échantillon de six vous autorise à dire des trente-deux autres.

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.