cassionAnalyse de données

Retour à la leçonLeçon 2 sur 8L'inscription et son dénominateur

En retard, et de plus en plus

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

    Ce que couvre cette leçon

    • La définition, et le contrôle d'étendue qui doit venir avant
    • Il se compose avec l'année d'études
    • Pourquoi cela compte : le lien avec l'abandon
    • La désagrégation qui ne donne rien
    • Rapportez le profil, non le chiffre principal
    • La suite
    Notes du présentateur
    Le retard d'âge vaut 17,0 % en première année et 50,8 % en sixième. Il monte parce que le redoublement le crée — 94,5 % des enfants ayant redoublé en 2023 sont en retard d'âge en 2024 — et parce qu'être en retard quadruple le risque de partir.
  2. Diapositive 2 / 26

    La définition, et le contrôle d'étendue qui doit venir avant — En Python

    import pandas as pd
    
    enrolment = pd.read_csv("school-enrolment-2024.v1.csv")
    print(enrolment["age_years"].describe().round(1))
    print(f"ages above 20: {(enrolment['age_years'] > 20).sum()}")
    Notes du présentateur
    Un élève est en retard d'âge lorsque son âge dépasse l'âge officiel, qui vaut ici le numéro de l'année plus cinq.
  3. Diapositive 3 / 26

    La définition, et le contrôle d'étendue qui doit venir avant — En R

    library(dplyr)
    enrolment |> summarise(min = min(age_years), max = max(age_years),
                           impossible = sum(age_years > 20))
  4. Diapositive 4 / 26

    La définition, et le contrôle d'étendue qui doit venir avant

    • Vingt et une lignes portent un âge supérieur à 20 dans un registre du primaire — SCH04 enregistre une partie de ses…
    Notes du présentateur
    Vingt et une lignes portent un âge supérieur à 20 dans un registre du primaire. SCH04 enregistre une partie de ses effectifs en mois, si bien qu'un enfant de neuf ans apparaît à 112. Une moyenne les absorberait ; un contrôle d'étendue les trouve, et la correction est une division et non une suppression.
  5. Diapositive 5 / 26

    La définition, et le contrôle d'étendue qui doit venir avant — En Python

    clean = enrolment[enrolment["age_years"] <= 20].copy()
    clean["official_age"] = clean["grade"] + 5
    clean["over_age"] = clean["age_years"] > clean["official_age"]
  6. Diapositive 6 / 26

    La définition, et le contrôle d'étendue qui doit venir avant — En R

    enrolment |> filter(age_years <= 20) |>
      mutate(official_age = grade + 5, over_age = age_years > official_age)
  7. Diapositive 7 / 26

    La définition, et le contrôle d'étendue qui doit venir avant

    • Faites le contrôle d'étendue avant l'indicateur, non après — Un âge de 112 est en retard pour toutes les années, si…
    Notes du présentateur
    Faites le contrôle d'étendue avant l'indicateur, non après. Un âge de 112 est en retard pour toutes les années, si bien qu'un indicateur calculé sur la colonne brute est techniquement exact pour vingt et un enfants et faux sur ce qu'il signifie.
  8. Diapositive 8 / 26

    Il se compose avec l'année d'études — En Python

    primary = clean[(clean["school_year"] == 2024) & clean["grade"].between(1, 6)]
    by_grade = primary.groupby("grade").agg(
        students=("student_id", "size"),
        over_age=("over_age", "mean"),
    )
    print((by_grade * [1, 100]).round(1))
  9. Diapositive 9 / 26

    Il se compose avec l'année d'études — En R

    primary |> summarise(n = n(), over_age = mean(over_age), .by = grade)
  10. Diapositive 10 / 26

    Il se compose avec l'année d'études

    AnnéeÂge officielÉlèvesEn retard d'âge
    165317,0 %
    2715325,5 %
    3824729,6 %
    4925836,8 %
    51020947,8 %
    61113250,8 %
  11. Diapositive 11 / 26

    Il se compose avec l'année d'études

    • Le retard d'âge triple entre la première et la sixième année — Deux mécanismes produisent cette forme et ce ne sont pas…
    • L'entrée tardive — place un enfant au-dessus de l'âge dès la première année et l'y maintient
    • Le redoublement — crée le retard d'âge pendant la scolarité
    Notes du présentateur
    Le retard d'âge triple entre la première et la sixième année. Deux mécanismes produisent cette forme et ce ne sont pas le même problème. L'entrée tardive place un enfant au-dessus de l'âge dès la première année et l'y maintient. Elle apparaît comme le plancher de 17,0 %, et l'intervention est l'inscription précoce. Le redoublement crée le retard d'âge pendant la scolarité. Il apparaît comme la montée, et l'intervention est entièrement différente.
  12. Diapositive 12 / 26

    Il se compose avec l'année d'études — En Python

    previous = clean[clean["school_year"] == 2023].set_index("student_id")
    current = clean[clean["school_year"] == 2024].copy()
    current["last_year"] = current["student_id"].map(previous["end_of_year_status"])
    
    print(current.groupby("last_year")["over_age"].agg(["mean", "size"]).round(3))
  13. Diapositive 13 / 26

    Il se compose avec l'année d'études — En R

    enrolment |>
      filter(age_years <= 20) |>
      select(student_id, school_year, grade, age_years, end_of_year_status) |>
      tidyr::pivot_wider(names_from = school_year,
                         values_from = c(grade, age_years, end_of_year_status))
  14. Diapositive 14 / 26

    Il se compose avec l'année d'études

    • 94,5 % des élèves ayant redoublé en 2023 sont en retard d'âge en 2024, contre 30,6 % de ceux qui ont été promus — Le…
    Notes du présentateur
    94,5 % des élèves ayant redoublé en 2023 sont en retard d'âge en 2024, contre 30,6 % de ceux qui ont été promus. Le redoublement ne corrèle pas avec le retard d'âge ; il le cause, avec un an de décalage, et le registre permet d'observer le mécanisme plutôt que de l'inférer. Notez que la comparaison doit se faire entre années. En 2023 un redoublant n'est pas encore en retard d'âge — il est dans son année à l'âge normal, et l'année supplémentaire apparaît en septembre suivant.
  15. Diapositive 15 / 26

    Pourquoi cela compte : le lien avec l'abandon — En Python

    year23 = clean[clean["school_year"] == 2023]
    dropout = year23.groupby("over_age")["end_of_year_status"].apply(
        lambda s: (s == "dropped-out").mean()
    )
    counts = year23.groupby("over_age").size()
    print(pd.DataFrame({"dropout": (dropout * 100).round(1), "n": counts}))
  16. Diapositive 16 / 26

    Pourquoi cela compte : le lien avec l'abandon — En R

    enrolment |> filter(school_year == 2023) |>
      summarise(dropout = mean(end_of_year_status == "dropped-out"),
                n = n(), .by = over_age)
  17. Diapositive 17 / 26

    Pourquoi cela compte : le lien avec l'abandon

    ÉlèvesOnt abandonné
    En retard d'âge47819,5 %
    À l'âge attendu8144,8 %
  18. Diapositive 18 / 26

    Pourquoi cela compte : le lien avec l'abandon

    • Être en retard quadruple le risque de partir — et c'est ce qui boucle la chaîne : un enfant redouble, prend du retard…
    • Le redoublement n'est donc pas une intervention neutre — Il est présenté comme une seconde chance et il augmente de…
    Notes du présentateur
    Être en retard quadruple le risque de partir, et c'est ce qui boucle la chaîne : un enfant redouble, prend du retard d'âge, et devient alors bien plus susceptible d'abandonner que ce que le redoublement visait à prévenir. Le redoublement n'est donc pas une intervention neutre. Il est présenté comme une seconde chance et il augmente de façon mesurable la probabilité de partir tout à fait. Ce constat s'obtient à partir de deux colonnes d'un registre, et c'est l'argument le plus fort que ce jeu de données soutient.
  19. Diapositive 19 / 26

    La désagrégation qui ne donne rien — En Python

    for column in ("sex", "disability_reported", "displacement_status"):
        print(primary.groupby(column, dropna=False)["over_age"].agg(
            ["mean", "size"]).round(3), "\n")
    Notes du présentateur
    Le retard d'âge est inhabituel parmi les indicateurs éducatifs en ce que les ventilations évidentes montrent très peu.
  20. Diapositive 20 / 26

    La désagrégation qui ne donne rien — En R

    primary |> summarise(over_age = mean(over_age), n = n(), .by = sex)
  21. Diapositive 21 / 26

    La désagrégation qui ne donne rien

    VentilationEn retard d'âgen
    Garçons39,2 %510
    Filles33,8 %542
    Handicap signalé33,7 %89
    Sans handicap signalé36,7 %963
  22. Diapositive 22 / 26

    La désagrégation qui ne donne rien

    • Cinq points entre garçons et filles, sur 510 et 542 élèves — C'est à la limite de ce que produit la variation…
    • Le handicap montre trois points en sens inverse sur 89 élèves — ce qui est du bruit sur un dénominateur aussi petit
    • Une désagrégation qui ne montre presque rien est un résultat — Le retard d'âge est ici un phénomène de système porté…
    Notes du présentateur
    Cinq points entre garçons et filles, sur 510 et 542 élèves. C'est à la limite de ce que produit la variation d'échantillonnage, donc calculez l'intervalle avant d'écrire la phrase — la machinerie du cours sur les enquêtes, sur exactement le type d'écart qui se publie comme un constat et disparaît au passage suivant. Le handicap montre trois points en sens inverse sur 89 élèves, ce qui est du bruit sur un dénominateur aussi petit. Une désagrégation qui ne montre presque rien est un résultat. Le retard d'âge est ici un phénomène de système porté par le redoublement et l'entrée tardive, non une inéquité de groupe — et le dire est plus utile que de chasser un sous-groupe jusqu'à en trouver un.
  23. Diapositive 23 / 26

    Rapportez le profil, non le chiffre principal — Exemple

    Over-age enrolment, primary, 2024
    
      Overall                     36.4%   383 of 1,052 primary enrolees
      Grade 1                     17.0%   the late-entry floor
      Grade 6                     50.8%   after five years of repetition
      Repeated in 2023            94.5%   over-age in 2024, against 30.6% promoted
    
      Dropout, over-age           19.5%   against 4.8% in-age (2023 cohort)
    
      21 ages recorded in months at SCH04, corrected by division.
      Sex difference is 39.2% (boys) against 33.8% (girls); report with an
      interval or not at all.
  24. Diapositive 24 / 26

    Rapportez le profil, non le chiffre principal

    • Le profil par année est le livrable — car 36,4 % au total pourrait signifier une entrée tardive uniforme ou un…
    Notes du présentateur
    Le profil par année est le livrable, car 36,4 % au total pourrait signifier une entrée tardive uniforme ou un redoublement qui s'accumule, et ces deux cas appellent des programmes différents.
  25. Diapositive 25 / 26

    La suite

    • Tous les enfants de cette leçon sont inscrits.
    Notes du présentateur
    Tous les enfants de cette leçon sont inscrits. Savoir s'ils sont en classe relève d'un autre registre et d'un autre nombre — et la leçon suivante en trouve deux, distants de vingt-six points, dans le même fichier.
  26. Diapositive 26 / 26

    La suite

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