cassionAnalyse de données

Retour à la leçonLeçon 3 sur 8Le circuit

Les 212 cas qui ne sont pas un échec

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

    Ce que couvre cette leçon

    • Le circuit compte quatre portes
    • Le consentement n'est pas une mesure de performance
    • Rapportez les trois nombres
    • Là où le consentement n'est pas la porte
    • Les contradictions à résoudre d'abord
    • La suite
    Notes du présentateur
    88,5 % de ces cas ont consenti à un référencement. Les 212 qui ne l'ont pas fait sont hors du dénominateur de performance, car une personne qui refuse un référencement exerce un droit plutôt que de révéler une lacune de service — et les compter comme des échecs fait deux erreurs à la fois.
  2. Diapositive 2 / 19

    Le circuit compte quatre portes — En Python

    import pandas as pd
    
    referrals = pd.read_csv("protection-referrals-2024.v1.csv")
    
    gates = {
        "cases recorded": len(referrals),
        "consented to referral": referrals["consent_to_refer"].sum(),
        "referral made": (referrals["consent_to_refer"] &
                          referrals["referral_made"]).sum(),
        "referral accepted": (referrals["referral_made"] &
                              referrals["referral_accepted"]).sum(),
        "reached a service": (referrals["referral_accepted"] &
                              referrals["days_to_first_service"].notna()).sum(),
    }
    for name, count in gates.items():
        print(f"{name:24} {count:>5}")
  3. Diapositive 3 / 19

    Le circuit compte quatre portes — En R

    library(dplyr)
    
    referrals |> summarise(
      cases = n(),
      consented = sum(consent_to_refer),
      made = sum(consent_to_refer & referral_made),
      accepted = sum(referral_made & referral_accepted),
      reached = sum(referral_accepted & !is.na(days_to_first_service))
    )
  4. Diapositive 4 / 19

    Le circuit compte quatre portes

    PorteCasPart de la porte précédente
    Cas enregistrés1 850—
    Consentement au référencement1 63888,5 %
    Référencement effectué1 14269,7 %
    Référencement accepté75766,3 %
    Service atteint71794,7 %
    Notes du présentateur
    C'est la cascade du premier cours du module 4, dans un autre secteur — des dénominateurs enchaînés, chaque porte mesurée face à la précédente. L'arithmétique est la même. La première porte ne l'est pas.
  5. Diapositive 5 / 19

    Le consentement n'est pas une mesure de performance

    • Comme des échecs — L'aboutissement de bout en bout devient 717 / 1 850 = 38,8 %
    • Comme des exclusions — L'aboutissement devient 717 / 1 638 = 43,8 % sur les cas ayant consenti
    • Comme un constat à part entière — 11,5 % ont refusé, et pourquoi est une question de conception du service qui mérite…
    Notes du présentateur
    Les 212 cas sans consentement peuvent être comptés de trois façons, et une seule est défendable. Comme des échecs. L'aboutissement de bout en bout devient 717 / 1 850 = 38,8 %. Cela traite la décision d'une personne comme un manquement du programme. Comme des exclusions. L'aboutissement devient 717 / 1 638 = 43,8 % sur les cas ayant consenti. C'est le chiffre de performance. Comme un constat à part entière. 11,5 % ont refusé, et pourquoi est une question de conception du service qui mérite d'être posée séparément.
  6. Diapositive 6 / 19

    Le consentement n'est pas une mesure de performance — En Python

    consenting = referrals["consent_to_refer"]
    reached = referrals["referral_accepted"] & referrals["days_to_first_service"].notna()
    
    print(f"on all cases:        {reached.sum() / len(referrals):.1%}")
    print(f"on consenting cases: {reached.sum() / consenting.sum():.1%}")
    print(f"declined:            {(~consenting).sum()} ({(~consenting).mean():.1%})")
  7. Diapositive 7 / 19

    Le consentement n'est pas une mesure de performance — En R

    referrals |> summarise(
      all_cases = mean(referral_accepted & !is.na(days_to_first_service)),
      consenting = sum(referral_accepted & !is.na(days_to_first_service)) / sum(consent_to_refer)
    )
  8. Diapositive 8 / 19

    Le consentement n'est pas une mesure de performance

    • Compter un cas sans consentement comme un échec du circuit fait deux erreurs à la fois — Cela fausse la performance de…
    • Les deux comptent et la seconde davantage — Un indicateur qui traite le refus comme un échec crée une pression sur les…
    Notes du présentateur
    Compter un cas sans consentement comme un échec du circuit fait deux erreurs à la fois. Cela fausse la performance de cinq points, et cela enregistre la décision autonome d'une personne comme un défaut du système qui lui a offert un choix. Les deux comptent et la seconde davantage. Un indicateur qui traite le refus comme un échec crée une pression sur les travailleurs sociaux pour obtenir le consentement, ce qui est l'inverse du sens même du consentement éclairé.
  9. Diapositive 9 / 19

    Rapportez les trois nombres — Exemple

    Referral pathway, 1,850 cases
    
      Consented to referral            88.5%   1,638
      Declined                         11.5%     212     reported separately
      Reached a service, of consenting 43.8%     717
      Reached a service, of all cases  38.8%             for reference only
  10. Diapositive 10 / 19

    Rapportez les trois nombres

    • Publiez le taux de consentement comme une ligne à part — Un taux de consentement qui baisse est un signal sur la…
    Notes du présentateur
    Publiez le taux de consentement comme une ligne à part. Un taux de consentement qui baisse est un signal sur la confiance envers le service, et il est invisible si le consentement ne sert jamais que de filtre.
  11. Diapositive 11 / 19

    Là où le consentement n'est pas la porte

    • Les cas de protection de l'enfance concernant un jeune enfant — relèvent d'une détermination de l'intérêt supérieur…
    • Les urgences vitales — donnent lieu à un référencement salvateur sans attendre un consentement au transfert de données
    Notes du présentateur
    Deux situations où ce raisonnement ne s'applique pas, à énoncer pour que la règle ne soit pas sur-appliquée. Les cas de protection de l'enfance concernant un jeune enfant relèvent d'une détermination de l'intérêt supérieur plutôt que du consentement de l'enfant, et le champ de consentement enregistre la décision de l'accompagnant. La logique du dénominateur est la même et le fondement éthique est différent. Les urgences vitales donnent lieu à un référencement salvateur sans attendre un consentement au transfert de données. Ces cas figurent dans le circuit et la colonne de consentement ne les gouverne pas.
  12. Diapositive 12 / 19

    Là où le consentement n'est pas la porte — En Python

    by_category = referrals.groupby("case_category")["consent_to_refer"].agg(
        ["mean", "size"]
    )
    print((by_category * [100, 1]).round(1))
  13. Diapositive 13 / 19

    Là où le consentement n'est pas la porte — En R

    referrals |> summarise(consent = mean(consent_to_refer), n = n(),
                           .by = case_category)
  14. Diapositive 14 / 19

    Là où le consentement n'est pas la porte

    • Vérifiez si le taux de consentement diffère par catégorie avant d'appliquer une règle unique à toutes — Là où il…
    Notes du présentateur
    Vérifiez si le taux de consentement diffère par catégorie avant d'appliquer une règle unique à toutes. Là où il diffère, la décision de dénominateur peut devoir différer aussi, et le rapport doit dire quels cas ont été traités de quelle façon.
  15. Diapositive 15 / 19

    Les contradictions à résoudre d'abord — En Python

    impossible = (referrals["days_to_first_service"].notna() &
                  ~referrals["referral_accepted"])
    no_referral = impossible & ~referrals["referral_made"]
    no_consent = impossible & ~referrals["consent_to_refer"]
    
    print(f"time to service but referral not accepted: {impossible.sum()}")
    print(f"  of which no referral was made at all:    {no_referral.sum()}")
    print(f"  of which there was no consent:           {no_consent.sum()}")
  16. Diapositive 16 / 19

    Les contradictions à résoudre d'abord — En R

    referrals |> filter(!is.na(days_to_first_service), !referral_accepted) |>
      count(referral_made, consent_to_refer)
  17. Diapositive 17 / 19

    Les contradictions à résoudre d'abord

    • Onze cas consignent un délai jusqu'au premier service sur un référencement qui n'a jamais été accepté — Six d'entre eux…
    Notes du présentateur
    Onze cas consignent un délai jusqu'au premier service sur un référencement qui n'a jamais été accepté. Six d'entre eux ne portent aucun référencement effectué, et un n'avait pas de consentement. Ce sont des contradictions logiques et elles doivent être résolues avant qu'un taux d'aboutissement quelconque soit crédible, car chacune est simultanément un numérateur et un non-dénominateur. La résolution est un jugement et doit être consignée. Croire la date de service implique que les champs du circuit sont peu fiables ; croire les champs du circuit implique que la date de service est une faute de saisie. Dites ce que vous avez cru et combien de cas cela a déplacés.
  18. Diapositive 18 / 19

    La suite

    • Le circuit perd des cas à chaque porte.
    Notes du présentateur
    Le circuit perd des cas à chaque porte. La leçon suivante trouve la porte où la plus grande part se perd, et le groupe de personnes pour qui chaque porte est pire.
  19. Diapositive 19 / 19

    La suite

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