Aller au contenu

Estimez un paramètre avec un intervalle de confiance

Un fabricant de drones teste 10 batteries de son nouveau modèle et mesure leur autonomie : 26,95 minutes en moyenne. Peut-il écrire « autonomie : 27 minutes » sur la boîte ? Avec 10 autres batteries, il aurait obtenu une autre moyenne. Ce qu’il lui faut, c’est une fourchette accompagnée d’un niveau de confiance : « entre 26,3 et 27,6 minutes, avec 95 % de confiance ».

Jusqu’ici, nous partions d’une loi connue pour calculer des probabilités. Ce chapitre inverse la démarche : on observe des données, et l’on cherche à remonter à la loi qui les a produites. C’est le passage des probabilités à la statistique. Le fil rouge sera l’autonomie de ces batteries. Le cours de Statistiques approfondit ensuite l’estimation (maximum de vraisemblance, propriétés asymptotiques).

Les 10 autonomies mesurées (en minutes) sont :

26,127,425,828,226,927,725,526,628,027,3

On les modélise comme les réalisations x1,…,xnx_1, \dots, x_n de variables X1,…,XnX_1, \dots, X_n i.i.d., de loi inconnue, d’espérance μ\mu (l’autonomie moyenne de toutes les batteries produites) et d’écart-type σ\sigma. Le but est d’estimer le paramètre μ\mu.

Un estimateur θ^\hat{\theta} d’un paramètre θ\theta est une variable aléatoire calculée à partir de l’échantillon, comme Xˉn\bar{X}_n. Une estimation est la valeur qu’il prend sur les données observées, comme xˉ=26,95\bar{x} = 26{,}95. La distinction compte : on juge un estimateur sur son comportement sur tous les échantillons possibles, pas sur un seul.

Deux critères dominent :

  • le biais E[θ^]−θE[\hat{\theta}] - \theta : un estimateur est sans biais s’il tombe juste en moyenne ;
  • la variance Var(θ^)\mathrm{Var}(\hat{\theta}) : un bon estimateur fluctue peu d’un échantillon à l’autre.

On les combine dans l’erreur quadratique moyenne, E[(θ^−θ)2]=biais2+varianceE[(\hat{\theta} - \theta)^2] = \text{biais}^2 + \text{variance}. D’après le chapitre 7, Xˉn\bar{X}_n est un estimateur sans biais de μ\mu, de variance σ2/n\sigma^2/n : il s’améliore quand nn grandit.

Pour estimer la variance σ2\sigma^2, l’idée naturelle est la moyenne des carrés des écarts, S2=1n∑i(Xi−Xˉn)2S^2 = \frac{1}{n} \sum_i (X_i - \bar{X}_n)^2. Or on démontre que :

E[S2]=n−1n σ2E[S^2] = \frac{n - 1}{n} \, \sigma^2

S2S^2 sous-estime σ2\sigma^2 en moyenne. La raison est intuitive : on mesure les écarts à Xˉn\bar{X}_n, qui est par construction le point le plus proche de l’ensemble des données, plutôt qu’à la vraie moyenne μ\mu ; les écarts sont donc un peu trop petits. On corrige en divisant par n−1n - 1 :

S′2=1n−1∑i=1n(Xi−Xˉn)2,E[S′2]=σ2S'^2 = \frac{1}{n - 1} \sum_{i=1}^{n} (X_i - \bar{X}_n)^2, \qquad E[S'^2] = \sigma^2

C’est la variance empirique corrigée, celle que calculent var et sd en R. Pour nos batteries, s′2≈0,869s'^2 \approx 0{,}869 et s′≈0,932s' \approx 0{,}932 minute (la version biaisée donnerait 0,7820{,}782).

0246810121416variance estimée sur un échantillon de 5 valeurs (vraie variance σ² = 4)0,000,050,100,150,200,250,30densitémoyenne3,2moyenne 4,0= σ² : sans biaisdivision par ndivision par n − 1
Sur des échantillons de 5 valeurs, diviser par n donne des estimations en moyenne trop petites (3,2 au lieu de 4). Diviser par n − 1 décale tout l'histogramme juste ce qu'il faut.

