cassionAnalyse de données

Exercice · Débutant

Six modifications et aucun journal

Vous héritez d'un script de nettoyage aux six étapes non documentées et d'un taux de couverture déjà rapporté. Reconstituez le journal, mesurez ce qu'a coûté chaque étape, et identifiez les deux étapes fautives.

R45 min

L’agent qui vous a précédé a laissé ce script et un taux de couverture penta3 qui figure déjà dans un rapport trimestriel. Il n’y a aucun journal de nettoyage. Rien dans le script n’échoue, et le chiffre qu’il produit est plausible.

Votre travail n’est pas de le réécrire. Il est de dire ce qu’il a fait, dans un tableau que l’on pourrait joindre au rapport.

Le fichier

vaccination-coverage-2024.v1.csv — 2 736 lignes de rapportage agrégé mensuel provenant de 38 formations sanitaires pour six antigènes. Synthétique, de forme DHIS2, et porteur du défaut qui définit ce type de données — une formation sanitaire qui n’a pas rapporté et une formation sanitaire qui n’a vacciné personne sont indiscernables.

Le script

library(dplyr)
library(readr)

vax <- read_csv("vaccination-coverage-2024.v1.csv")

clean <- vax |>
  filter(doses_administered > 0) |>                          # 1
  filter(!is.na(target_population)) |>                       # 2
  mutate(antigen = tolower(antigen)) |>                      # 3
  distinct() |>                                              # 4
  filter(period >= as.Date("2024-03-01")) |>                 # 5
  mutate(coverage = doses_administered / target_population)

penta3 <- clean |>
  filter(antigen == "penta3") |>
  summarise(coverage = mean(coverage))                       # 6

La tâche

Pour chacune des six étapes numérotées, produisez une ligne de journal de nettoyage avec ces colonnes.

règle lignes touchées action effet sur la couverture penta3 est-ce défendable

Règles de remplissage.

  1. Le nombre de lignes touchées est un nombre que vous avez calculé, pas une estimation. Montrez le code.
  2. L’effet se mesure, en exécutant la chaîne avec et sans cette étape puis en soustrayant. Tout le reste est inchangé.
  3. « Est-ce défendable » admet trois réponses — oui, oui sous réserve d’une mention obligatoire dans le rapport, ou non. Si la réponse est non, dites ce qu’aurait dû être l’étape.

Certaines étapes ne touchent aucune ligne. Elles ont malgré tout leur ligne de journal : une règle qui ne se déclenche jamais est un fait sur les données qui mérite d’être consigné.

Ce qu’il faut chercher

Deux des six étapes sont fautives, de deux façons différentes. L’une détruit une information dont l’indicateur dépend. L’autre calcule le mauvais type de moyenne et constitue, des deux, l’erreur la plus répandue dans ce secteur.

Deux repères utiles, tous deux sur penta3 et mensuels plutôt qu’annuels — calculée sur l’ensemble des couples formation-mois du fichier, la couverture est d’environ 5,1 % ; calculée sur les seuls couples formation-mois où un rapport a effectivement été transmis, elle est d’environ 6,5 %. Si aucun de vos chiffres ne ressemble à l’un de ces deux, cherchez quelle étape l’a déplacé avant d’aller plus loin.

Les questions à traiter en prose

Trois phrases chacune.

1. L’étape 1 supprime toute ligne sans dose administrée. Expliquez ce que sont réellement ces lignes dans ce jeu de données, ce que mesure désormais le chiffre obtenu, et quelle colonne unique le script aurait dû utiliser à la place.

2. L’étape 6 prend la moyenne d’une colonne de rapports. Dites ce qu’elle calcule, en quoi cela diffère du total des doses sur le total de la population cible, et lequel des deux entend un responsable sanitaire de district lorsqu’il demande la couverture.

3. L’étape 5 ne garde que mars et au-delà. Elle peut être parfaitement correcte. Énoncez la seule chose qu’il vous faudrait savoir pour trancher, et dites ce qui doit figurer au journal si vous ne pouvez pas l’apprendre.

Ce qu’il faut rendre

Un script R produisant le journal de six lignes sous forme de tableau, affiché et écrit dans outputs/reconstructed-log.csv, ainsi que le chiffre penta3 corrigé avec son dénominateur énoncé dans le nom de la colonne.

Comment savoir que c’est fini

La colonne effet de votre journal totalise l’écart entre le chiffre brut et le chiffre final, ou bien vous savez expliquer pourquoi non — certaines étapes interagissent, et le dire vaut mieux qu’une colonne qui tombe juste par hasard. Chaque ligne porte un nombre dans lignes touchées, y compris les zéros.