Retour à la leçon·Leçon 4 sur 8·Ce 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.
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.Ce que c'est — Exemple
deff = variance under this design / variance under simple random samplingNotes du présentateur
L'effet de plan est un rapport.Ce que c'est — Exemple
effective n = n / deffNotes 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 ».Pourquoi les grappes vous coûtent — Exemple
deff_clustering = 1 + (m - 1) * ICCNotes 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é.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
avecmle nombre d'entretiens par grappe.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)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.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.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.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}")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)Le solde, mesuré
Résultat Estimation Effet de plan n effectif Insécurité alimentaire 29,1 % 1,60 623 Source d'eau améliorée 69,8 % 0,91 1 098 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.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.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], })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.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 —surveysous R, et l'arithmétique équivalente en Python.