Une estimation seule (26,95) ne dit rien de sa précision. Un intervalle de confiance (IC) de niveau 1−α1 - \alpha est un intervalle aléatoire [L ; U][L\,;\,U], calculé à partir de l’échantillon, tel que :

P(L≤θ≤U)=1−αP(L \leq \theta \leq U) = 1 - \alpha

Le niveau le plus courant est 95 % (α=0,05\alpha = 0{,}05). La recette est toujours la même : trouver une quantité, appelée pivot, qui dépend de θ\theta et dont la loi est connue et ne dépend pas de θ\theta ; encadrer ce pivot entre deux quantiles ; puis « isoler » θ\theta.

On note u1−α/2u_{1-\alpha/2} le quantile d’ordre 1−α/21 - \alpha/2 de N(0,1)\mathcal{N}(0, 1), c’est-à-dire la valeur telle que P(Z≤u1−α/2)=1−α/2P(Z \leq u_{1-\alpha/2}) = 1 - \alpha/2. Pour α=0,05\alpha = 0{,}05, u0,975≈1,96u_{0{,}975} \approx 1{,}96 : on laisse 2,5 % de probabilité de chaque côté.

Supposons d’abord, pour simplifier, que le fabricant connaisse l’écart-type de l’autonomie grâce aux modèles précédents : σ=1\sigma = 1 minute. Si les XiX_i sont normales (ou si nn est grand, grâce au TCL), le pivot

Z=Xˉn−μσ/nZ = \frac{\bar{X}_n - \mu}{\sigma / \sqrt{n}}

suit N(0,1)\mathcal{N}(0, 1). On a donc P(−1,96≤Z≤1,96)=0,95P(-1{,}96 \leq Z \leq 1{,}96) = 0{,}95, et en isolant μ\mu :

μ∈[xˉ−u1−α/2σn ; xˉ+u1−α/2σn]\mu \in \left[\bar{x} - u_{1-\alpha/2} \frac{\sigma}{\sqrt{n}}\,;\, \bar{x} + u_{1-\alpha/2} \frac{\sigma}{\sqrt{n}}\right]

Pour les batteries : 26,95±1,96×1/10=26,95±0,6226{,}95 \pm 1{,}96 \times 1/\sqrt{10} = 26{,}95 \pm 0{,}62, soit [26,33 ; 27,57][26{,}33\,;\,27{,}57].

La demi-largeur e=u1−α/2 σ/ne = u_{1-\alpha/2} \, \sigma/\sqrt{n} mesure la précision. Elle diminue en 1/n1/\sqrt{n}, ce qui permet de calculer la taille d’échantillon nécessaire pour une précision donnée : n≥(u1−α/2 σ/e)2n \geq (u_{1-\alpha/2} \, \sigma / e)^2. Pour une précision de ±0,3\pm 0{,}3 minute, il faudrait n≥(1,96/0,3)2≈42,7n \geq (1{,}96/0{,}3)^2 \approx 42{,}7, donc 43 batteries.

Quand l’écart-type est inconnu : la loi de Student

Section intitulée « Quand l’écart-type est inconnu : la loi de Student »

En réalité, σ\sigma est presque toujours inconnu. On le remplace par son estimation s′s', mais cela ajoute de l’incertitude : le pivot Xˉn−μS′/n\frac{\bar{X}_n - \mu}{S'/\sqrt{n}} ne suit plus une normale. Pour des données normales, il suit une loi de Student à n−1n - 1 degrés de liberté, notée tn−1t_{n-1}.

Deux lois nouvelles apparaissent ici, toutes deux construites à partir de la normale :

  • la loi du khi-deux à kk degrés de liberté, χk2\chi^2_k, est la loi de Z12+⋯+Zk2Z_1^2 + \dots + Z_k^2 où les ZiZ_i sont des N(0,1)\mathcal{N}(0, 1) indépendantes ;
  • la loi de Student à kk degrés de liberté, tkt_k, est la loi de Z/U/kZ / \sqrt{U/k}, avec Z∼N(0,1)Z \sim \mathcal{N}(0, 1) et U∼χk2U \sim \chi^2_k indépendantes.

