---
title: "Intervalles de confiance : montrer la précision sans la surinterpréter"
---
```{r}
#| label: setup-analyse
#| include: false
source("R/04-initialiser-analyse.R")
```
::: {.callout-important title="Question de départ"}
Lorsque l'enquête estime une proportion, une moyenne ou une différence, comment représenter la plage d'incertitude liée au plan d'échantillonnage sans transformer l'intervalle en certitude ?
:::
## Objectifs d'apprentissage
À la fin de ce chapitre, vous saurez :
- interpréter un intervalle de confiance fréquentiste ;
- construire des IC pour des moyennes et proportions avec `{survey}` ;
- comprendre le rôle du niveau de confiance et des degrés de liberté du plan ;
- visualiser des estimations et leurs IC ;
- raisonner sur l'intervalle d'une **différence** plutôt que sur le simple chevauchement de deux IC ;
- distinguer précision statistique, compatibilité avec une valeur de référence et importance substantielle ;
- reconnaître les dimensions d'incertitude que l'IC ne couvre pas.
## Ce qu'un intervalle de confiance signifie
Un intervalle à 95 % provient d'une **procédure** : si l'on répétait idéalement le protocole d'échantillonnage et le calcul de l'intervalle, environ 95 % des intervalles ainsi construits couvriraient le paramètre sous les hypothèses de l'inférence.
Une fois notre intervalle calculé, on évite donc :
> « Il y a 95 % de chances que le vrai paramètre soit dans l'intervalle. »
On préfère :
> « L'estimation est X ; l'IC à 95 % est [A ; B]. »
Dans l'interprétation, il est utile de demander quelles valeurs restent **compatibles avec la précision des données et le cadre d'inférence**, sans transformer chaque borne en frontière substantielle.
## Une moyenne et son intervalle
```{r}
#| label: tab-ch15-age-ci
est_age <- survey::svymean(~age, design, na.rm = TRUE)
ci_age <- confint(est_age)
age_est <- as.numeric(coef(est_age)[1])
age_low <- as.numeric(ci_age[1, 1])
age_high <- as.numeric(ci_age[1, 2])
tibble::tibble(
Estimation = paste0(fmt_num(age_est, .1), " ans"),
`Erreur standard` = fmt_num(SE(est_age)[1], .2),
`IC 95 %` = paste0(fmt_num(age_low, .1), " – ", fmt_num(age_high, .1), " ans")
) |>
knitr::kable()
```
Une rédaction possible est : **âge moyen pondéré `r fmt_num(age_est, 0.1)` ans, IC 95 % [`r fmt_num(age_low, 0.1)` ; `r fmt_num(age_high, 0.1)`]**.
Le nombre de décimales est volontairement limité : afficher plus de précision numérique que ne le justifie l'intervalle donnerait une fausse impression de certitude.
## Une proportion : utiliser une méthode adaptée
Pour une proportion, `{survey}` propose `svyciprop()` :
```{r}
#| label: tab-ch15-sport-ciprop
sport_ci <- survey::svyciprop(
~I(sport_regulier == 1),
design,
na.rm = TRUE,
method = "logit"
)
sport_est <- as.numeric(coef(sport_ci)[1])
sport_int <- confint(sport_ci)
tibble::tibble(
Estimation = fmt_pct(sport_est, .1),
`IC 95 %` = paste0(fmt_pct(sport_int[1, 1], .1), " – ", fmt_pct(sport_int[1, 2], .1))
) |>
knitr::kable()
```
Une méthode dédiée aux proportions est particulièrement utile lorsque l'estimation est proche de 0 ou 1 : une approximation symétrique `p ± 1,96 × SE` peut produire des bornes hors de l'intervalle [0 ; 1] ou mal représenter l'asymétrie de l'incertitude.
## Voir quatre intervalles : le gradient diplôme–sport
```{r}
#| label: plot-ch15-sport-diplome-ci
#| fig-alt: "Quatre points et leurs intervalles de confiance montrent une augmentation graduelle de la pratique sportive régulière avec le niveau de diplôme."
sport_diplome <- survey::svyby(
~sport_regulier,
~diplome_4,
design,
survey::svymean,
na.rm = TRUE,
vartype = c("se", "ci")
)
sport_ci_df <- svyby_ci_df(sport_diplome, "sport_regulier")
ggplot(sport_ci_df, aes(x = estimation, y = diplome_4)) +
geom_errorbarh(
aes(xmin = bas, xmax = haut),
height = .12,
colour = couleurs_enqueter[["gris"]],
linewidth = .7
) +
geom_point(size = 3.2, colour = couleurs_enqueter[["principal"]]) +
scale_x_continuous(
labels = scales::percent_format(accuracy = 1),
limits = c(0, .60)
) +
labs(
x = "Proportion pondérée (IC 95 %)",
y = NULL,
title = "L'incertitude doit être lue avec l'ordre de grandeur",
subtitle = "Pratique sportive au moins hebdomadaire",
caption = "Jeu pédagogique synthétique ; IC calculés avec le plan d'enquête."
) +
theme_enqueter()
```
La figure ne doit pas être lue comme quatre verdicts séparés. Elle sert d'abord à voir **la position des estimations, leur ordre et leur précision**.
## Comparer deux groupes : calculer l'intervalle de la différence
Le chevauchement de deux IC individuels n'est pas un test formel de leur différence. Lorsque la question porte sur l'écart entre les deux extrêmes scolaires, estimons directement ce contraste.
Pour une réponse binaire, une régression survey à lien identité peut être utilisée ici comme outil de contraste de moyennes : le coefficient représente une **différence de proportions**.
```{r}
#| label: tab-ch15-difference
extremes_design <- subset(
design,
diplome_4 %in% c("Inférieur au bac", "Supérieur long") & !is.na(sport_regulier)
)
extremes_design <- update(
extremes_design,
diplome_extreme = droplevels(diplome_4)
)
mod_diff <- survey::svyglm(
sport_regulier ~ diplome_extreme,
design = extremes_design,
family = gaussian()
)
nom_contraste <- grep("Supérieur long", names(coef(mod_diff)), value = TRUE)[1]
diff_est <- coef(mod_diff)[nom_contraste]
diff_ci <- confint(mod_diff)[nom_contraste, ]
tibble::tibble(
Contraste = "Supérieur long – inférieur au bac",
`Différence estimée` = fmt_pp(diff_est, .1),
`IC 95 %` = paste0(fmt_pp(diff_ci[1], .1), " à ", fmt_pp(diff_ci[2], .1))
) |>
knitr::kable()
```
Cette table répond directement à la question comparative. Si l'IC de la différence est entièrement au-dessus de zéro, les données sont peu compatibles avec une différence nulle dans le cadre du modèle ; mais l'interprétation substantive porte surtout sur **combien de points de proportion séparent les groupes**.
::: {.callout-note title="Pourquoi ne pas lire le chevauchement visuel ?"}
Deux intervalles autour de deux paramètres ne contiennent pas directement la covariance entre les estimations. Le contraste, lui, est construit pour répondre à la question « quelle est l'incertitude sur leur différence ? ».
:::
## Niveau de confiance : convention et compromis
Toutes choses égales par ailleurs :
- un IC à 90 % est plus étroit ;
- un IC à 95 % est plus large ;
- un IC à 99 % est encore plus large.
Le choix reflète un compromis entre couverture nominale et largeur. Le seuil de 95 % est une convention fréquente, pas une frontière naturelle entre « vrai » et « faux ».
Il est également préférable de choisir le niveau de confiance **avant** d'avoir vu le résultat plutôt que de changer de seuil pour obtenir une conclusion plus commode.
## Importance substantielle : l'intervalle doit être lu sur l'échelle du phénomène
Imaginons deux résultats :
- différence de satisfaction = **0,06 point sur 10**, IC [0,04 ; 0,08] ;
- différence = **0,70 point**, IC [-0,10 ; 1,50].
Le premier est très précis mais peut être substantiellement faible. Le second est potentiellement important mais mal estimé. Une lecture de haut niveau articule :
1. estimation ;
2. incertitude ;
3. unité ;
4. valeurs substantiellement importantes ou négligeables.
Un intervalle n'est donc pas seulement un instrument permettant de savoir si zéro est inclus.
## Plans complexes : les degrés de liberté ne sont pas le nombre de lignes
Dans un plan avec strates et grappes, le nombre d'observations n'est pas la seule quantité pertinente. Le nombre de PSU et leur répartition entre strates peuvent réduire les degrés de liberté utiles à l'inférence. Les fonctions de `{survey}` utilisent le design pour construire variances et intervalles [@survey2026; @lumley2010].
```{r}
#| label: tab-ch15-degf
tibble::tibble(
`N lignes du fichier` = nrow(enqueter),
`Degrés de liberté du design` = survey::degf(design),
`Nombre de PSU distinctes` = dplyr::n_distinct(enqueter$psu),
`Nombre de strates` = dplyr::n_distinct(enqueter$strate)
) |>
knitr::kable()
```
Cette différence explique pourquoi un calcul naïf fondé uniquement sur $n$ peut donner une impression de précision excessive.
::: {.callout-warning title="Un IC n'intègre pas toutes les sources d'erreur"}
Un intervalle calculé à partir du design quantifie principalement l'incertitude d'échantillonnage sous les hypothèses de l'analyse. Il ne s'élargit pas automatiquement parce qu'une question est mal formulée, qu'une population est sous-couverte ou qu'une non-réponse reste sélective.
:::
## Une table d'IC avec `gtsummary`
```{r}
#| label: tab-ch15-gtsummary-ci
suppressPackageStartupMessages(library(gtsummary))
design |>
tbl_svysummary(
by = diplome_4,
include = sport_regulier,
statistic = sport_regulier ~ "{p}%",
type = sport_regulier ~ "dichotomous",
label = sport_regulier ~ "Sport au moins hebdomadaire",
missing = "no"
) |>
add_ci() |>
bold_labels()
```
La figure facilite la comparaison visuelle ; le tableau fournit les valeurs exactes. Il est rarement nécessaire de montrer les deux si l'un d'eux ne sert aucun usage supplémentaire.
## Mini-exercice
Que devient généralement la largeur d'un IC lorsque l'erreur standard diminue ?
::: {.callout-caution collapse="true" title="Correction"}
Elle diminue : une erreur standard plus faible correspond à une estimation plus précise, toutes choses égales par ailleurs.
:::
## Exercice de synthèse
### Niveau A — Appliquer
Calculez l'IC à 95 % de l'âge moyen et de la proportion de pratique sportive régulière.
### Niveau B — Choisir
Une proportion estimée est proche de 1. Expliquez pourquoi une méthode d'IC dédiée aux proportions est préférable à une approximation linéaire naïve.
### Niveau C — Analyser
Choisissez une comparaison entre deux groupes. Présentez les deux estimations et leurs IC, puis estimez **l'intervalle de leur différence**. Rédigez trois phrases : ordre de grandeur, précision, limite méthodologique hors intervalle.
## À retenir
- Un IC fréquentiste décrit une procédure de couverture répétée, pas une probabilité postérieure sur un paramètre fixe.
- Le plan d'enquête doit entrer dans le calcul de l'erreur standard et de l'IC.
- Les proportions peuvent nécessiter des méthodes d'intervalle dédiées.
- Le chevauchement visuel de deux IC n'est pas un test formel de leur différence.
- Lorsque la question porte sur un écart, l'objet pertinent est l'IC du contraste.
- Une estimation précise peut être substantiellement faible ; une estimation importante peut être imprécise.
- L'IC ne résume pas toutes les dimensions de l'erreur totale d'enquête.
## Pour aller plus loin
Le chapitre suivant introduit les tests d'hypothèses. Les intervalles resteront prioritaires pour l'interprétation : ils montrent **l'amplitude et la précision**, là où une valeur-p réduit la compatibilité avec une hypothèse nulle à un seul nombre.