cassionAnalyse de données

Retour à la leçonLeçon 4 sur 8Confronter à la source

Choisir les six formations sanitaires à visiter

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 / 20

    Ce que couvre cette leçon

    • Vous avez une semaine et trente-huit formations sanitaires
    • Aléatoire — la seule qui se généralise
    • Fondée sur le risque — là où sont les problèmes
    • Recensement des plus grosses
    • Combien suffisent
    • LQAS — conçu exactement pour cela
    • Combinez, et étiquetez
    • La suite
    Notes du présentateur
    Trois stratégies d'échantillonnage qui répondent à trois questions différentes, combien d'unités suffisent, et la phrase que vous avez le droit d'écrire sur les trente-deux formations non visitées.
  2. Diapositive 2 / 20

    Vous avez une semaine et trente-huit formations sanitaires

    StratégieRépond àNe peut pas répondre à
    Aléatoire« Quelle est la qualité des données du district ? »« Où sont les problèmes ? »
    Fondée sur le risque« Les formations suspectées le sont-elles vraiment ? »« Quelle est la qualité du district ? »
    Recensement des plus grosses« Le total du district est-il juste ? »Quoi que ce soit sur les petites formations
    Notes du présentateur
    Une visite de vérification coûte un véhicule, une journée, deux personnes et du carburant. Le budget en couvre six. Tout dans cette leçon découle de cette arithmétique, et le premier point à clarifier est que le choix des six détermine ce que votre constat aura le droit de signifier. Trois stratégies, trois questions, et les confondre est la défaillance méthodologique la plus courante d'une évaluation.
  3. Diapositive 3 / 20

    Aléatoire — la seule qui se généralise — En Python

    import pandas as pd
    
    facilities = vax[["facility_id", "facility_type"]].drop_duplicates()
    
    sample = facilities.sample(n=6, random_state=20260728)
    print(sample)
    Notes du présentateur
    Si vous voulez une affirmation sur le district, l'échantillon doit être tiré sans référence à ce que vous vous attendez à trouver.
  4. Diapositive 4 / 20

    Aléatoire — la seule qui se généralise — En R

    set.seed(20260728)
    
    sample <- facilities |> dplyr::slice_sample(n = 6)
  5. Diapositive 5 / 20

    Aléatoire — la seule qui se généralise

    • Fixez la graine et consignez-la — Une évaluation dont l'échantillon n'est pas reproductible appelle la question de…
    Notes du présentateur
    Fixez la graine et consignez-la. Une évaluation dont l'échantillon n'est pas reproductible appelle la question de savoir si les formations ont été choisies après que quelqu'un a su ce qu'elles contenaient, et la graine y répond en une ligne. Stratifiez lorsqu'un sous-groupe compte. Les postes de santé rapportent le moins bien, si bien qu'un simple tirage aléatoire de six pourrait n'en contenir aucun.
  6. Diapositive 6 / 20

    Aléatoire — la seule qui se généralise — En Python

    sample = (
        facilities.groupby("facility_type", group_keys=False)
        .apply(lambda g: g.sample(n=min(2, len(g)), random_state=20260728))
    )
  7. Diapositive 7 / 20

    Aléatoire — la seule qui se généralise — En R

    sample <- facilities |>
      group_by(facility_type) |>
      slice_sample(n = 2) |>
      ungroup()
    Notes du présentateur
    Stratifier par type donne une affirmation sur chaque type en plus du district, et cela ne coûte rien.
  8. Diapositive 8 / 20

    Fondée sur le risque — là où sont les problèmes — En Python

    risk = (
        vax.groupby("facility_id")
        .agg(reporting_rate=("reported", "mean"))
        .assign(round_share=lambda d: d.index.map(round_number_share))
    )
    risk["score"] = (1 - risk["reporting_rate"]) + risk["round_share"]
    print(risk.sort_values("score", ascending=False).head(6))
    Notes du présentateur
    Si le but est de corriger plutôt que de décrire, choisissez les formations que l'analyse de bureau a déjà signalées. Les deux leçons suivantes sont entièrement consacrées à produire ce classement.
  9. Diapositive 9 / 20

    Fondée sur le risque — là où sont les problèmes — En R

    risk <- vax |>
      summarise(reporting_rate = mean(report_submitted), .by = facility_id) |>
      left_join(round_shares, by = "facility_id") |>
      mutate(score = (1 - reporting_rate) + round_share) |>
      arrange(desc(score))
  10. Diapositive 10 / 20

    Fondée sur le risque — là où sont les problèmes

    Six formations ont été retenues sur la base des signalements de l'analyse de bureau. Les constats les décrivent et ne sont pas représentatifs du district.
    Notes du présentateur
    Cette approche trouve plus de problèmes par journée-véhicule que le tirage aléatoire, raison pour laquelle la plupart des évaluations réelles l'emploient. Elle ne se généralise pas, et le rapport doit le dire. Tout rapport d'évaluation qui omet cette phrase puis cite un facteur de vérification au niveau du district formule une affirmation que son protocole ne soutient pas.
  11. Diapositive 11 / 20

    Recensement des plus grosses — En Python

    volume = (
        vax[vax["reported"]]
        .groupby("facility_id")["doses_administered"].sum()
        .sort_values(ascending=False)
    )
    share = volume.cumsum() / volume.sum()
    print(share.head(10).round(3))
    Notes du présentateur
    Une troisième option, souvent la plus utile pour un total. Ordonnez les formations par volume et visitez-en assez pour couvrir l'essentiel du numérateur.
  12. Diapositive 12 / 20

    Recensement des plus grosses — En R

    volume <- vax |>
      filter(report_submitted) |>
      summarise(doses = sum(doses_administered), .by = facility_id) |>
      arrange(desc(doses)) |>
      mutate(cumulative = cumsum(doses) / sum(doses))
    Notes du présentateur
    Si huit formations représentent la moitié des doses, vérifier ces huit borne l'erreur du total du district quoi que fassent les trente autres. C'est le bon protocole quand la question est « puis-je me fier au total que je remonte au bailleur » — et le mauvais quand la question porte sur la qualité du service dans les postes reculés, puisqu'il les ignore systématiquement.
  13. Diapositive 13 / 20

    Combien suffisent — En Python

    p = 0.30
    n = 6
    print(f"chance of finding none: {(1 - p) ** n:.1%}")
    Notes du présentateur
    Il n'y a pas de réponse unique, mais il y a une façon d'y penser qui résiste à la contestation. Pour une question par oui ou non — le rapportage de cette formation est-il acceptable — vous estimez une proportion, et la précision s'améliore comme la racine carrée de l'échantillon. Six formations sur trente-huit donnent un intervalle de confiance si large que presque aucun résultat ne se distingue d'un autre. Soyez honnête là-dessus plutôt que de rapporter « 33 % des formations présentent des constats » à partir d'un échantillon de six. Pour détecter si un problème existe, les petits échantillons sont bien plus capables. Si 30 % des formations ont un défaut, la probabilité que six formations tirées au hasard n'en contiennent aucune est d'environ 12 % — un échantillon de six sans constat est donc un indice raisonnable de l'absence d'un problème répandu, et aucun indice sur un problème rare.
  14. Diapositive 14 / 20

    Combien suffisent — En R

    (1 - 0.30)^6
    Notes du présentateur
    Cette seule ligne mérite de figurer dans le rapport. Elle convertit « nous en avons visité six sans rien trouver » en une affirmation assortie d'un nombre.
  15. Diapositive 15 / 20

    LQAS — conçu exactement pour cela

    Visiter 12 formations. Si 3 ou plus ont un facteur de vérification hors de 0,95-1,05, le rapportage du district est classé comme nécessitant une action corrective.
    Notes du présentateur
    L'échantillonnage par lots pour l'assurance qualité formalise le paragraphe précédent, et ce secteur l'emploie déjà pour les enquêtes de couverture. L'idée est de cesser de vouloir estimer et de commencer à vouloir décider — fixer un seuil, une taille d'échantillon et une règle de décision, puis accepter ou rejeter. L'avantage est que l'échantillon peut être petit parce que la question l'est. Le coût est que vous obtenez un verdict et non un chiffre, et que quelqu'un réclamera le chiffre malgré tout. Dites d'emblée pour lequel vous avez conçu.
  16. Diapositive 16 / 20

    Combinez, et étiquetez — En Python

    plan = pd.DataFrame({
        "facility_id": ["FAC012", "FAC033", "FAC004", "FAC019", "FAC007", "FAC021"],
        "reason": ["random", "random", "risk: reporting 58%", "risk: round numbers",
                   "volume: top 5", "volume: top 5"],
    })
    Notes du présentateur
    Les évaluations réelles emploient souvent les trois, et c'est très bien tant que le rapport les sépare.
  17. Diapositive 17 / 20

    Combinez, et étiquetez — En R

    plan <- tibble::tribble(
      ~facility_id, ~reason,
      "FAC012", "random",
      "FAC033", "random",
      "FAC004", "risk: reporting 58%",
      "FAC019", "risk: round numbers",
      "FAC007", "volume: top 5",
      "FAC021", "volume: top 5"
    )
  18. Diapositive 18 / 20

    Combinez, et étiquetez

    • La colonne reason est la section méthodologie — Avec elle, un lecteur sait quels constats se généralisent et lesquels…
    Notes du présentateur
    La colonne reason est la section méthodologie. Avec elle, un lecteur sait quels constats se généralisent et lesquels non. Sans elle, le rapport a un échantillon et trois affirmations incompatibles, et un relecteur qui le remarque les écartera toutes.
  19. Diapositive 19 / 20

    La suite

    • L'échantillonnage fondé sur le risque exige un classement de risque, et vous n'avez pour l'instant que des taux de rapportage.
    Notes du présentateur
    L'échantillonnage fondé sur le risque exige un classement de risque, et vous n'avez pour l'instant que des taux de rapportage. Les deux leçons suivantes construisent le reste à partir de l'extraction que vous détenez déjà — des tendances qui bougent de façon impossible, des valeurs qui se répètent, et des chiffres qui trahissent un nombre que personne n'a mesuré.
  20. Diapositive 20 / 20

    La suite

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