La loi de Student ressemble à une normale centrée réduite, mais avec des queues plus épaisses : c’est le prix de l’incertitude sur σ\sigma. Elle s’en rapproche quand kk augmente : le quantile d’ordre 0,975 vaut 2,78 pour k=4k = 4, 2,26 pour k=9k = 9, 2,05 pour k=29k = 29, et tend vers 1,96. L’intervalle devient :

−4−20240,000,050,100,150,200,250,300,350,40densité1,962,262,78quantiles d’ordre 0,975 :ils s’écartent quandk diminueN(0, 1)Student t₉Student t₄
Les lois de Student ont des queues plus épaisses que la normale : pour laisser 2,5 % de chaque côté, il faut aller plus loin, et d'autant plus que k est petit.
μ∈[xˉ−tn−1(1−α/2)s′n ; xˉ+tn−1(1−α/2)s′n]\mu \in \left[\bar{x} - t_{n-1}(1 - \alpha/2) \frac{s'}{\sqrt{n}}\,;\, \bar{x} + t_{n-1}(1 - \alpha/2) \frac{s'}{\sqrt{n}}\right]
24,525,025,526,026,527,027,528,028,5autonomie (minutes)10 batteries26,3327,57σ connu (= 1)26,2827,62σ estimé : Studentx̄ = 26,95
Les deux intervalles sont centrés sur x̄ = 26,95 ; celui de Student est un peu plus large, car il paie l'estimation de σ. Tous deux sont bien plus étroits que la dispersion des batteries elles-mêmes.

En R, t.test fait tout le calcul :

autonomie <- c(26.1, 27.4, 25.8, 28.2, 26.9, 27.7, 25.5, 26.6, 28.0, 27.3)
n <- length(autonomie)
mean(autonomie); sd(autonomie) # 26.95 et 0.932 (sd divise par n - 1)
mean(autonomie) + qt(c(0.025, 0.975), df = n - 1) * sd(autonomie) / sqrt(n) # 26.28 27.62
t.test(autonomie, conf.level = 0.95)$conf.int # même résultat

Le fabricant veut aussi savoir si l’autonomie est régulière d’une batterie à l’autre : il faut un intervalle pour σ2\sigma^2. Pour des données normales, le pivot (n−1)S′2/σ2(n-1) S'^2 / \sigma^2 suit la loi χn−12\chi^2_{n-1}. En l’encadrant entre ses quantiles d’ordre α/2\alpha/2 et 1−α/21 - \alpha/2, puis en isolant σ2\sigma^2 :

σ2∈[(n−1) s′2χn−12(1−α/2) ; (n−1) s′2χn−12(α/2)]\sigma^2 \in \left[\frac{(n-1)\,s'^2}{\chi^2_{n-1}(1 - \alpha/2)}\,;\, \frac{(n-1)\,s'^2}{\chi^2_{n-1}(\alpha/2)}\right]

Attention à l’inversion : le grand quantile donne la borne inférieure. Pour les batteries, (n−1)s′2=9×0,869=7,825(n-1)s'^2 = 9 \times 0{,}869 = 7{,}825, et les quantiles de χ92\chi^2_9 valent 2,70 et 19,02. D’où σ2∈[0,41 ; 2,90]\sigma^2 \in [0{,}41\,;\,2{,}90], soit σ∈[0,64 ; 1,70]\sigma \in [0{,}64\,;\,1{,}70] minute. L’intervalle est large et asymétrique : 10 mesures renseignent mal sur la dispersion.

0102030(n − 1) S′² / σ²0,000,020,040,060,080,10densité2,5 % au-delàde 19,022,5 % sous 2,7095 %Pivot : loi χ² à 9 degrés de liberté0123σ² (minutes²)s′² = 0,8690,412,90IC à 95 % pour σ² : asymétrique
La loi du khi-deux n'est pas symétrique, donc l'intervalle pour σ² ne l'est pas non plus : l'estimation 0,869 est bien plus proche de la borne basse que de la borne haute.

