cassionAnalyse de données

Retour à la leçonLeçon 4 sur 8Ce que le plan achète

L'effet de plan, et celui qui est sorti sous un

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

    Ce que couvre cette leçon

    • Ce que c'est
    • Pourquoi les grappes vous coûtent
    • Pourquoi la stratification en rachète
    • Le solde, mesuré
    • Celui qui est sous un
    • D'où viennent les effets de plan quand vous n'en avez pas
    • Rapportez-le
    • La suite
    Notes du présentateur
    La mise en grappes coûte de la précision, la stratification en rachète, et l'effet de plan est le solde. 1,60 pour l'insécurité alimentaire et 0,91 pour l'accès à l'eau, sur les mêmes 996 entretiens.
  2. Diapositive 2 / 18

    Ce que c'est — Exemple

    deff = variance under this design / variance under simple random sampling
    Notes du présentateur
    L'effet de plan est un rapport.
  3. Diapositive 3 / 18

    Ce que c'est — Exemple

    effective n = n / deff
    Notes du présentateur
    Un effet de plan de 2 signifie que votre estimation est aussi précise que l'aurait été un sondage aléatoire simple de moitié moindre. Il convertit un échantillon de 996 en taille d'échantillon effective — le nombre d'observations indépendantes que votre enquête vaut réellement. C'est cette seconde quantité qu'il faut mettre dans un rapport. « 996 ménages, échantillon effectif 623 » en dit plus que chacun des deux nombres, et c'est la réponse honnête à « quelle était la taille de votre enquête ».
  4. Diapositive 4 / 18

    Pourquoi les grappes vous coûtent — Exemple

    deff_clustering = 1 + (m - 1) * ICC
    Notes du présentateur
    Les ménages d'une même zone de dénombrement se ressemblent. Ils partagent un point d'eau, un marché, une route, une récolte. Le deuxième ménage interrogé dans une zone vous apprend donc moins que le premier, et le quatorzième très peu. La mesure de cette ressemblance est la corrélation intra-grappe, et elle se traduit directement en pénalité.
  5. Diapositive 5 / 18

    Pourquoi les grappes vous coûtent — En Python

    import pandas as pd
    
    by_area = (
        survey.assign(insecure=survey["food_insecure"] == "true")
        .groupby("ea_id")["insecure"]
        .agg(["mean", "size"])
    )
    
    p = (survey["food_insecure"] == "true").mean()
    m = by_area["size"].mean()
    between = by_area["mean"].var(ddof=0)
    icc = (between - p * (1 - p) / m) / (p * (1 - p))
    
    print(f"mean cluster size {m:.1f}, ICC {icc:.3f}, "
          f"clustering deff {1 + (m - 1) * icc:.2f}")
    Notes du présentateur
    avec m le nombre d'entretiens par grappe.
  6. Diapositive 6 / 18

    Pourquoi les grappes vous coûtent — En R

    by_area <- survey |>
      summarise(rate = mean(food_insecure == "true"), n = n(), .by = ea_id)
    
    p <- mean(survey$food_insecure == "true")
    m <- mean(by_area$n)
    icc <- (var(by_area$rate) * (nrow(by_area) - 1) / nrow(by_area) -
            p * (1 - p) / m) / (p * (1 - p))
    
    c(m = m, icc = icc, deff = 1 + (m - 1) * icc)
  7. Diapositive 7 / 18

    Pourquoi les grappes vous coûtent

    • C'est une propriété du résultat, pas de l'enquête. La source d'eau est très regroupée — un village a un forage ou…
    • Les valeurs publiées sont la meilleure estimation disponible. Les rapports EDS et SMART publient des effets de…
    Notes du présentateur
    Sur cette enquête — 13,3 entretiens par zone, ICC de 0,11, effet de plan dû aux grappes d'environ 2,4. Deux choses à retenir sur l'ICC.
  8. Diapositive 8 / 18

    Pourquoi la stratification en rachète

    • La stratification fait l'inverse.
    Notes du présentateur
    La stratification fait l'inverse. En forçant l'échantillon à couvrir chaque strate, elle supprime la possibilité d'un échantillon tombé surtout dans une seule — et cette possibilité fait partie de la variance d'un sondage aléatoire simple. Le gain est grand exactement quand les strates diffèrent beaucoup sur le résultat. L'accès à une source améliorée va de 88 % en urbain à 41 % en rural reculé, et la stratification garantit que ces strates sont représentées en proportions fixes plutôt qu'au hasard.
  9. Diapositive 9 / 18

    Le solde, mesuré — En Python (suite)

    import numpy as np
    
    
    def design_effect(df, outcome, weight="weight"):
        p = np.average(df[outcome] == "true", weights=df[weight])
        total_w = df[weight].sum()
    
        variance = 0.0
        for _, stratum in df.groupby("stratum"):
            areas = stratum.groupby("ea_id").apply(
                lambda g: (g[weight] * ((g[outcome] == "true") - p)).sum()
            )
            n = len(areas)
            if n < 2:
                continue
            variance += n / (n - 1) * ((areas - areas.mean()) ** 2).sum()
    Notes du présentateur
    Les deux forces tirent en sens inverse, donc calculez l'effet de plan sur les données plutôt que de raisonner dessus. Estimez la variance sous le plan réel et divisez par ce qu'aurait donné un sondage aléatoire simple.
  10. Diapositive 10 / 18

    Le solde, mesuré — En Python (suite)

        variance /= total_w**2
    
        srs = p * (1 - p) / len(df)
        return p, np.sqrt(variance), variance / srs
    
    
    for outcome in ["food_insecure", "improved_water_source"]:
        p, se, deff = design_effect(survey, outcome)
        print(f"{outcome:24} p={p:.1%} se={se:.4f} deff={deff:.2f} "
              f"n_eff={len(survey) / deff:.0f}")
  11. Diapositive 11 / 18

    Le solde, mesuré — En R

    library(survey)
    
    design <- svydesign(ids = ~ea_id, strata = ~stratum, weights = ~weight,
                        data = survey, nest = TRUE)
    
    svymean(~I(food_insecure == "true"), design, deff = TRUE)
    svymean(~I(improved_water_source == "true"), design, deff = TRUE)
  12. Diapositive 12 / 18

    Le solde, mesuré

    RésultatEstimationEffet de plann effectif
    Insécurité alimentaire29,1 %1,60623
    Source d'eau améliorée69,8 %0,911 098
  13. Diapositive 13 / 18

    Celui qui est sous un

    • « Effet de plan » n'est donc pas synonyme de « pénalité » — C'est le solde de deux forces opposées, et laquelle…
    Notes du présentateur
    Relisez la deuxième ligne. Un effet de plan de 0,91 signifie que l'enquête est plus précise qu'un sondage aléatoire simple de même taille. Ce n'est pas une erreur, et c'est le résultat le plus utile de cette leçon. L'accès à l'eau diffère énormément entre strates — 88 %, 62 %, 41 % — et la stratification garantit que les trois entrent dans l'estimation en proportions fixes. La variance qu'un sondage aléatoire simple porte du fait de ne pas savoir combien de ménages urbains il attrapera est entièrement supprimée, et ce gain l'emporte sur la perte due aux grappes. L'insécurité alimentaire diffère aussi entre strates, mais sa corrélation intra-zone est plus forte, si bien que les grappes l'emportent et le solde vaut 1,60. « Effet de plan » n'est donc pas synonyme de « pénalité ». C'est le solde de deux forces opposées, et laquelle l'emporte dépend du résultat. Un rapport d'enquête citant un effet de plan unique pour toute l'enquête a moyenné ce qui ne doit pas l'être. Remarquez aussi que le chiffre calculé plus haut pour les seules grappes valait 2,4, et que l'effet de plan complet du même résultat vaut 1,60. La différence est ce qu'a acheté la stratification, et cela mérite d'être rapporté quand vous défendez un plan de sondage.
  14. Diapositive 14 / 18

    D'où viennent les effets de plan quand vous n'en avez pas

    • Le tour précédent de la même enquête, même indicateur, même zone. Presque toujours disponible et presque toujours…
    • Un rapport d'enquête publié pour le même indicateur dans un contexte comparable. Les rapports EDS tabulent les…
    • Une convention. Les enquêtes SMART supposent couramment 1,5 pour l'anthropométrie ; les évaluations humanitaires…
    • 1,0 n'est jamais une hypothèse défendable pour une enquête en grappes, et un protocole qui l'emploie a…
    Notes du présentateur
    Il vous en faut un avant que l'enquête existe, et il n'y a pas encore de données. Par ordre de préférence.
  15. Diapositive 15 / 18

    Rapportez-le — En Python

    summary = pd.DataFrame({
        "outcome": ["Food insecure", "Improved water source"],
        "estimate": ["29.1%", "69.8%"],
        "ci_95": ["25.5-32.7%", "67.0-72.5%"],
        "deff": [1.60, 0.91],
        "n": [996, 996],
        "n_effective": [623, 1098],
    })
  16. Diapositive 16 / 18

    Rapportez-le — En R

    tibble::tribble(
      ~outcome,                ~estimate, ~deff, ~n_effective,
      "Food insecure",           "29.1%",  1.60,          623,
      "Improved water source",   "69.8%",  0.91,         1098
    )
    Notes du présentateur
    Cinq colonnes, une ligne par indicateur, et cela a sa place en annexe de tout rapport d'enquête. Cela permet à un lecteur de juger l'estimation, de la comparer à une autre enquête et de dimensionner le tour suivant — trois choses impossibles à partir du seul pourcentage.
  17. Diapositive 17 / 18

    La suite

    • Vous avez un effet de plan, donc une erreur type, donc de quoi cesser de calculer tout cela à la main.
    Notes du présentateur
    Vous avez un effet de plan, donc une erreur type, donc de quoi cesser de calculer tout cela à la main. La leçon suivante déclare le plan une fois au logiciel et laisse chaque estimation en hériter — survey sous R, et l'arithmétique équivalente en Python.
  18. Diapositive 18 / 18

    La suite

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