---
title: "Estimation, variabilité et incertitude"
---
```{r}
#| label: setup-analyse
#| include: false
source("R/04-initialiser-analyse.R")
```
::: {.callout-important title="Question de départ"}
Deux échantillons tirés selon le même protocole produiraient-ils exactement le même résultat ? Si non, comment distinguer la dispersion des individus de l'incertitude sur une estimation ?
:::
## Objectifs d'apprentissage
À la fin de ce chapitre, vous saurez :
- distinguer paramètre, estimateur et estimation ;
- expliquer intuitivement une distribution d'échantillonnage ;
- distinguer écart-type et erreur standard ;
- séparer biais et variance ;
- relier poids, stratification et grappes à la précision ;
- calculer un effet de plan adapté à des poids normalisés ;
- distinguer **taille effective de Kish** et **taille effective issue du DEFF** ;
- comprendre pourquoi l'incertitude est propre à une estimation et non à un fichier entier.
## Paramètre, estimateur, estimation
Trois mots proches renvoient à trois objets différents :
- **paramètre** : quantité définie dans la population, généralement inconnue ;
- **estimateur** : règle de calcul utilisée pour approcher ce paramètre ;
- **estimation** : valeur obtenue dans l'échantillon effectivement observé.
La proportion de personnes pratiquant un sport chaque semaine dans une population cible est un paramètre ; `svymean(~sport_regulier, design)` est un estimateur ; la valeur produite dans notre fichier est l'estimation.
Cette distinction est fondamentale : l'incertitude porte sur la **procédure d'estimation**, pas sur l'existence matérielle du chiffre observé.
## Voir une distribution d'échantillonnage
L'idée d'erreur standard devient plus intuitive lorsqu'on la simule. Utilisons les âges observés comme une **pseudo-population pédagogique**, puis tirons 1 000 échantillons de taille 200.
```{r}
#| label: plot-ch14-simulation
#| fig-alt: "Histogramme de mille moyennes d'âge simulées, concentrées autour de la moyenne de la pseudo-population."
set.seed(2026)
pseudo_population <- enqueter$age[!is.na(enqueter$age)]
mu_pseudo <- mean(pseudo_population)
moyennes_sim <- replicate(
1000,
mean(sample(pseudo_population, size = 200, replace = TRUE))
)
sim_df <- tibble(moyenne = moyennes_sim)
ggplot(sim_df, aes(x = moyenne)) +
geom_histogram(
bins = 30,
fill = couleurs_enqueter[["principal"]],
colour = "white",
linewidth = .2
) +
geom_vline(
xintercept = mu_pseudo,
colour = couleurs_enqueter[["accent"]],
linewidth = 1
) +
labs(
x = "Moyenne d'âge obtenue dans l'échantillon",
y = "Nombre de répétitions",
title = "Un même protocole ne donne pas exactement le même chiffre",
subtitle = "1 000 échantillons simulés de taille 200 ; ligne = moyenne de la pseudo-population",
caption = "Simulation pédagogique : il ne s'agit pas du plan complexe du jeu enqueter."
) +
theme_enqueter()
```
```{r}
#| label: tab-ch14-simulation-resume
tibble::tibble(
`Moyenne de la pseudo-population` = mu_pseudo,
`Moyenne des 1 000 estimations` = mean(moyennes_sim),
`Écart-type des 1 000 estimations` = sd(moyennes_sim)
) |>
mutate(across(everything(), ~round(.x, 2))) |>
knitr::kable()
```
L'écart-type des 1 000 moyennes simulées approche l'**erreur standard** dans cette expérience. Les individus sont très hétérogènes ; les moyennes d'échantillons le sont beaucoup moins.
## Écart-type ≠ erreur standard
```{r}
#| label: tab-ch14-sd-se
est_age <- survey::svymean(~age, design, na.rm = TRUE)
tibble::tibble(
Quantité = c("Écart-type des âges individuels", "Erreur standard de l'âge moyen"),
Valeur = c(
sd(enqueter$age, na.rm = TRUE),
as.numeric(SE(est_age)[1])
)
) |>
mutate(Valeur = round(Valeur, 2)) |>
knitr::kable(align = c("l", "r"))
```
- l'**écart-type** décrit l'hétérogénéité entre personnes ;
- l'**erreur standard** décrit la variabilité attendue de l'estimation sous répétition du plan.
::: {.callout-tip title="Test mental"}
Si votre phrase parle des différences **entre individus**, pensez dispersion. Si elle parle de la précision d'une **moyenne, proportion ou coefficient**, pensez erreur standard.
:::
## Biais et variance : deux dimensions de la qualité
Un estimateur peut être très précis et manquer systématiquement la cible. C'est la distinction entre :
- **variance** : fluctuation d'un échantillon possible à l'autre ;
- **biais** : décalage systématique entre ce que l'on estime et le paramètre visé.
Une grande base auto-sélectionnée peut produire une erreur standard minuscule tout en restant biaisée si certaines catégories sont absentes ou participent différemment. À l'inverse, un plan probabiliste de petite taille peut être moins biaisé mais relativement imprécis.
::: {.callout-warning title="La précision ne guérit pas les erreurs de mesure ou de couverture"}
Les erreurs standards quantifient une composante de l'incertitude sous le cadre d'inférence choisi. Elles ne mesurent pas automatiquement les erreurs de questionnaire, de couverture, de codage ou un biais de non-réponse non corrigé.
:::
## Pourquoi le plan d'enquête modifie l'incertitude
Dans un plan complexe, la variance dépend notamment :
- de la dispersion des poids ;
- du nombre de PSU ;
- de la corrélation entre unités d'une même grappe ;
- de la stratification ;
- du domaine étudié ;
- de la variable et de l'estimateur considérés.
Le package `{survey}` utilise ces informations pour estimer la variance [@lumley2010; @survey2026]. Cela explique pourquoi deux statistiques calculées sur le même fichier peuvent avoir des effets de plan très différents.
## Effet de plan : une comparaison, pas une constante du fichier
Dans EnquêteR, les poids ont été normalisés. Pour comparer la variance du design à une référence de type sondage aléatoire avec remise, nous demandons explicitement `deff = "replace"`.
```{r}
#| label: tab-ch14-deff
est_deff <- survey::svymean(
~age + satisfaction_vie + sport_regulier,
design,
na.rm = TRUE,
deff = "replace"
)
de <- survey::deff(est_deff)
res_deff <- tibble::tibble(
Indicateur = c("Âge moyen", "Satisfaction moyenne", "Sport régulier"),
Estimation = as.numeric(coef(est_deff)),
SE = as.numeric(SE(est_deff)),
DEFF = as.numeric(de)
) |>
mutate(
`N effectif approx. (n/DEFF)` = nrow(enqueter) / DEFF,
across(c(Estimation, SE, DEFF, `N effectif approx. (n/DEFF)`), ~round(.x, 2))
)
knitr::kable(res_deff, align = c("l", "r", "r", "r", "r"))
```
Un DEFF supérieur à 1 signifie que, pour **cette estimation**, le plan est moins précis que la référence ; une valeur inférieure à 1 est possible, notamment lorsqu'une stratification efficace réduit la variance.
::: {.callout-note title="L'effet de plan n'est pas une propriété unique de l'enquête"}
Il peut différer entre âge, satisfaction et sport. Dire « le DEFF de l'enquête vaut 1,6 » sans préciser l'estimation concernée est donc généralement trop vague.
:::
## Deux notions de taille effective qu'il ne faut pas confondre
La taille effective peut être évoquée de deux manières.
### 1. Taille effective liée à la dispersion des poids
La formule de Kish :
$$
n_{eff}^{Kish}=\frac{(\sum_i w_i)^2}{\sum_i w_i^2}
$$
isole surtout la perte d'information liée à l'hétérogénéité des poids.
```{r}
#| label: tab-ch14-kish
w <- weights(design)
tibble::tibble(
`N observé` = nrow(enqueter),
`N effectif de Kish` = kish_neff(w),
`Perte liée à la dispersion des poids` = 1 - kish_neff(w) / nrow(enqueter)
) |>
mutate(
`N effectif de Kish` = round(`N effectif de Kish`, 1),
`Perte liée à la dispersion des poids` = fmt_pct(`Perte liée à la dispersion des poids`, .1)
) |>
knitr::kable()
```
### 2. Taille effective dérivée du DEFF
L'approximation $n/DEFF$ traduit la précision d'une **estimation donnée** en taille d'échantillon aléatoire simple équivalente. Elle intègre plus que la seule dispersion des poids, selon la définition du DEFF.
Les deux quantités ne doivent donc pas être fusionnées dans un même concept vague de « N pondéré ».
## Une figure de diagnostic de précision
```{r}
#| label: plot-ch14-deff
#| fig-alt: "Trois points représentent l'effet de plan pour l'âge moyen, la satisfaction moyenne et la pratique sportive."
ggplot(res_deff, aes(x = DEFF, y = Indicateur)) +
geom_vline(xintercept = 1, linetype = "dashed", colour = couleurs_enqueter[["gris"]]) +
geom_segment(
aes(x = 1, xend = DEFF, yend = Indicateur),
colour = couleurs_enqueter[["gris_clair"]],
linewidth = 2
) +
geom_point(size = 3, colour = couleurs_enqueter[["principal"]]) +
labs(
x = "Effet de plan (référence = 1)",
y = NULL,
title = "Le coût de précision du design dépend de l'estimation",
subtitle = "DEFF calculé avec la référence 'replace'",
caption = "Un DEFF inférieur à 1 est possible lorsqu'un élément du plan améliore la précision."
) +
theme_enqueter()
```
## `weighted.mean()` et `svymean()` : même point parfois, pas la même inférence
```{r}
#| label: tab-ch14-weighted-vs-survey
moyenne_simplement_ponderee <- weighted.mean(
enqueter$satisfaction_vie,
enqueter$poids_final,
na.rm = TRUE
)
moyenne_design <- survey::svymean(
~satisfaction_vie,
design,
na.rm = TRUE
)
tibble::tibble(
Méthode = c("weighted.mean()", "svymean()"),
Estimation = c(moyenne_simplement_ponderee, coef(moyenne_design)[1]),
`Erreur standard disponible ?` = c("Non", "Oui, avec le design")
) |>
mutate(Estimation = round(Estimation, 3)) |>
knitr::kable()
```
Le point estimé peut être proche, car les deux méthodes appliquent les poids. Mais `weighted.mean()` ne connaît ni strates ni grappes et ne fournit pas l'inférence appropriée au plan complexe.
## Domaines : un petit sous-groupe n'est pas une nouvelle enquête
Une précision importante pour la suite : si l'on souhaite estimer un paramètre dans un sous-groupe, il est préférable d'utiliser `subset(design, ...)` ou des fonctions de domaine plutôt que de reconstruire naïvement un nouveau fichier et d'oublier le plan. La variance d'un domaine dépend du plan d'origine et de la manière dont ce domaine est distribué dans les strates et PSU.
Cette idée deviendra centrale pour les analyses par âge, diplôme ou situation d'emploi.
## Lecture substantive de la précision
Une erreur standard doit être mise en relation avec l'échelle du résultat. Une SE de 0,05 :
- est minuscule pour une variable de 0 à 100 ;
- peut être notable pour une proportion autour de 0,03 ;
- ne dit rien sans l'estimation elle-même.
Dans un article, la SE seule est rarement le meilleur objet de communication. On la traduit généralement en intervalle de confiance, en barres d'incertitude ou en comparaison directement interprétable.
## Mini-exercice
Expliquez pourquoi l'écart-type des revenus individuels peut être de plusieurs centaines d'euros alors que l'erreur standard du revenu moyen est beaucoup plus faible.
::: {.callout-caution collapse="true" title="Correction"}
Le premier décrit l'hétérogénéité entre personnes ; le second décrit la précision de l'estimation d'une moyenne. Une moyenne agrège l'information de nombreuses observations et varie généralement moins que les valeurs individuelles.
:::
## Exercice de synthèse
### Niveau A — Appliquer
Calculez moyenne, écart-type individuel et erreur standard de la moyenne pour l'âge et la satisfaction.
### Niveau B — Choisir
Comparez le DEFF de trois estimations et la taille effective de Kish des poids. Expliquez pourquoi ces quantités ne décrivent pas exactement la même chose.
### Niveau C — Analyser
Rédigez un paragraphe de méthode distinguant : précision d'échantillonnage, biais potentiel de non-réponse, erreur de mesure et perte d'information liée à la dispersion des poids. Le texte doit montrer qu'un IC étroit ne résout pas les trois derniers problèmes.
## À retenir
- Un paramètre appartient à la population ; une estimation est obtenue dans un échantillon.
- La distribution d'échantillonnage décrit la variabilité d'un estimateur sous répétition du protocole.
- L'écart-type décrit les individus ; l'erreur standard décrit la précision d'une estimation.
- Biais et variance sont deux dimensions différentes de la qualité.
- Les poids, strates et grappes modifient l'incertitude.
- Avec des poids normalisés, le choix de la référence du DEFF doit être explicite.
- La taille effective de Kish et $n/DEFF$ répondent à deux diagnostics différents.
- La précision statistique n'épuise pas l'erreur totale d'enquête.
## Pour aller plus loin
Le chapitre suivant transforme l'erreur standard en un objet de communication plus directement interprétable : **l'intervalle de confiance**.