Enfin, le fabricant sonde 400 clients : 92 d’entre eux déclarent utiliser leur drone plus de 25 minutes d’affilée, soit une proportion observée p^=0,23\hat{p} = 0{,}23. Le nombre de « oui » suit B(n,p)\mathcal{B}(n, p), que le TCL approche par une normale (chapitre 8) dès que n≥30n \geq 30, np≥5np \geq 5 et n(1−p)≥5n(1-p) \geq 5. Le pivot p^−pp(1−p)/n\frac{\hat{p} - p}{\sqrt{p(1-p)/n}} suit donc approximativement N(0,1)\mathcal{N}(0, 1), et :

p∈[p^−u1−α/2p(1−p)n ; p^+u1−α/2p(1−p)n]p \in \left[\hat{p} - u_{1-\alpha/2} \sqrt{\frac{p(1-p)}{n}}\,;\, \hat{p} + u_{1-\alpha/2} \sqrt{\frac{p(1-p)}{n}}\right]

Problème : pp, l’inconnue, apparaît dans les bornes. Deux solutions :

  • remplacer pp par p^\hat{p} dans la racine (intervalle de Wald, très répandu mais approximatif, surtout quand p^\hat{p} est proche de 0 ou de 1) : 0,23±1,960,23×0,77/400=0,23±0,0410{,}23 \pm 1{,}96\sqrt{0{,}23 \times 0{,}77 / 400} = 0{,}23 \pm 0{,}041, soit [0,189 ; 0,271][0{,}189\,;\,0{,}271] ;
  • utiliser la borne p(1−p)≤1/4p(1 - p) \leq 1/4, valable pour tout pp, qui donne un intervalle prudent : p^±u1−α/2/(2n)=0,23±0,049\hat{p} \pm u_{1-\alpha/2} / (2\sqrt{n}) = 0{,}23 \pm 0{,}049, soit [0,181 ; 0,279][0{,}181\,;\,0{,}279].

La version prudente est un peu plus large, mais son niveau de confiance est garanti quel que soit pp. Elle donne aussi la formule de taille des sondages : pour une précision de ±2\pm 2 points à 95 %, il faut n≥(1,96/(2×0,02))2≈2 401n \geq (1{,}96/(2 \times 0{,}02))^2 \approx 2\,401 personnes.

