cassionAnalyse de données

Retour à la leçonLeçon 1 sur 8Ce que qualité veut dire ici

Cinq dimensions, cinq mesures

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.

Diapositives · PDFDiapositives · PowerPoint

  1. Diapositive 1 / 14

    Ce que couvre cette leçon

    • La phrase qu'il faut cesser de dire
    • Les cinq, et la mesure de chacune
    • Calculez les cinq sur une seule extraction
    • Pondérez les dimensions par ce qu'elles coûtent
    • Ne réduisez pas à un seul nombre
    • La suite
    Notes du présentateur
    « Les données sont mauvaises » n'est pas un constat. Exactitude, complétude, actualité, cohérence et intégrité — chacune avec un nombre, calculée sur la même extraction, et un tableau de bord qui résiste à la contestation.
  2. Diapositive 2 / 14

    La phrase qu'il faut cesser de dire

    • « La qualité des données est mauvaise.
    Notes du présentateur
    « La qualité des données est mauvaise. » Tout le monde acquiesce, rien ne se passe, et la même phrase revient au trimestre suivant. Elle échoue parce qu'elle est inexploitable de trois façons distinctes. Elle ne dit pas quelle qualité — un rapport tardif et un rapport fabriqué sont deux problèmes aux remèdes différents. Elle ne dit pas combien — mauvaise partout ou mauvaise dans quatre formations sanitaires. Et elle ne dit pas et alors — si le défaut est assez grand pour changer le chiffre sur lequel quelqu'un va agir. Les cinq dimensions existent pour corriger les trois d'un coup. Ce n'est pas un cadre à réciter, ce sont cinq questions dont la réponse est un nombre.
  3. Diapositive 3 / 14

    Les cinq, et la mesure de chacune

    DimensionLa questionLa mesure
    ComplétudeTout le monde a-t-il rapporté, et sur tout ?Taux de rapportage ; taux de valeurs manquantes par champ
    ActualitéLe rapport est-il arrivé à temps pour servir ?Part transmise avant l'échéance ; retard médian en jours
    ExactitudeLe chiffre remonté correspond-il à la source ?Facteur de vérification — recomptage sur rapporté
    CohérenceLes nombres s'accordent-ils entre eux et avec le mois dernier ?Taux d'échec des règles internes ; taux d'aberrations
    IntégritéLa valeur vient-elle d'une mesure ou d'autre chose ?Préférence de chiffres ; attraction ; séries anormalement stables
  4. Diapositive 4 / 14

    Les cinq, et la mesure de chacune

    • L'exactitude est la seule qui exige le document source — Les quatre autres se calculent sur l'extraction que vous avez…
    • L'intégrité n'est pas une accusation — Elle mesure si les nombres ressemblent à des mesures
    Notes du présentateur
    Deux points de ce tableau méritent discussion, car les deux reviennent toujours. L'exactitude est la seule qui exige le document source. Les quatre autres se calculent sur l'extraction que vous avez déjà, à votre bureau, cet après-midi. Cette asymétrie commande toute la conception d'une évaluation — les quatre dimensions de bureau servent à décider où dépenser la cinquième, la coûteuse. L'intégrité n'est pas une accusation. Elle mesure si les nombres ressemblent à des mesures. Une distribution d'âges attirée par les valeurs rondes signifie généralement que personne n'a demandé d'acte de naissance, non que quelqu'un a inventé quoi que ce soit, et la leçon qui lui est consacrée passe l'essentiel de son temps sur cette distinction.
  5. Diapositive 5 / 14

    Calculez les cinq sur une seule extraction — En Python (suite)

    import pandas as pd
    
    vax = pd.read_csv("vaccination-coverage-2024.v1.csv", parse_dates=["period"])
    vax["reported"] = vax["report_submitted"] == True
    
    scorecard = {}
    
    # Completeness
    scorecard["reporting_rate"] = vax["reported"].mean()
    scorecard["field_completeness"] = 1 - vax.isna().mean().mean()
    
    # Consistency: doses cannot exceed the target population
    rule_fail = (vax["doses_administered"] > vax["target_population"]).mean()
    scorecard["rule_failure_rate"] = rule_fail
    
    # Integrity: share of reported values ending in zero
    Notes du présentateur
    Prenez l'extraction vaccinale de routine — 38 formations sanitaires, douze mois, six antigènes.
  6. Diapositive 6 / 14

    Calculez les cinq sur une seule extraction — En Python (suite)

    reported = vax[vax["reported"]]
    scorecard["round_number_share"] = (reported["doses_administered"] % 10 == 0).mean()
    
    print(pd.Series(scorecard).round(3))
  7. Diapositive 7 / 14

    Calculez les cinq sur une seule extraction — En R

    library(dplyr)
    library(readr)
    
    vax <- read_csv("vaccination-coverage-2024.v1.csv")
    
    scorecard <- tibble::tibble(
      reporting_rate     = mean(vax$report_submitted),
      field_completeness = 1 - mean(is.na(as.matrix(vax))),
      rule_failure_rate  = mean(vax$doses_administered > vax$target_population),
      round_number_share = mean(
        vax$doses_administered[vax$report_submitted] %% 10 == 0
      )
    )
    
    round(scorecard, 3)
  8. Diapositive 8 / 14

    Calculez les cinq sur une seule extraction

    MesureValeurÀ lire comme
    Taux de rapportage76,5 %642 des 2 736 couples formation-mois ne portent aucun rapport
    Complétude des champs100 %aucune case vide — ce qui n'est pas la même chose qu'aucune donnée manquante
    Taux d'échec des règles0 %aucune formation ne rapporte plus de doses que sa population cible
    Part de nombres ronds10,4 %ce que produit le hasard ; rien à voir
    Notes du présentateur
    Lisez les lignes deux et un ensemble. La complétude des champs vaut 100 % et la complétude du rapportage 76,5 %, et seule la seconde compte. Chaque couple formation-mois sans rapport figure dans le fichier comme une ligne de zéros avec un indicateur, si bien qu'un décompte de cases vides déclare les données parfaites. C'est le défaut autour duquel tout le module tourne — un rapport manquant qui arrive sous forme de zéro.
  9. Diapositive 9 / 14

    Pondérez les dimensions par ce qu'elles coûtent

    • Pour un taux de couverture, la complétude domine. Un taux de rapportage de 76,5 % fait de tout total de district…
    • Pour une charge de cas servant à approvisionner, l'exactitude domine. Commander des aliments thérapeutiques sur une…
    • Pour un indicateur d'alerte précoce, l'actualité domine. Un rapport parfaitement exact arrivant six semaines après…
    • Dites quelle dimension vous avez pondérée et pourquoi, dans le rapport — Un score composite qui cache sa pondération…
    Notes du présentateur
    Un tableau de bord à cinq nombres égaux laisse entendre que les cinq comptent également. Ce n'est pas le cas, et laquelle prime dépend entièrement de l'usage des données. Dites quelle dimension vous avez pondérée et pourquoi, dans le rapport. Un score composite qui cache sa pondération est le même défaut qu'un indicateur qui cache son dénominateur.
  10. Diapositive 10 / 14

    Ne réduisez pas à un seul nombre — En Python

    scorecard_table = pd.DataFrame({
        "dimension": ["Completeness", "Timeliness", "Accuracy", "Consistency", "Integrity"],
        "measure": ["Reporting rate", "Submitted by deadline", "Verification factor",
                    "Rule failure rate", "Round-number share"],
        "value": [0.765, None, None, 0.0, 0.104],
        "source": ["extract", "submission log", "facility visit", "extract", "extract"],
    })
    print(scorecard_table)
    Notes du présentateur
    Quelqu'un demandera un score unique sur 100. Résistez, et proposez le tableau de bord à la place, pour une raison précise — les cinq dimensions ont des remèdes différents, et le nombre unique ne dit rien sur celui à appliquer. Un district à 82 % parce qu'il est en retard se corrige en déplaçant une échéance. Un district à 82 % parce qu'un tiers de ses formations ne rapportent jamais se corrige en cherchant pourquoi elles ont cessé. Les deux font 82. Un seul se corrige par un atelier de formation, et aucun ne se corrige par l'atelier que quelqu'un va proposer. Si un composite est réellement exigé — certains modèles bailleurs l'imposent — publiez-le à côté de ses composantes, jamais à leur place.
  11. Diapositive 11 / 14

    Ne réduisez pas à un seul nombre — En R

    scorecard_table <- tibble::tribble(
      ~dimension,     ~measure,                ~value, ~source,
      "Completeness", "Reporting rate",         0.765, "extract",
      "Timeliness",   "Submitted by deadline",     NA, "submission log",
      "Accuracy",     "Verification factor",       NA, "facility visit",
      "Consistency",  "Rule failure rate",       0.000, "extract",
      "Integrity",    "Round-number share",      0.104, "extract"
    )
  12. Diapositive 12 / 14

    Ne réduisez pas à un seul nombre

    • C'est la colonne source qui est utile — Elle dit immédiatement quels nombres vous pouvez produire aujourd'hui et…
    Notes du présentateur
    C'est la colonne source qui est utile. Elle dit immédiatement quels nombres vous pouvez produire aujourd'hui et lesquels exigent un déplacement, et c'est la forme de tout plan d'évaluation.
  13. Diapositive 13 / 14

    La suite

    • Deux des cinq dimensions ne sont presque jamais rapportées, et toutes deux se calculent sur des données que vous détenez déjà.
    Notes du présentateur
    Deux des cinq dimensions ne sont presque jamais rapportées, et toutes deux se calculent sur des données que vous détenez déjà. La leçon suivante les calcule correctement — complétude et promptitude du rapportage, chacune avec son propre dénominateur, et le piège consistant à diviser par les formations qui ont rapporté.
  14. Diapositive 14 / 14

    La suite

    Lire la leçon complète, avec le code exécutable Retour à la leçon