Chapitre 7 Estimation et intervalles de confiance

Dans cette partie nous allons construire des échantillons par simulation et nous intéresser à l’étude de la moyenne de ces échantillons.

7.1 Générer des observations selon des lois de probabilités

R étant un logiciel de statistique, il est bien entendu possible de

  • visualiser
  • calculer des quantiles
  • générer des observations

pour toutes les lois classiques de probabilités. Chaque loi va être identifiée par une chaîne de caractères :

Loi Chaine
Binomiale binom
Poisson pois
Uniforme unif
Exponentielle exp
Normale norm

Un préfixe permettra de spécifier l’action que l’on souhaite effectuer sur la loi :

  • d : calculer la densité pour une loi continue ou la fonction de masse pour une loi discrète
  • q : calculer les quantiles
  • r : générer des observations.

On pourra par exemple :

  • Calculer la densité de la loi \(\mathcal N(0,1)\) en -1,0,1 avec

    dnorm(c(-1,0,1),mean=0,sd=1)
    [1] 0.2419707 0.3989423 0.2419707
  • Calculer les quantiles d’ordre 0.05, 0.5 et 0.95 de la loi \(\mathcal N(0,1)\) en -1,0,1 avec

    qnorm(c(0.05,0.5,0.95),mean=0,sd=1)
    [1] -1.644854  0.000000  1.644854
  • Générer 10 observations selon une loi \(\mathcal N(0,1)\) avec

    rnorm(10,mean=0,sd=1)
     [1]  0.20222019 -1.19621049  0.04375938 -0.05545961
     [5]  1.08570925  1.76993522  1.98121980  0.67664960
     [9] -1.00061208 -0.31680937
Exercice 7.1 (Loi binomiale)
  1. Soit \(X\) un variable de loi binomiale \(B(20,0.6)\). Calculer la probabilité que \(X\) soit égale à 1,5,10,15.

  2. Pour la même loi calculer la probabilités : \[\mathbf P(X\leq 13),\quad\mathbf P(X>13),\quad \mathbf P(X\geq 13)\quad\text{et}\quad \mathbf P(X\in[8,15]).\]

  3. Représenter le diagramme en barre associé à la loi \(B(20,0.6)\). On pourra utiliser l’argument stat=“identity” dans la fonction geom_bar.

  4. Générer un échantillon de taille 5000 selon la loi \(B(20,0.6)\). Tracer le diagramme en barres associé à cet échantillon et comparer le à celui de la question précédente.

Exercice 7.2 (Loi normale)
  1. Tracer la densité de la loi \(\mathcal N(0,1)\).

  2. Soit \(X\) une variable aléatoire de loi \(\mathcal N(2,2^2)\) (variance 4, écart-type 2). Calculer les probabilités suivantes : \[\mathbf P(X=2),\quad \mathbf P(X\leq 2),\quad \mathbf P(X<2),\quad \mathbf P(X>3).\]

  3. Générer un échantillon de taille 5000 selon la loi \(\mathcal N(0,1)\). Tracer l’histogramme associé à cet échantillon et comparer le à la densité tracée à la question précédente (on pourra supperposer les 2 représentations).

7.2 Une étude numérique de la moyenne empirique.

On considère un échantillon de \(x_1,\dots,x_n\) i.i.d de loi uniforme sur \([a,b]\) avec \(a\) et \(b\) supposés inconnus. Le problème est d’estimer l’espérance de cette loi uniforme \[\mathbf E[X]=\frac{a+b}{2}.\]

Un estimateur naturel est la moyenne empirique \[\bar x_n=\frac{1}{n}\sum_{i=1}^nx_i\] Remarquons déjà que la moyenne empirique dépend des observations \(x_1,\dots,x_n\) : la moyenne va donc changer lorsque les observations changent.

7.2.1 Exemple

Pour fixer les idées, on suppose dans cette partie que \(a=0\) et \(b=1\). L’espréance à estier est donc 0.5 (on peut faire comme si on le la connaissait pas.)

On considère deux échantillons de taille 20 générées selon une loi uniforme entre 0 et 1 :

ech1 <- runif(20)
ech2 <- runif(20)
df <- data.frame(ech1,ech2)

Les moyennes empiriques pour ces deux échantillons sont différentes :

df %>% summarise_all(mean)
       ech1      ech2
1 0.6333745 0.4300223

La moyenne empirique peut-être considérée comme une variable aléatoire : elle va donc posséder une loi de probabilité, une espérance… Si on considère l’exemple précédent, on sent bien que la distribution de la moyenne empirique doit

  • se répartir autours de 0.5 (qui est la valeur à estimer).
  • être de plus en plus concentrée autours de 0.5 lorsque le nombre d’observations \(n\) augmente.

On peut visualiser ce fait en considérant un grand nombre d’échantillon et en regardant comment se comporte les valeurs moyennes de chaque échantillon. Pour cela on

  1. génère un nombre \(B\) (grand) d’échantillons de taille \(n=20\) selon une loi uniforme entre 0 et 1.

    set.seed(1234)
    df <- matrix(runif(20*5000),nrow=20) %>% as.data.frame()
  2. calcule les moyennes obtenues pour chaque échantillon

    moy <- df %>% summarize_all(mean)
    head(t(moy))
            [,1]
    V1 0.4719301
    V2 0.4449401
    V3 0.4833523
    V4 0.3740339
    V5 0.4132300
    V6 0.3734092
  3. visualise la distribution de la moyenne de chaque échantillon (en traçant l’histogramme de ces valeurs par exemple).

    moy <- data.frame(M=t(moy))
    ggplot(moy)+aes(x=M,y=..density..)+geom_histogram(bins=20)+theme_classic()

