cassionAnalyse de données

Retour à la leçonLeçon 7 sur 8Le plan et l'ajustement

Deux coefficients traversent le seuil et un le retraverse

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

    • Le plan sous lequel l'échantillon a été tiré
    • Ce que les poids font à une estimation
    • Le même modèle, pondéré et non
    • Poids, grappes et strates sont trois choses distinctes
    • Quand laisser les poids de côté
    • Rapportez-le en entier
    • La suite
    Notes du présentateur
    La strate rurale isolée pèse 11 % des ménages et un tiers des entretiens. Ajustez le modèle sans pondération et l'élevage ressemble à un facteur de risque significatif ; pondérez-le et il cesse de l'être, tandis que la taille du ménage et le statut de retourné se mettent à l'être.
  2. Diapositive 2 / 26

    Le plan sous lequel l'échantillon a été tiré — En Python

    import pandas as pd
    
    survey = pd.read_csv("household-survey-2025.v1.csv")
    frame = pd.read_csv("household-survey-frame-2025.v1.csv")
    
    print(frame.groupby("stratum")["households"].sum())
    print(survey.groupby("stratum").size())
  3. Diapositive 3 / 26

    Le plan sous lequel l'échantillon a été tiré — En R

    library(dplyr)
    frame |> summarise(households = sum(households), .by = stratum)
    survey |> count(stratum)
  4. Diapositive 4 / 26

    Le plan sous lequel l'échantillon a été tiré

    StrateMénages du sondagePartEntretiensPart
    Rurale accessible28 95851,3 %33733,8 %
    Urbaine21 27037,7 %31631,7 %
    Rurale isolée6 20011,0 %34334,4 %
  5. Diapositive 5 / 26

    Le plan sous lequel l'échantillon a été tiré

    • La strate rurale isolée pèse 11,0 % de la population et 34,4 % de l'échantillon — C'est un choix de plan délibéré — le…
    Notes du présentateur
    La strate rurale isolée pèse 11,0 % de la population et 34,4 % de l'échantillon. C'est un choix de plan délibéré — le cours sur les enquêtes explique pourquoi on suréchantillonne une petite strate dont on a besoin d'estimations — et cela signifie que chaque nombre non pondéré tiré de ce fichier décrit une population qui n'existe pas.
  6. Diapositive 6 / 26

    Ce que les poids font à une estimation — En Python

    stratum_households = frame.groupby("stratum")["households"].sum()
    base_weight = stratum_households / (25 * 14)
    interviewed = frame[frame["selected"]].set_index("ea_id")["households_interviewed"]
    
    survey["weight"] = (survey["stratum"].map(base_weight)
                        * 14 / survey["ea_id"].map(interviewed))
    assert abs(survey["weight"].sum() - frame["households"].sum()) < 1
    
    unweighted = survey["food_insecure"].mean()
    weighted = np.average(survey["food_insecure"], weights=survey["weight"])
    print(f"unweighted {unweighted:.1%}   weighted {weighted:.1%}")
  7. Diapositive 7 / 26

    Ce que les poids font à une estimation — En R

    survey <- survey |>
      mutate(weight = base_weight[stratum] * 14 / households_interviewed)
    
    c(unweighted = mean(survey$food_insecure),
      weighted   = weighted.mean(survey$food_insecure, survey$weight))
  8. Diapositive 8 / 26

    Ce que les poids font à une estimation

    • 32,8 % sans pondération, 29,1 % avec — La strate rurale isolée a l'insécurité alimentaire la plus élevée (46,4 %), et…
    • Une régression ajustée sur ce fichier sans poids hérite exactement de ce problème — et cela ne se corrige pas en…
    Notes du présentateur
    32,8 % sans pondération, 29,1 % avec. La strate rurale isolée a l'insécurité alimentaire la plus élevée (46,4 %), et la surreprésenter trois fois tire le chiffre national vers le haut de 3,7 points. Une régression ajustée sur ce fichier sans poids hérite exactement de ce problème, et cela ne se corrige pas en ajoutant stratum comme covariable — cela change la question de « quelle est l'association dans la population » à « quelle est-elle à l'intérieur des strates ». Les deux sont légitimes ; une seule est ce que signifie une estimation nationale.
  9. Diapositive 9 / 26

    Le même modèle, pondéré et non — En Python

    import statsmodels.api as sm
    import statsmodels.formula.api as smf
    
    FORMULA = ("food_insecure ~ improved_water_source + displacement_status"
               " + main_livelihood + household_size")
    
    plain = smf.glm(FORMULA, data=d, family=sm.families.Binomial()).fit(
        cov_type="cluster", cov_kwds={"groups": d["ea_id"]})
    
    weighted = smf.glm(FORMULA, data=d, family=sm.families.Binomial(),
                       freq_weights=d["weight"]).fit(
        cov_type="cluster", cov_kwds={"groups": d["ea_id"]})
  10. Diapositive 10 / 26

    Le même modèle, pondéré et non — En R

    library(survey)
    
    design <- svydesign(ids = ~ea_id, strata = ~stratum, weights = ~weight,
                        data = survey, nest = TRUE)
    svyglm(food_insecure ~ improved_water_source + displacement_status +
             main_livelihood + household_size, design = design,
           family = quasibinomial())
  11. Diapositive 11 / 26

    Le même modèle, pondéré et non

    TermeRC non pondéréRC pondéréBouge ?
    Source d'eau améliorée0,75 (0,55–1,03)0,74 (0,51–1,08)—
    Déplacement : retourné0,56 (0,25–1,26)0,39 (0,15–0,97)devient significatif
    Moyen d'existence : agriculture1,55 (1,03–2,34)1,69 (1,04–2,75)—
    Moyen d'existence : élevage1,51 (1,04–2,18)1,26 (0,73–2,18)cesse d'être significatif
    Moyen d'existence : salarié0,41 (0,22–0,77)0,45 (0,24–0,87)—
    Taille du ménage1,04 (0,98–1,11)1,08 (1,01–1,16)devient significatif
  12. Diapositive 12 / 26

    Le même modèle, pondéré et non

    • Trois coefficients changent de côté du seuil, dans les deux sens — La pondération n'est pas une correction qui…
    • Les moyens d'existence par l'élevage sont concentrés dans la strate isolée suréchantillonnée — Sans pondération, ils…
    Notes du présentateur
    Trois coefficients changent de côté du seuil, dans les deux sens. La pondération n'est pas une correction qui affaiblit tout ou renforce tout — elle repondère les ménages depuis lesquels l'association est estimée, et la réponse bouge partout où ces ménages diffèrent. Les moyens d'existence par l'élevage sont concentrés dans la strate isolée suréchantillonnée. Sans pondération, ils portent un tiers de l'influence de l'échantillon ; pondérés, ils portent leurs 11 % réels, et l'association se dissipe.
  13. Diapositive 13 / 26

    Poids, grappes et strates sont trois choses distinctes

    Élément du planCorrigeSi vous l'omettez
    PoidsL'estimationLes estimations décrivent l'échantillon, non la population
    GrappesL'erreur-typeErreurs-types trop petites, comme à la leçon précédente
    StratesL'erreur-typeErreurs-types un peu trop grandes — l'erreur conservatrice
    Notes du présentateur
    Ils arrivent ensemble et font trois travaux différents, et un modèle peut aisément en réussir un et rater les deux autres.
  14. Diapositive 14 / 26

    Poids, grappes et strates sont trois choses distinctes

    • Les poids changent le coefficient ; les grappes et les strates changent son intervalle — C'est la même distinction…
    Notes du présentateur
    Les poids changent le coefficient ; les grappes et les strates changent son intervalle. C'est la même distinction qu'ajustement contre grappes à la leçon 2, arrivant par une autre porte, et c'est celle à retenir.
  15. Diapositive 15 / 26

    Poids, grappes et strates sont trois choses distinctes — En Python

    print(f"clusters: {d['ea_id'].nunique()} enumeration areas")
    print(f"strata:   {d['stratum'].nunique()}")
    print(f"weights:  {d['weight'].min():.1f} to {d['weight'].max():.1f}")
  16. Diapositive 16 / 26

    Poids, grappes et strates sont trois choses distinctes — En R

    # survey::svydesign wants all three; a glm with weights= handles only one.
  17. Diapositive 17 / 26

    Poids, grappes et strates sont trois choses distinctes

    • glm(..., weights=) n'est pas une régression pondérée par le plan — Elle applique les poids et calcule les…
    Notes du présentateur
    glm(..., weights=) n'est pas une régression pondérée par le plan. Elle applique les poids et calcule les erreurs-types comme si chaque observation était indépendante et les poids des effectifs. Employez survey::svyglm en R, et en Python passez à la fois freq_weights et une covariance par grappes — ou acceptez que l'intervalle soit faux et dites-le.
  18. Diapositive 18 / 26

    Quand laisser les poids de côté

    • Une question intra-strate — « Parmi les ménages ruraux isolés, une source d'eau améliorée va-t-elle avec moins…
    • Un modèle dont les covariables contiennent tout ce dont les poids sont faits — Si la strate et la probabilité de…
    Notes du présentateur
    Deux cas, et aucun n'est « les poids ont fait disparaître mon résultat ». Une question intra-strate. « Parmi les ménages ruraux isolés, une source d'eau améliorée va-t-elle avec moins d'insécurité alimentaire ? » est une question sur cette strate, et le poids de sondage à l'intérieur d'une strate est de toute façon quasi constant. Un modèle dont les covariables contiennent tout ce dont les poids sont faits. Si la strate et la probabilité de sélection sont entièrement captées par les covariables, les estimations pondérée et non pondérée répondent à la même question et la non pondérée est plus précise. Vérifiez-le plutôt que de le supposer : ajustez les deux, et si elles diffèrent sensiblement, les covariables n'ont pas capté le plan.
  19. Diapositive 19 / 26

    Quand laisser les poids de côté — En Python

    print(f"unweighted {plain.params['main_livelihood[T.livestock]']:.3f}")
    print(f"weighted   {weighted.params['main_livelihood[T.livestock]']:.3f}")
  20. Diapositive 20 / 26

    Quand laisser les poids de côté — En R

    # A large gap between the two is evidence the design is not in the model.
  21. Diapositive 21 / 26

    Quand laisser les poids de côté

    • Un grand écart entre l'ajustement pondéré et le non pondéré est en soi un diagnostic — et c'est la vérification à faire…
    Notes du présentateur
    Un grand écart entre l'ajustement pondéré et le non pondéré est en soi un diagnostic, et c'est la vérification à faire avant de décider que les poids sont facultatifs.
  22. Diapositive 22 / 26

    Rapportez-le en entier — Exemple (suite)

    Food insecurity, household survey 2025
    
      976 households with complete covariates (of 996 interviewed),
      75 enumeration areas, 3 strata.
      Survey-weighted logistic regression; weights sum to 56,428 households,
      which is the frame total. Standard errors account for clustering by
      enumeration area and for stratification.
    
      Weighted prevalence      29.1%   (unweighted 32.8%)
    
      Adjusted odds ratios (weighted):
        Improved water source          0.74   95% CI 0.51 to 1.08
        Returnee household             0.39   95% CI 0.15 to 0.97
        Farming livelihood             1.69   95% CI 1.04 to 2.75
        Livestock livelihood           1.26   95% CI 0.73 to 2.18
        Salaried livelihood            0.45   95% CI 0.24 to 0.87
  23. Diapositive 23 / 26

    Rapportez-le en entier — Exemple (suite)

        Household size, per person     1.08   95% CI 1.01 to 1.16
    
      The unweighted model makes livestock livelihoods significant (OR 1.51,
      95% CI 1.04 to 2.18) and household size not. The rural remote stratum is
      11% of households and 34% of interviews, and livestock is concentrated
      there; the unweighted result is an artefact of the sampling design.
    
      Odds ratios are reported because food insecurity is 29% and the ratios are
      moderate; the weighted risk difference for salaried livelihoods is -14.2
      points against the observed mix of livelihoods, which is the number in
      the summary.
  24. Diapositive 24 / 26

    Rapportez-le en entier

    • Le paragraphe qui nomme l'artefact est ce qu'un relecteur vérifiera en premier — et l'écrire vous-même vaut mieux que…
    Notes du présentateur
    Le paragraphe qui nomme l'artefact est ce qu'un relecteur vérifiera en premier, et l'écrire vous-même vaut mieux que de le laisser trouver.
  25. Diapositive 25 / 26

    La suite

    • Chaque modèle jusqu'ici a été ajusté puis lu.
    Notes du présentateur
    Chaque modèle jusqu'ici a été ajusté puis lu. La dernière leçon en ajuste un qui explique trois pour cent de son résultat, ne fait pas mieux que deviner, et constitue le constat le plus utile de son rapport — parce que ce qu'il échoue à prédire est la réponse opérationnelle.
  26. Diapositive 26 / 26

    La suite

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