cassionAnalyse de données

Retour à la leçonLeçon 7 sur 8Ce que les nombres signifient

La zone dont les dossiers ont doublé est celle qui s'est améliorée

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

    Ce que couvre cette leçon

    • La courbe, et la lecture évidente
    • Ce qu'un compte de dossiers compte
    • Le test qui les distingue
    • Dites-le dans le rapport, dans la phrase à côté du nombre
    • La conséquence que l'on manque
    • D'où vient réellement la prévalence
    • La suite
    Notes du présentateur
    Le flux mensuel de Saint-Louis-du-Nord passe de 5,8 dossiers à 10,2 après juillet. Rien de la violence dans cette zone n'a changé. Un service a ouvert, et une courbe de dossiers mesure si les gens peuvent atteindre un bureau — jamais combien en avaient besoin.
  2. Diapositive 2 / 27

    La courbe, et la lecture évidente — En Python

    import pandas as pd
    
    cases = pd.read_csv("protection-case-management-2024.v1.csv")
    monthly = cases.groupby(["admin2", "opened_month"]).size().unstack(fill_value=0)
    print(monthly)
  3. Diapositive 3 / 27

    La courbe, et la lecture évidente — En R

    library(dplyr)
    
    cases |> count(admin2, opened_month) |>
      tidyr::pivot_wider(names_from = opened_month, values_from = n, values_fill = 0)
  4. Diapositive 4 / 27

    La courbe, et la lecture évidente — En Python

    area = cases[cases["admin2"] == "Saint-Louis-du-Nord"]
    month = area["opened_month"].str[5:].astype(int)
    before = (month <= 6).sum() / 6
    after = (month >= 7).sum() / 6
    print(f"Jan-Jun: {before:.1f} cases a month")
    print(f"Jul-Dec: {after:.1f} cases a month  ({after / before - 1:+.0%})")
    Notes du présentateur
    La ligne d'une zone monte et reste haute.
  5. Diapositive 5 / 27

    La courbe, et la lecture évidente — En R

    cases |>
      filter(admin2 == "Saint-Louis-du-Nord") |>
      mutate(half = if_else(as.integer(substr(opened_month, 6, 7)) <= 6, "H1", "H2")) |>
      count(half) |> mutate(per_month = n / 6)
  6. Diapositive 6 / 27

    La courbe, et la lecture évidente

    • 5,8 dossiers par mois avant juillet, 10,2 après — une hausse de 74 % — tandis qu'aucune autre zone ne bouge de plus de…
    Notes du présentateur
    5,8 dossiers par mois avant juillet, 10,2 après — une hausse de 74 %, tandis qu'aucune autre zone ne bouge de plus de onze points dans un sens ou dans l'autre. La lecture évidente est que les incidents de protection à Saint-Louis-du-Nord ont augmenté de 74 % au second semestre. Cette lecture est fausse, et c'est le détournement le plus courant des données de protection.
  7. Diapositive 7 / 27

    Ce qu'un compte de dossiers compte

    Le compte dépend deCe qui change quand
    L'existence d'un service à portéeL'un ouvre, l'un ferme, une route est coupée
    Le fait que les gens le sachentUne campagne de sensibilisation a lieu
    La disposition à se confierLa confiance monte ou baisse ; une mauvaise expérience circule
    Le fait que quelqu'un ouvre un dossierEffectifs, charge de travail, pratique de référencement
    L'incidence dans la population—
    Notes du présentateur
    Un dossier existe quand une personne a atteint un service, a bien voulu se confier, et qu'un travailleur social a ouvert un fichier. Le compte est donc le produit de quatre choses, dont seule la dernière est ce que les gens y lisent :
  8. Diapositive 8 / 27

    Ce qu'un compte de dossiers compte

    • Les quatre premières ont bougé à Saint-Louis-du-Nord en juillet, parce qu'un service a ouvert — La cinquième n'est pas…
    Notes du présentateur
    Les quatre premières ont bougé à Saint-Louis-du-Nord en juillet, parce qu'un service a ouvert. La cinquième n'est pas mesurée par ce fichier et ne peut pas l'être.
  9. Diapositive 9 / 27

    Ce qu'un compte de dossiers compte — En Python

    print("Case count = incidence x reporting rate x service availability x recording")
    print("A change in the product does not tell you which factor moved.")
  10. Diapositive 10 / 27

    Ce qu'un compte de dossiers compte — En R

    # One equation, five unknowns, one observation.
  11. Diapositive 11 / 27

    Le test qui les distingue

    • Quelque chose a-t-il changé dans le service ? — L'indice le plus fort et le moins statistique
    • La composition a-t-elle changé ? — La part de protection générale à Saint-Louis-du-Nord passe de 31,4 % à 41,0 % tandis…
    Notes du présentateur
    Vous ne pouvez pas prouver à partir de la seule courbe qu'il s'agit d'un effet de signalement. Vous pouvez rassembler des indices, et trois vérifications sont généralement disponibles. Quelque chose a-t-il changé dans le service ? L'indice le plus fort et le moins statistique. Un nouveau service, un nouvel agent de proximité, un formulaire d'admission modifié ou un partenaire qui ferme produisent tous une marche d'escalier avec une date. La composition a-t-elle changé ? La part de protection générale à Saint-Louis-du-Nord passe de 31,4 % à 41,0 % tandis que la VBG baisse de 40,0 % à 32,8 % — les nouveaux arrivants penchent vers la catégorie la moins stigmatisée, ce à quoi ressemble un accès amélioré plutôt qu'une flambée de violence.
  12. Diapositive 12 / 27

    Le test qui les distingue — En Python

    def mix(frame):
        return frame["case_category"].value_counts(normalize=True).round(3)
    
    print("before July:", mix(area[month <= 6]).to_dict())
    print("after July: ", mix(area[month >= 7]).to_dict())
  13. Diapositive 13 / 27

    Le test qui les distingue — En R

    cases |> filter(admin2 == "Saint-Louis-du-Nord") |>
      mutate(half = if_else(as.integer(substr(opened_month, 6, 7)) <= 6, "H1", "H2")) |>
      count(half, case_category) |> mutate(share = n / sum(n), .by = half)
  14. Diapositive 14 / 27

    Le test qui les distingue

    • Les autres zones ont-elles bougé ? — Une hausse confinée à une zone avec une explication administrative est un effet de…
    Notes du présentateur
    Les autres zones ont-elles bougé ? Une hausse confinée à une zone avec une explication administrative est un effet de signalement. Une hausse dans toutes les zones au même moment a plus de chances d'être réelle, ou de venir d'un changement du système de rapportage.
  15. Diapositive 15 / 27

    Le test qui les distingue — En Python

    halves = cases.assign(half=(cases["opened_month"].str[5:].astype(int) > 6))
    shift = halves.groupby(["admin2", "half"]).size().unstack()
    shift["change"] = shift[True] / shift[False] - 1
    print((shift["change"] * 100).round(1).sort_values())
  16. Diapositive 16 / 27

    Le test qui les distingue — En R

    cases |> mutate(half = as.integer(substr(opened_month, 6, 7)) > 6) |>
      count(admin2, half) |> tidyr::pivot_wider(names_from = half, values_from = n)
  17. Diapositive 17 / 27

    Le test qui les distingue

    • Une zone à +74,3 % ; les cinq autres entre −9,4 % et +11,3 % — Une seule zone bougeant sept fois plus que la plus large…
    Notes du présentateur
    Une zone à +74,3 % ; les cinq autres entre −9,4 % et +11,3 %. Une seule zone bougeant sept fois plus que la plus large des autres a une cause administrative, et le travail est de la trouver plutôt que de publier une affirmation sur l'incidence.
  18. Diapositive 18 / 27

    Dites-le dans le rapport, dans la phrase à côté du nombre — Exemple

    Cases opened, Saint-Louis-du-Nord
    
      Jan-Jun    35 cases    5.8 per month
      Jul-Dec    61 cases   10.2 per month   +74%
    
      A case management service opened in the area in July. This figure measures
      the number of people who reached a service and disclosed; it is not a
      measure of the number of incidents. The rise is consistent with improved
      access and cannot be read as a rise in violence.
    
      The other five areas moved between -9% and +11% over the same period.
  19. Diapositive 19 / 27

    Dites-le dans le rapport, dans la phrase à côté du nombre

    • L'avertissement va à côté du nombre, non en note de bas de page — Une courbe de dossiers de protection sans cette…
    Notes du présentateur
    L'avertissement va à côté du nombre, non en note de bas de page. Une courbe de dossiers de protection sans cette phrase sera citée comme une tendance d'incidence dans la semaine, généralement par quelqu'un qui cite votre rapport fidèlement.
  20. Diapositive 20 / 27

    La conséquence que l'on manque — En Python

    outcomes = pd.DataFrame({
        "observation": ["cases rise", "cases fall"],
        "good reading": ["outreach and access improved",
                         "incidents fell"],
        "bad reading": ["violence increased",
                        "service became unreachable, or trust was lost"],
    })
    print(outcomes)
    Notes du présentateur
    Si un compte de dossiers mesure l'accès, alors un programme qui réussit devrait voir son compte de dossiers monter, et un compte qui baisse est au mieux ambigu.
  21. Diapositive 21 / 27

    La conséquence que l'on manque — En R

    # The same number supports opposite conclusions. The context decides.
  22. Diapositive 22 / 27

    La conséquence que l'on manque

    • Un programme de protection ne peut donc pas employer le volume de dossiers comme indicateur de performance dans un sens…
    Notes du présentateur
    Un programme de protection ne peut donc pas employer le volume de dossiers comme indicateur de performance dans un sens ni dans l'autre, et les indicateurs qui survivent sont ceux que ce cours a construits : aboutissement du circuit, délai d'accès au service, charge de dossiers, motifs de clôture. Chacun a un dénominateur qui n'est pas la population.
  23. Diapositive 23 / 27

    D'où vient réellement la prévalence

    • Des enquêtes de prévalence en population — conçues pour cela, avec une formation spécialisée des enquêteurs et des…
    • Jamais de données de service — à quelque niveau de sophistication que ce soit
    Notes du présentateur
    Énoncé clairement, car la question sera posée. Des enquêtes de prévalence en population, conçues pour cela, avec une formation spécialisée des enquêteurs et des protocoles éthiques qu'un jeu de données de service n'a pas. Elles sont coûteuses, rares, et sont le seul instrument qui réponde à la question. Jamais de données de service, à quelque niveau de sophistication que ce soit. Aucun ajustement du taux de signalement ne sauve un dénominateur qui vaut « les personnes ayant atteint un service ».
  24. Diapositive 24 / 27

    D'où vient réellement la prévalence — En Python

    print("Question: how many women in this district experienced violence this year?")
    print("Answerable from this dataset: no")
    print("Instrument that answers it: a population-based prevalence survey")
  25. Diapositive 25 / 27

    D'où vient réellement la prévalence — En R

    # Saying "we cannot answer that with this" is the answer.
  26. Diapositive 26 / 27

    La suite

    • La dernière leçon assemble le tout en un rapport de protection — y compris la section qui énonce quelles analyses ont été demandées et refusées, et pourquoi cette section a sa place dans le document plutôt que dans un courriel que personne ne conserve.
    Notes du présentateur
    La dernière leçon assemble le tout en un rapport de protection — y compris la section qui énonce quelles analyses ont été demandées et refusées, et pourquoi cette section a sa place dans le document plutôt que dans un courriel que personne ne conserve.
  27. Diapositive 27 / 27

    La suite

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