TD6: Théorème central limite et intervalle de confiance (RICM4, 2013)

Modélisation et application directe

Lancer de dé

L'espérance d'un lancer de dé est \( \mu = 21/6 \) et la variance est \( \sigma^2 = 91/6- (21/6)^2=35/12 \). Donc \( S_4 \approx N(84,70) = 84 + \sqrt{70}N(0,1) \).

La probabilité que la somme soit égale à 84 est donc à peu près égale à

pnorm(85, mean = 85, sd = sqrt(70)) - pnorm(84, mean = 85, sd = sqrt(70))
## [1] 0.04757

On peut aussi évidemment facilement calculer cette valeur à partir d'une table pour la loi normale centrée en 0 et de variance 1:

pnorm(1/sqrt(70)) - pnorm(0)
## [1] 0.04757

La probabilité que la somme soit supérieure à 84 est donc environ

pnorm(10000, mean = 85, sd = sqrt(70)) - pnorm(84, mean = 85, sd = sqrt(70))
## [1] 0.5476

Générons des séries de 24 lancers.

N = 10000
X = 0
for (i in 1:24) {
    X = X + floor(runif(N, min = 1, max = 7))
}

Regardons les histogrammes correspondant:

hist_tcl = function(X, mean = 0, var = 1) {
    par(mfrow = c(2, 1))
    hist(X)
    hist(rnorm(length(X), mean = mean, sd = sqrt(var)))
}
hist_tcl(X, 84, 70)

plot of chunk unnamed-chunk-5

Bon, petite ruse pour y voir plus clair et être sûr d'avoir les mêmes échelles.

library(ggplot2)
hist_tcl_ggplot = function(X, mean = 0, var = 1) {
    par(mfrow = c(1, 1))
    df = data.frame(x = X, val = "Sample")
    df = rbind(df, data.frame(x = rnorm(length(X), mean = mean, sd = sqrt(var)), 
        val = "TCL approximation"))
    # Méthode de Sturges pour calculer le nombre de bins
    ggplot(df, aes(x = x)) + geom_histogram(binwidth = diff(range(X))/(log2(length(X) + 
        1)), fill = "lightgray", color = "darkred") + facet_wrap(~val, ncol = 1) + 
        theme_bw()
}
hist_tcl_ggplot(X, 84, 70)

plot of chunk unnamed-chunk-6

C'est nous qui avons la plus grande!

La variance d'une loi uniforme entre \( a \) et \( b \) est \( \frac{1}{12}(b-a)^2 \). Donc dans notre cas l'espérance de notre mesure est de 1776 pieds et sa variance de \( \frac{4}{3} \) de pieds carrés.

Si on réalise une moyenne sur 18 mesures, l'espérance sera la même mais la variance sera de \( \frac{4}{3\times 18} \approx \) 0.0741.

La probabilité que la moyenne de 18 mesures indépendantes soit entre 1775 et 1777 pieds est donc d'environ

pnorm(1777, mean = 1776, sd = sqrt(4/3/18)) - pnorm(1775, mean = 1776, sd = sqrt(4/3/18))
## [1] 0.9998
N = 10000
X = 0
for (i in 1:18) {
    X = X + 1776 + runif(N, min = -2, max = 2)
}
X = X/18
hist_tcl_ggplot(X, 1776, 4/3/18)
## Warning: position_stack requires constant width: output may be incorrect
## Warning: position_stack requires constant width: output may be incorrect

plot of chunk unnamed-chunk-8

De passage à Vegas

Ben à vous de jouer! ;)

Illustration de la notion de confiance

Alors, est-ce qu'on tombe souvent à proximité de la vrai valeur ?

N = 10000
X = 0
for (i in 1:18) {
    X = X + 1776 + runif(N, min = -2, max = 2)
}
X = X/18
length(X[X >= 1775.5 & X <= 1776.6])/length(X)
## [1] 0.9524

Illustrons ce qu'il se passe:

XX = head(X, n = 40)
df = data.frame(x = XX, y = seq(1:length(XX)))
df$valid = 1
df[abs(df$x - 1776) > 0.6, ]$valid = 0
ggplot(df, aes(x = x, y = y, color = factor(valid))) + geom_point() + geom_errorbarh(aes(xmax = x - 
    0.6, xmin = x + 0.6)) + geom_vline(xintercept = 1776) + theme_bw()

plot of chunk unnamed-chunk-10

Pour améliorer la précision de l'estimation de notre mesure, il nous faudrait faire plus de msure. Pour conserver un intervalle de confiance, il faudrait que \( 2\frac{\sqrt{4/3}}{\sqrt{n}}=0,1 \), soit \( n \geqslant \) 533.3333.

Un problème d'initialisation

df = data.frame(row.names = c("n", "sample_mean", "sample_var"))
for (n in seq(2, 32)) {
    for (N in 1:30) {
        x = rnorm(n, 5, 1)
        df = rbind(df, data.frame(n = c(n), sample_mean = mean(x), sample_var = var(x)))
    }
}
ggplot(df, aes(x = n, y = sample_var)) + geom_point() + geom_hline(yintercept = 1) + 
    theme_bw()

plot of chunk unnamed-chunk-11

Même avec une estimation sur 32 échantillons, il n'est pas rare de se tromper de près d'un facteur 2 alors qu'on est pourtant parti d'une loi relativement simple… Même si la convergence vers la loi normale est rapide, l'estimation de la variance n'est pas si simple. Il vaut donc mieux prévoir large voire utiliser une borne sup…

J'en suis sûr à 95%!