cassionAnalyse de données

Retour à la leçonLeçon 6 sur 8Quelles covariables ont leur place

Trois réponses honnêtes et une qui est seule de son côté

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

    Ce que couvre cette leçon

    • Le même coefficient, quatre erreurs-types
    • Ce qu'ajoute une constante aléatoire
    • Choisir parmi les trois
    • Des prédicteurs à deux niveaux
    • Trois niveaux, et quand s'arrêter
    • Rapportez-le en entier
    • La suite
    Notes du présentateur
    MCO naïfs, erreurs-types robustes aux grappes, constante aléatoire et agrégation au niveau école donnent des erreurs-types de 0,88, 1,46, 1,48 et 1,53 point. Trois d'entre elles concordent et la quatrième est celle que produit tout ajustement par défaut.
  2. Diapositive 2 / 22

    Le même coefficient, quatre erreurs-types — En Python

    import pandas as pd
    import statsmodels.formula.api as smf
    
    naive = smf.ols("rate ~ feeding_programme", data=per_student).fit()
    robust = naive.get_robustcov_results(cov_type="cluster",
                                         groups=per_student["school_id"])
    
    mixed = smf.mixedlm("rate ~ feeding_programme", data=per_student,
                        groups=per_student["school_id"]).fit()
    
    by_school = (per_student.groupby(["school_id", "feeding_programme"])["rate"]
                 .mean().reset_index())
    aggregated = smf.ols("rate ~ feeding_programme", data=by_school).fit()
    Notes du présentateur
    Le cours de statistiques a établi que la cantine avait été attribuée à 24 écoles et mesurée sur 1 200 enfants. Voici ce que produit chaque façon de traiter cela.
  3. Diapositive 3 / 22

    Le même coefficient, quatre erreurs-types — En R

    library(lme4); library(sandwich); library(lmtest)
    
    naive      <- lm(rate ~ feeding_programme, data = per_student)
    robust     <- coeftest(naive, vcov = vcovCL, cluster = ~school_id)
    mixed      <- lmer(rate ~ feeding_programme + (1 | school_id), data = per_student)
    aggregated <- lm(rate ~ feeding_programme, data = by_school)
  4. Diapositive 4 / 22

    Le même coefficient, quatre erreurs-types

    ApprocheCoefficientETtn
    MCO naïfs+4,93 pts0,885,631 200
    ET robustes aux grappes+4,93 pts1,463,381 200
    Constante aléatoire+5,10 pts1,483,441 200
    MCO au niveau école+5,21 pts1,533,4124
  5. Diapositive 5 / 22

    Le même coefficient, quatre erreurs-types

    • Trois des quatre concordent et une non — Les coefficients s'étalent sur 0,3 point ; les trois erreurs-types honnêtes…
    • C'est la forme à attendre — Le regroupement en grappes change rarement beaucoup une estimation et change couramment…
    Notes du présentateur
    Trois des quatre concordent et une non. Les coefficients s'étalent sur 0,3 point ; les trois erreurs-types honnêtes sur 0,07 ; et la naïve est 40 % plus petite que n'importe laquelle d'entre elles. C'est la forme à attendre. Le regroupement en grappes change rarement beaucoup une estimation et change couramment beaucoup sa précision, et les trois corrections sont trois chemins vers la même destination plutôt que trois réponses concurrentes.
  6. Diapositive 6 / 22

    Ce qu'ajoute une constante aléatoire — En Python

    print(mixed.summary())
    print(f"between-school variance: {float(mixed.cov_re.iloc[0, 0]):.5f}")
    print(f"residual variance:       {mixed.scale:.5f}")
    Notes du présentateur
    Les erreurs-types robustes aux grappes corrigent l'inférence et ne disent rien de la structure. Une constante aléatoire l'estime.
  7. Diapositive 7 / 22

    Ce qu'ajoute une constante aléatoire — En R

    VarCorr(mixed)
  8. Diapositive 8 / 22

    Ce qu'ajoute une constante aléatoire

    ModèleVariance inter-écolesVariance résiduelleCCI
    Constante seule0,001420,020420,065
    + cantine0,000810,020420,038
  9. Diapositive 9 / 22

    Ce qu'ajoute une constante aléatoire

    • La cantine explique 42,8 % de la variance inter-écoles et rien de la variance intra-école — ce qui est exactement ce…
    Notes du présentateur
    La cantine explique 42,8 % de la variance inter-écoles et rien de la variance intra-école, ce qui est exactement ce que devrait faire un programme de niveau école et vaut d'être vérifié parce que c'est une façon d'attraper un modèle mal spécifié. Le CCI à constante seule de 0,065 est la même quantité que le cours de statistiques calculait à la main depuis les carrés moyens, avec 0,060. Deux estimateurs, deux réponses légèrement différentes, une conclusion — environ six pour cent de la variation de présence est entre écoles, ce qui, à cinquante enfants par école, suffit à quadrupler la variance d'une comparaison naïve.
  10. Diapositive 10 / 22

    Choisir parmi les trois

    EmployezQuandCoût
    Agréger à la grappePeu de grappes ; l'exposition est de niveau grappeUne grande école compte autant qu'une petite
    ET robustes aux grappesBeaucoup de grappes (30+) ; vous voulez le modèle individuelPeu fiables en dessous d'une trentaine de grappes
    Constante aléatoireVous voulez les composantes de variance, ou des prédicteurs aux deux niveauxSuppose l'effet aléatoire non corrélé aux prédicteurs
    Notes du présentateur
    Les trois corrections ne sont pas interchangeables, et le choix se décide généralement par le nombre de grappes et par ce qui varie à quel niveau.
  11. Diapositive 11 / 22

    Choisir parmi les trois

    • Avec 24 grappes, agrégez ou ajustez la constante aléatoire, et dites laquelle — Le sandwich robuste est l'outil…
    • Quand l'exposition ne varie qu'entre grappes, les trois convergent — ce que montre le tableau ci-dessus
    Notes du présentateur
    Avec 24 grappes, agrégez ou ajustez la constante aléatoire, et dites laquelle. Le sandwich robuste est l'outil standard et c'est celui qui se comporte le plus mal ici : son asymptotique exige plus de groupes que ce protocole n'en a, et il s'exécutera sans vous prévenir. Quand l'exposition ne varie qu'entre grappes, les trois convergent, ce que montre le tableau ci-dessus. Elles se séparent quand un prédicteur varie à l'intérieur des grappes — et la constante aléatoire fait alors un travail que les deux autres ne peuvent pas faire.
  12. Diapositive 12 / 22

    Des prédicteurs à deux niveaux — En Python

    two_level = smf.mixedlm(
        "rate ~ feeding_programme + age_years + disability_reported",
        data=d, groups=d["school_id"]).fit()
    print(two_level.summary().tables[1])
    Notes du présentateur
    C'est là qu'un modèle multiniveau cesse d'être une correction et devient un modèle.
  13. Diapositive 13 / 22

    Des prédicteurs à deux niveaux — En R

    lmer(rate ~ feeding_programme + age_years + disability_reported +
           (1 | school_id), data = d)
  14. Diapositive 14 / 22

    Des prédicteurs à deux niveaux

    • feeding_programme ne varie qu'entre écoles. age_years et disability_reported varient à l'intérieur — Un seul…
    • Le mode d'échec est de mettre une exposition de niveau grappe dans un modèle sans terme de grappe — C'est la ligne…
    Notes du présentateur
    feeding_programme ne varie qu'entre écoles. age_years et disability_reported varient à l'intérieur. Un seul modèle peut porter les deux, et la constante aléatoire est ce qui le permet : les prédicteurs intra-école sont estimés depuis la variation intra-école et le prédicteur inter-écoles depuis la variation inter-écoles, sans que l'un contamine l'erreur-type de l'autre. Le mode d'échec est de mettre une exposition de niveau grappe dans un modèle sans terme de grappe. C'est la ligne naïve du premier tableau, et c'est le comportement par défaut de tout logiciel.
  15. Diapositive 15 / 22

    Trois niveaux, et quand s'arrêter — En Python

    # Two grouping levels: households nested within enumeration areas.
    smf.mixedlm("outcome ~ x", data=survey,
                groups=survey["ea_id"], re_formula="1").fit()
    Notes du présentateur
    Les enfants sont dans des ménages, les ménages dans des villages, les villages dans des districts.
  16. Diapositive 16 / 22

    Trois niveaux, et quand s'arrêter — En R

    lmer(outcome ~ x + (1 | ea_id / household_id), data = survey)
  17. Diapositive 17 / 22

    Trois niveaux, et quand s'arrêter

    • Ajoutez un niveau quand quelque chose est attribué ou mesuré à ce niveau et que vous en avez assez d'unités — Trois…
    • N'ajoutez pas un niveau par souci d'ordre — Un niveau à quatre groupes ajoute un paramètre inestimable et le faux…
    Notes du présentateur
    Ajoutez un niveau quand quelque chose est attribué ou mesuré à ce niveau et que vous en avez assez d'unités. Trois niveaux avec six districts au sommet n'estimeront pas une variance de district digne d'être rapportée — le niveau supérieur a besoin d'assez de groupes pour la même raison que la leçon sur les comparaisons multiples avait besoin d'assez de tests. N'ajoutez pas un niveau par souci d'ordre. Un niveau à quatre groupes ajoute un paramètre inestimable et le faux sentiment d'avoir traité quelque chose.
  18. Diapositive 18 / 22

    Rapportez-le en entier — Exemple (suite)

    Attendance and school feeding, multilevel analysis
    
      Linear mixed model, 1,200 students in 24 schools.
      rate ~ feeding_programme + (1 | school_id)
    
      Feeding programme    +5.10 points   95% CI +2.20 to +8.00
    
      Between-school SD    0.028      Residual SD  0.143
      ICC 0.038 with the programme term; 0.065 without it, so the programme
      accounts for 43% of the between-school variance.
    
      The naive single-level model gives +4.93 points with a standard error of
      0.88 rather than 1.48. It is not reported: it treats 50 children in one
      school as 50 independent observations.
    
      Cluster-robust standard errors on the single-level model (+4.93, SE 1.46)
  19. Diapositive 19 / 22

    Rapportez-le en entier — Exemple (suite)

      and school-level aggregation (+5.21, SE 1.53) give the same answer. With
      24 clusters the robust sandwich is at the edge of its assumptions and is
      reported as a check rather than as the headline.
    
      Observational. Schools were not randomised into the programme.
  20. Diapositive 20 / 22

    Rapportez-le en entier

    • Rapporter les trois fait quatre lignes et coupe court à l'objection évidente — que le résultat dépendrait de la méthode
    Notes du présentateur
    Rapporter les trois fait quatre lignes et coupe court à l'objection évidente — que le résultat dépendrait de la méthode. Il n'en dépend pas, et le montrer coûte moins cher que d'en débattre.
  21. Diapositive 21 / 22

    La suite

    • Cette leçon a accordé le modèle à la façon dont le programme a été attribué.
    Notes du présentateur
    Cette leçon a accordé le modèle à la façon dont le programme a été attribué. La suivante l'accorde à la façon dont l'échantillon a été tiré, sur une enquête aux strates délibérément inégales — et trouve des coefficients qui traversent le seuil de significativité dans les deux sens quand les poids entrent.
  22. Diapositive 22 / 22

    La suite

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