ParamètreHypothèsePivot et loiIntervalle à 1−α1 - \alpha
μ\muσ\sigma connuXˉ−μσ/n∼N(0,1)\frac{\bar{X} - \mu}{\sigma/\sqrt{n}} \sim \mathcal{N}(0,1)xˉ±u1−α/2 σ/n\bar{x} \pm u_{1-\alpha/2}\,\sigma/\sqrt{n}
μ\muσ\sigma inconnuXˉ−μS′/n∼tn−1\frac{\bar{X} - \mu}{S'/\sqrt{n}} \sim t_{n-1}xˉ±tn−1(1−α/2) s′/n\bar{x} \pm t_{n-1}(1-\alpha/2)\,s'/\sqrt{n}
σ2\sigma^2données normales(n−1)S′2σ2∼χn−12\frac{(n-1)S'^2}{\sigma^2} \sim \chi^2_{n-1}voir la formule ci-dessus
ppnn grandp^−pp(1−p)/n≈N(0,1)\frac{\hat{p} - p}{\sqrt{p(1-p)/n}} \approx \mathcal{N}(0,1)p^±u1−α/2/(2n)\hat{p} \pm u_{1-\alpha/2}/(2\sqrt{n}) (prudent)

La simulation suivante illustre la bonne interprétation du niveau de confiance : on tire 100 échantillons d’une loi dont on connaît la moyenne, et l’on compte combien d’intervalles la contiennent.

set.seed(15)
contient <- replicate(100, {
x <- rnorm(10, mean = 27, sd = 1) # un échantillon de 10 batteries, vraie moyenne 27
ic <- t.test(x)$conf.int
ic[1] <= 27 && 27 <= ic[2]
})
sum(contient) # environ 95 intervalles sur 100 contiennent 27
25,526,026,527,027,528,028,5intervalle de Student à 95 % calculé sur 10 batteries (minutes)vraie moyenne μ = 2795 intervallescontiennent μ5 lemanquent
Chaque échantillon donne un intervalle différent. La procédure capture la vraie moyenne 95 fois sur 100 ; les 5 intervalles roses sont des échantillons malchanceux, et rien ne permet de les reconnaître sans connaître μ.
  • Un estimateur est une variable aléatoire fonction de l’échantillon ; on le juge par son biais et sa variance.
  • Xˉn\bar{X}_n estime μ\mu sans biais ; S′2S'^2 (division par n−1n - 1) estime σ2\sigma^2 sans biais, alors que la division par nn sous-estime.
  • Un intervalle de confiance se construit à partir d’un pivot de loi connue ; son niveau porte sur la procédure, pas sur l’intervalle calculé.
  • Moyenne : loi normale si σ\sigma est connu, loi de Student tn−1t_{n-1} sinon ; la demi-largeur décroît en 1/n1/\sqrt{n}.
  • Variance : loi du khi-deux χn−12\chi^2_{n-1}, intervalle asymétrique et sensible à la non-normalité.
  • Proportion : approximation normale, avec la borne prudente p^±u1−α/2/(2n)\hat{p} \pm u_{1-\alpha/2}/(2\sqrt{n}).

Exercice · Un intervalle avec écart-type connu

facile

Une machine remplit des paquets avec un écart-type connu de 5 g. Sur 25 paquets, le poids moyen est de 512,3 g. Donnez un intervalle de confiance à 95 % pour le poids moyen, puis dites combien de paquets il faudrait peser pour une précision de ±1\pm 1 g.

Voir la solution

Demi-largeur : 1,96×5/25=1,961{,}96 \times 5/\sqrt{25} = 1{,}96 g. L’intervalle est [510,34 ; 514,26][510{,}34\,;\,514{,}26] g.

Pour une demi-largeur de 1 g : n≥(1,96×5/1)2=96,04n \geq (1{,}96 \times 5/1)^2 = 96{,}04, donc 97 paquets. Diviser la demi-largeur par deux demande quatre fois plus de mesures.

En code

import numpy as np
from scipy import stats
sigma, n, moyenne = 5, 25, 512.3
u = stats.norm.ppf(0.975) # 1.96
demi_largeur = u * sigma / np.sqrt(n)
print(demi_largeur) # 1.96
print(moyenne - demi_largeur, moyenne + demi_largeur) # 510.34 514.26
# Taille d'échantillon pour une demi-largeur de 1 g
print((u * sigma / 1) ** 2, np.ceil((u * sigma / 1) ** 2)) # 96.04 97.0

Exercice · Un sondage serré

moyen

Avant un vote d’association, on interroge 1 000 membres tirés au hasard : 540 sont favorables à la proposition.

  1. Donnez l’intervalle de Wald et l’intervalle prudent à 95 %.
  2. Peut-on affirmer, avec 95 % de confiance, que la proposition est majoritaire ?
Voir la solution
  1. p^=0,54\hat{p} = 0{,}54. Wald : 0,54±1,960,54×0,46/1 000=0,54±0,0310{,}54 \pm 1{,}96\sqrt{0{,}54 \times 0{,}46/1\,000} = 0{,}54 \pm 0{,}031, soit [0,509 ; 0,571][0{,}509\,;\,0{,}571]. Prudent : 0,54±1,96/(21 000)=0,54±0,0310{,}54 \pm 1{,}96/(2\sqrt{1\,000}) = 0{,}54 \pm 0{,}031, soit [0,509 ; 0,571][0{,}509\,;\,0{,}571] aussi. Les deux coïncident presque, car p^\hat{p} est proche de 1/21/2, où p(1−p)p(1-p) atteint justement son maximum 1/41/4.
  2. Les deux intervalles sont entièrement au-dessus de 0,5 : oui, au niveau 95 %, les données sont compatibles avec une proportion favorable supérieure à 50 %, et incompatibles avec 50 % ou moins. Mais la marge est mince (la borne basse vaut 50,9 %), et le raisonnement suppose un tirage réellement aléatoire et des réponses sincères. Le chapitre 10 formalise ce type de conclusion sous forme de test.

En code

import numpy as np
from scipy import stats
n, oui = 1000, 540
p_chapeau = oui / n
u = stats.norm.ppf(0.975)
wald = u * np.sqrt(p_chapeau * (1 - p_chapeau) / n)
prudent = u / (2 * np.sqrt(n))
print(p_chapeau - wald, p_chapeau + wald) # 0.5091 0.5709
print(p_chapeau - prudent, p_chapeau + prudent) # 0.5090 0.5710
# Les deux bornes basses dépassent 0.5 : majorité au niveau 95 %

Exercice · Le biais de la variance empirique

difficile

Soient X1,…,XnX_1, \dots, X_n i.i.d. d’espérance μ\mu et de variance σ2\sigma^2.

  1. Montrez que ∑i(Xi−Xˉ)2=∑i(Xi−μ)2−n(Xˉ−μ)2\sum_i (X_i - \bar{X})^2 = \sum_i (X_i - \mu)^2 - n(\bar{X} - \mu)^2.
  2. Déduisez-en E[∑i(Xi−Xˉ)2]=(n−1)σ2E\left[\sum_i (X_i - \bar{X})^2\right] = (n-1)\sigma^2, puis le biais de S2S^2.
  3. Interprétez le cas extrême d’une seule observation (n=1n = 1) : que vaut alors S2S^2 ?
Voir la solution
  1. On écrit Xi−Xˉ=(Xi−μ)−(Xˉ−μ)X_i - \bar{X} = (X_i - \mu) - (\bar{X} - \mu) et on développe : ∑i(Xi−Xˉ)2=∑i(Xi−μ)2−2(Xˉ−μ)∑i(Xi−μ)+n(Xˉ−μ)2\sum_i (X_i - \bar{X})^2 = \sum_i (X_i - \mu)^2 - 2(\bar{X} - \mu)\sum_i (X_i - \mu) + n(\bar{X} - \mu)^2. Or ∑i(Xi−μ)=n(Xˉ−μ)\sum_i (X_i - \mu) = n(\bar{X} - \mu), donc le terme du milieu vaut −2n(Xˉ−μ)2-2n(\bar{X} - \mu)^2, d’où le résultat.
  2. En prenant l’espérance : E[(Xi−μ)2]=σ2E[(X_i - \mu)^2] = \sigma^2 et E[(Xˉ−μ)2]=Var(Xˉ)=σ2/nE[(\bar{X} - \mu)^2] = \mathrm{Var}(\bar{X}) = \sigma^2/n. Donc E[∑i(Xi−Xˉ)2]=nσ2−n×σ2/n=(n−1)σ2E\left[\sum_i (X_i - \bar{X})^2\right] = n\sigma^2 - n \times \sigma^2/n = (n - 1)\sigma^2. On en déduit E[S2]=n−1nσ2E[S^2] = \frac{n-1}{n}\sigma^2 : le biais vaut −σ2/n-\sigma^2/n, et il disparaît quand nn grandit.
  3. Avec une seule observation, Xˉ=X1\bar{X} = X_1 et S2=0S^2 = 0 quelle que soit la dispersion réelle : une seule mesure ne dit rien de la variabilité. La version corrigée divise par n−1=0n - 1 = 0 et n’est pas définie, ce qui est plus honnête. On dit qu’on a « consommé un degré de liberté » en estimant μ\mu par Xˉ\bar{X} : c’est l’origine des n−1n - 1 degrés de liberté de la loi de Student.

En code

import numpy as np
# 200 000 échantillons de taille n = 5, de variance sigma^2 = 4
rng = np.random.default_rng(0)
n, sigma2 = 5, 4
x = rng.normal(10, np.sqrt(sigma2), size=(200_000, n))
s2_biaise = x.var(axis=1, ddof=0) # division par n
s2_corrige = x.var(axis=1, ddof=1) # division par n - 1
print(s2_biaise.mean(), (n - 1) / n * sigma2) # 3.21 3.2
print(s2_corrige.mean()) # 4.01, sans biais
# Cas n = 1 : la version biaisée vaut toujours 0
print(np.var([7.3]), np.var([7.3], ddof=1)) # 0.0 nan (avec un avertissement)