On voit que cette distribution semble se comporter comme une distribution gaussienne autours de la vraie valeur (0.5). Le théorème central limite confirme (et surtout prouve) ce constat. En effet, le théorème central limite nous dit que cette moyenne \(\bar x_n\) vérifie \[\sqrt{n}\frac{\bar x_n-\mu}{\sigma}\to \mathcal N(0,1)\] avec \(\mu=0.5\) et \(\sigma=1/\sqrt{12}\) ici. On a donc \[\sqrt{n}\frac{\bar X_n-0.5}{1/\sqrt{12}}\to \mathcal N(0,1)\] Ce qui signifie qu’on peut approcher la loi de \(\bar X_n\) par la loi \(\mathcal N(0.5,1/(12n))\) avec \(n=20\). On le retrouve sur notre exemple en supperposant cette distribution gaussienne sur l’histogramme

x <- seq(0.25,0.75,by=0.001)
df <- data.frame(x=x,y=dnorm(x,0.5,1/(sqrt(12*20))))
ggplot(moy)+aes(x=M,y=..density..)+geom_histogram(bins=20)+
  geom_line(data=df,aes(x=x,y=y),color="red",size=2)+xlab("x")

Exercice 7.3 (Théorème central limite)

Faire le même travail pour des tailles d’échantillon de 50, 100 et 500. Interpréter.

Exercice 7.4 (Théorème central limite (toujours))

Faire le même exercice pour une loi gaussienne \(\mathcal N(1,2)\) et une loi de Bernoulli \(\mathcal B(0.6)\).

7.3 Intervalles de confiance

On cherche ici à illustrer numériquement le niveau d’un intervalle de confiance. On rappelle que \([A,B]\) est un IC de niveau \(1-\alpha\) pour un paramètre \(\theta\) si \[P(\theta\in[A,B])=1-\alpha.\]

Exercice 7.5 (IC pour l’espérance d’une gaussienne)

On fixe ici le niveau à 0.95 (\(\alpha=0.05\)). On considère \(n\) observations \(x_1,\dots,x_n\) i.i.d de loi \(\mathcal N(\mu,1)\) et on cherche un intervalle de confiance pour \(\mu\).

  1. Générer \(n=100\) observations i.i.d. selon la loi \(\mathcal N(\mu,1)\) avec \(\mu=1\).

  2. Calculer un intervalle de confiance pour \(\mu\) de niveau 0.95.

  3. Selon-vous, peut-on dire que la probabilité que \(\mu\) appartienne à l’intervalle trouvé est de 0.95 ? Si non, comment peut-on interpréter cette formule.

  4. Générer 5000 échantillons i.i.d. de loi \(\mathcal N(1,1)\) de tailles 100. On pourra mettre le tout dans une matrice de dimension \(5000\times 100\).

  5. Calculer un intervalle de confiance de niveau 0.95 pour chacun des 5000 échantillons. On pourra utiliser une boucle for ou la fonction apply.

  6. Sur les 5000 intervalles obtenus, calculer le nombre de fois où la vraie valeur de \(\mu\) (en l’occcurence ici 1) se trouve à l’intérieur de l’intervalle.

  7. Refaire les questions 5-6-7 avec des IC de niveau 0.90.

Exercice 7.6 (IC pour les iris de Fisher)

On considère les données sur les iris de Fisher. Construire un intervalle de confiance de niveau 90% pour les paramètres suivants :

  • La longueur de Pétales moyenne

  • La largeur de Sépales moyenne de l’espèce Setosa

  • La largeur de Sépales moyenne des espèces Versicolor et Virginica

Exercice 7.7 (IC pour une proportion)

On considère \(x_1,\dots,x_n\) un échantillon i.i.d issu d’une loi de Bernoulli de paramètre \(p\in[0,1]\) inconnu.

  1. Proposer un estimateur \(\widehat p\) pour \(p\).

  2. A l’aide du TCL, obtenir la loi asymptotique de \(\hat p\).

  3. En déduire un intervalle de confiance de niveau \(1-\alpha\) pour \(p\).

  4. Que pouvez-vous reprocher à l’intervalle proposé à la question précédente ?

  5. Proposer une solution.

Exercice 7.8 (IC pour une proportion (suite))

Afin de tenter de deviner qui va gagner une élection entre deux candidats \(A\) et \(B\) on effectue un sondage. On demande à 100 personnes pour qui elles vont voter. Les résultats sont reportés dans le vecteur suivant.

set.seed(12345)
res <- rbinom(100,1,0.52)

On désigne par \(p\) la propotion (inconnue) d’électeurs qui vont voter pour \(A\).

  1. Proposer et calculer un estimateur de \(p\).

  2. Que pouvez-vous conclure a priori.

  3. En vous basant sur l’exercice précédent, calculer un intervalle de confiance de niveau 95% pour \(p\).

  4. Est-ce que l’intervalle obtenu conforte votre conclusion de la question 2 ?

  5. Calculer un intervalle de confiance pour \(p\) à l’aide de la fonction prop.test.

Exercice 7.9 (Comparaison de moyennes)

Pour le jeu de données decathlon disponible ici

library(FactoMineR)
data(decathlon)

on souhaite comparer les performances au 100m en fonction de la compétition (Decastar vs JO).

  1. Calculer un intervalle de confiance de niveau 95% pour la vitesse moyenne au 100m au Decastar.

  2. Même question pour les jeux olympiques.

  3. Pouvez-vous conclure sur la question posée ? Si non, que faire ?