cassionAnalyse de données

Leçon 5 sur 8

Unité · Comparer des lieux

Trois couvertures qui divergent

Couverture administrative, couverture par enquête, et abandon entre doses. La première dépend d'une projection, la deuxième d'un échantillon, et seule la troisième échappe aux deux.

PythonR135 minDéfinitions d'indicateurs de l'UNICEFObjectifs de développement durable (ODD)Enquête démographique et de santé (EDS)

Trois façons de mesurer la même chose

La couverture vaccinale est l’indicateur sanitaire le plus rapporté de ce secteur et il se produit de trois façons différentes, qui divergent régulièrement.

Méthode Numérateur Dénominateur Échoue quand
Administrative Doses enregistrées par les formations Projection de population La projection est fausse, ou le rapportage incomplet
Par enquête Enfants avec carte ou dose rappelée Enfants échantillonnés Les cartes sont perdues ; le rappel est mauvais ; l’échantillon est petit
Abandon Première dose moins dernière dose Première dose Rarement — et c’est tout l’intérêt

Le cours DHIS2 a calculé la première. Le cours sur les enquêtes vous a donné la machinerie de la deuxième. Cette leçon dit pourquoi elles diffèrent et laquelle employer.

La couverture administrative et ses deux dépendances

import pandas as pd

vax = pd.read_csv("vaccination-coverage-2024.v1.csv", parse_dates=["period"])
reported = vax[vax["report_submitted"] == True]

penta3 = reported[reported["antigen"] == "penta3"]
annual_target = (
    vax[vax["antigen"] == "penta3"].groupby("facility_id")["target_population"].first()
)
months = penta3.groupby("facility_id").size()
prorated = (annual_target * months.reindex(annual_target.index).fillna(0) / 12).sum()

print(f"doses {penta3['doses_administered'].sum():,}")
print(f"administrative coverage: "
      f"{penta3['doses_administered'].sum() / prorated:.1%}")
library(dplyr)
# same shape: doses over a denominator pro-rated to months reported

77,5 %, parmi les couples formation-mois ayant rapporté. Ce chiffre porte deux dépendances, et le cours DHIS2 a établi les deux.

Le dénominateur est une projection. Les nourrissons survivants, issus d’une projection de recensement composée à un taux de croissance supposé. Neuf ans à 2,4 % font un facteur de 1,24, si bien qu’un quart du dénominateur est une hypothèse.

Le taux de rapportage valait 76,5 %. Les formations n’ayant pas rapporté n’apportent aucune dose, si bien que le chiffre est une borne inférieure à moins d’imputer leurs doses.

Une couverture administrative supérieure à 100 % est fréquente et signifie toujours que l’une de ces deux choses est fausse, plus une troisième possibilité — des enfants vaccinés hors de leur bassin, ce qui gonfle un numérateur de formation face à un dénominateur de bassin.

La couverture par enquête et ses deux dépendances

Une enquête de couverture échantillonne des enfants d’un âge donné et demande s’ils ont été vaccinés, en vérifiant sur la carte lorsqu’il y en a une.

Elle supprime le problème de projection — le dénominateur est l’échantillon — et en introduit deux autres.

La conservation des cartes. Là où les cartes sont perdues, la couverture repose sur le souvenir de l’accompagnant, qui surestime pour certains antigènes et sous-estime pour d’autres. Rapportez séparément la couverture vérifiée par carte et celle fondée sur le rappel ; l’écart entre les deux mesure à quel point l’estimation dépend de la mémoire.

La précision. La couverture par enquête arrive avec un intervalle de confiance, et le cours sur les enquêtes a montré qu’un plan en grappes l’élargit. Une enquête qui estime la couverture à plus ou moins six points ne peut pas trancher si un district a franchi une cible de 80 %.

# From the survey course: a proportion with a design-adjusted interval
def coverage_interval(p, n, deff, t=1.99):
    se = (p * (1 - p) / n * deff) ** 0.5
    return p - t * se, p + t * se

print(coverage_interval(0.775, 900, 2.0))
coverage_interval <- function(p, n, deff, t = 1.99) {
  se <- sqrt(p * (1 - p) / n * deff)
  c(p - t * se, p + t * se)
}

Pourquoi elles divergent

Cinq raisons, et savoir laquelle s’applique change ce que vous faites.

  • La projection est fausse. La plus fréquente, et elle ne déplace que la couverture administrative. Un dénominateur trop petit pousse l’administrative au-dessus de l’enquête.
  • Le rapportage est incomplet. Fait baisser l’administrative.
  • La traversée des bassins. Déplace les chiffres administratifs par formation dans les deux sens et s’annule au niveau du district.
  • L’erreur de rappel. Déplace la couverture par enquête, généralement vers le haut.
  • Des cohortes d’âge différentes. La couverture administrative compte les doses données cette année ; une enquête compte les enfants de 12 à 23 mois vaccinés à n’importe quel moment. Ce ne sont pas les mêmes enfants.

La dernière est la plus fréquente et la moins soupçonnée. Deux chiffres de « couverture penta3 » portant sur des cohortes différentes ne sont pas deux estimations d’une quantité ; ce sont deux quantités.

L’abandon — le chiffre qui survit à tout cela

doses = reported.groupby("antigen")["doses_administered"].sum()

for start, end in [("penta1", "penta3"), ("mcv1", "mcv2")]:
    dropout = (doses[start] - doses[end]) / doses[start]
    print(f"{start} -> {end}: {dropout:.1%}")
vax |> filter(report_submitted) |>
  summarise(doses = sum(doses_administered), .by = antigen)

Penta1 vers penta3 : 13,8 %. Première vers seconde dose de rougeole : 22,9 %.

L’abandon est un rapport de deux numérateurs de même source, mêmes formations et mêmes mois. Il a donc :

  • aucun dénominateur de population, donc aucune projection à se tromper ;
  • le même biais de rapportage dans les deux termes, qui s’annule largement ;
  • aucune ambiguïté de cohorte, puisque les deux doses sont comptées pareillement.

Le coût est qu’il ne dit rien du niveau. Un district pourrait avoir 13,8 % d’abandon et 30 % de couverture — bon à retenir les enfants qu’il commence, mauvais à les commencer. Rapportez l’abandon à côté de la couverture, jamais à sa place.

Ce que les deux abandons disent ensemble

L’abandon de la seconde dose de rougeole vaut 22,9 % contre 13,8 % pour le pentavalent, et la différence est instructive plutôt que du bruit.

Les doses de pentavalent se donnent rapprochées dans les premiers mois de vie, quand les accompagnants viennent déjà pour d’autres services. La seconde dose de rougeole se donne bien plus tard, souvent après la fin de la période de contacts intensifs. Un abandon qui croît avec l’intervalle entre doses est un problème de rappel et de proximité, non d’approvisionnement, et les actions correctives diffèrent.

summary = pd.DataFrame({
    "series": ["Pentavalent 1->3", "Measles 1->2"],
    "dropout": [0.138, 0.229],
    "interval": ["weeks", "months"],
    "implication": ["retention within the early contact period",
                    "retention after the early contact period ends"],
})
tibble::tribble(
  ~series,             ~dropout, ~implication,
  "Pentavalent 1->3",     0.138, "retention within early contacts",
  "Measles 1->2",         0.229, "retention after early contacts end"
)

Laquelle rapporter

Penta3 coverage, administrative     77.5%   among reporting facility-months
                                            (reporting rate 76.5%)
                                            denominator: MoH projection from 2015 census
Penta1 to penta3 dropout            13.8%   same source, both terms
Measles 1 to 2 dropout              22.9%
Survey coverage                     not available this year

Quatre lignes, et la dernière est un constat. Là où aucune enquête n’existe, dites-le — car le lecteur suppose par défaut qu’un chiffre de couverture a été validé face à une enquête, et ici il ne l’a pas été.

La suite

La couverture compare un programme à une population. La leçon suivante compare deux populations entre elles, et découvre que la comparaison de la leçon 4 était en partie un artefact de qui habite où.

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.