Fluctuation d'échantillonnageIntroduction
Dans l'animation ci-dessous on simule, tous les dixièmes de seconde, 10 lancers d'une pièce équilibrée et on affiche la proportion de piles et de faces obtenus dans un diagramme.
Xmin = 0
Xmax = 10
Ymin = 0
Ymax = 10
function traceDiag(){
peinture = blanc
transparence = 1
rectangle([-1,11],20,20)
couleur = "rgb(0,255,100)"
peinture = "rgb(0,255,100)"
freq = frequence()
rectangle([3,10],4,10)
peinture = "rgb(255,100,0)"
couleur = "rgb(255,100,0)"
rectangle([3,10],4,10*(1-freq))
couleur = noir
txt = Math.round(freq*10)/10
texte(txt,[1,4.8])
}
function frequence(){
s = 0
for(var i = 0; i < 10; i++){
f = rand()
if( f > 0.5 ){s++}
}
return s/10;
}
setInterval(function (){ traceDiag() },100);
Même principe dans cette nouvelle animation mais on lance cette fois-ci 100 pièces.
Xmin = 0
Xmax = 10
Ymin = 0
Ymax = 10
function traceDiag2(){
peinture = blanc
transparence = 1
rectangle([-1,11],20,20)
couleur = "rgb(0,255,100)"
peinture = "rgb(0,255,100)"
freq = frequence2()
rectangle([3,10],4,10)
peinture = "rgb(255,100,0)"
couleur = "rgb(255,100,0)"
rectangle([3,10],4,10*(1-freq))
couleur = noir
txt = Math.round(freq*100)/100
texte(txt,[1,4.8])
}
function frequence2(){
s = 0
for(var i = 0; i < 100; i++){
f = rand()
if( f > 0.5 ){s++}
}
return s/100;
}
setInterval(function (){ traceDiag2() },100);
Idem mais avec 1000 lancers.
Xmin = 0
Xmax = 10
Ymin = 0
Ymax = 10
function traceDiag3(){
peinture = blanc
transparence = 1
rectangle([-1,11],20,20)
couleur = "rgb(0,255,100)"
peinture = "rgb(0,255,100)"
freq = frequence3()
rectangle([3,10],4,10)
peinture = "rgb(255,100,0)"
couleur = "rgb(255,100,0)"
rectangle([3,10],4,10*(1-freq))
couleur = noir
txt = Math.round(freq*1000)/1000
texte(txt,[1,4.8])
}
function frequence3(){
s = 0
for(var i = 0; i < 1000; i++){
f = rand()
if( f > 0.5 ){s++}
}
return s/1000;
}
setInterval(function (){ traceDiag3() },100);
Et enfin, pour 10 000 lancers.
Xmin = 0
Xmax = 10
Ymin = 0
Ymax = 10
function traceDiag4(){
peinture = blanc
transparence = 1
rectangle([-1,11],20,20)
couleur = "rgb(0,255,100)"
peinture = "rgb(0,255,100)"
freq = frequence4()
rectangle([3,10],4,10)
peinture = "rgb(255,100,0)"
couleur = "rgb(255,100,0)"
rectangle([3,10],4,10*(1-freq))
couleur = noir
txt = Math.round(freq*10000)/10000
texte(txt,[1,4.8])
}
function frequence4(){
s = 0
for(var i = 0; i < 10000; i++){
f = rand()
if( f > 0.5 ){s++}
}
return s/10000;
}
setInterval(function (){ traceDiag4() },100);
On remarque donc que toutes les fréquences fluctuent autour de la probabilité $\dfrac{1}{2}$, mais plus le nombre de lancers (la taille de l'échantillon) est importante, moins cette fluctuation l'est.
Avec la loi binomiale
Soit $n$ un entier naturel non nul et $p\in[0\,;1]$. On considère une variable $X$ qui suit la loi binomiale de paramètres $n$ et $p$.
Puisque, pour tout entier $k$, $P(X \leq k) = P(X=0)+P(X=1)+\cdots+P(X=k)$, la suite de nombres :
$P(X \leq 0)$, $P(X \leq 1)$, $P(X \leq 2)$, $\dots$ , $P(X \leq n)$
est ordonnée dans l'ordre croissant, avec pour dernière valeur $P(X \leq n)=1$.
Ainsi, on peut trouver le plus grand entier $a$ tel que $P(X < a) \leq 0,025$.
On peut également trouver le plus petit entier $b$ tel que $P(X \leq b)\geq 0,975$.
L'intervalle $\left[ \dfrac{a}{n} \,; \dfrac{b}{n} \right]$ est appelé intervalle de fluctuation au seuil de $95$ % de la fréquence de succès.
On lance $100$ fois, de manière indépendante, une pièce équilibrée. La variable aléatoire $X$ qui compte le nombre de piles obtenu parmi les $100$ lancers, suit la loi binomiale de paramètres $100$ et $0,5$.
À l'aide de la calculatrice on peut remplir le tableau suivant :
$k$
$P(X\leq k)$
$36$
$0,003\,3$
$37$
$0,006\,0$
$38$
$0,010\,4$
$39$
$0,017\,6$
$40$
$0,028\,4$
$\cdots$
$\cdots$
$58$
$0,955\,7$
$59$
$0,971\,6$
$60$
$0,982\,4$
$61$
$0,989\,5$
On trouve que $P(X < 40) \leq 0,025$ et $P(X\leq 60) \geq 0,975$, avec $40$ et $60$ respectivement les plus grands et plus petits entiers vérifiant ces inégalités.
Ainsi, l'intervalle $[0,4\,; 0,6]$ est un intervalle de fluctuation au seuil de $95$ % de la fréquence de piles parmi les $100$ lancers.
L'algorithme ci-dessous simule $500$ expériences de $100$ lancers d'une pièce de monnaie équilibrée et affiche la proportion d'expériences où la fréquence de piles est dans l'intervalle $[0,4\,; 0,6]$.
from random import*
from math import*
def intervalle(n):
intervalle = False
s = 0.0
for i in range(0,n):
f = random()
if f < 0.5:
s = s+1
f = s/n
if f >= 0.4 and f <= 0.6:
intervalle = True
return intervalle
def simule(m,n):
c = 0.0
for i in range(0,m):
if intervalle(n):
c = c+1
return c/m
print(simule(500,100))
En exécutant plusieurs fois l'algorithme nous voyons que le seuil de $95$ % est quasiment toujours respecté, les résultats étant supérieurs à $0,95$ dans l'immensité des cas.
Intervalle de fluctuation d'échantillonnage asymptotique
Dans les anciens programmes de terminale S et ES on trouvait une formule pour un autre intervalle de fluctuation d'échantillonnage au seuil de $95$ % (cf cours suivant).
On a la propriété suivante :
Soit $n\in\mathbb{N}^*$ et $p\in[0;1]$.
Si la variable aléatoire $X_n$ suit $\mathcal{B}(n,p)$, alors :
$$\lim_{n \to +\infty}P\left(\frac{X_{n}}{n}\in I_{n}\right)=0,95$$
où $I_{n}$ désigne l'intervalle $\left[p-1,96\frac{\sqrt{p(1-p)}}{\sqrt{n}}\,;p+1,96\frac{\sqrt{p(1-p)}}{\sqrt{n}}\right]$.
En pratique l'approximation est considérée valable dès que $n\geq30$, $np\geq5$ et $n(1-p)\geq5$.
On lance $100$ fois, de manière indépendante, une pièce équilibrée. La variable aléatoire $X$ qui compte le nombre de piles obtenu parmi les $100$ lancers, suit la loi binomiale de paramètres $n=100$ et $p=0,5$.
On a bien $n\geq30$, $np=50 \geq 5$ et $n(1-p)=50\geq 5$, ainsi l'intervalle
est un intervalle de fluctuation au seuil de $95$ % de la fréquence de piles.
On trouve un résultat proche que celui, dit exact, obtenu avec la loi binomiale.
L'intervalle de fluctuation exacte est plus précis mais il n'est pas obtenu par une formule. L'intervalle de fluctuation asymptotique est lui déterminée par une formule ce qui est intéressant pour obtenir une intervalle de confiance.
Un dé à $6$ faces est supposé être équilibré. On le lance $50$ fois et on obtient $13$ fois la face portant le numéro 6.
En moyenne (ou dans l'idéal) on aurait dû obtenir $50\times\dfrac{1}{6} \approx 8$ fois la face numéro 6. La question est de savoir si on peut affirmer que ce dé est truqué ou non.
On émet l'hypothèse que ce dé est équilibré. Le fait de le lancer une fois et de regarder si on obtient la face numéro 6 ou non est une épreuve de Bernoulli de paramètre $\dfrac{1}{6}$ que l'on répète $50$ fois de manière indépendante. Ainsi, la variable aléatoire $X$ qui compte le nombre de face 6 obtenu suit la loi binomiale de paramètres $n=50$ et $p=\dfrac{1}{6}$.
On a $n\geq30$, et $np\approx 8,3\geq5$ et $n(1-p)\approx 41,7\geq5$ et donc l'intervalle
$\left[p-1,96\frac{\sqrt{p(1-p)}}{\sqrt{n}}\,;p+1,96\frac{\sqrt{p(1-p)}}{\sqrt{n}}\right]$ $=$ $[0,113 \,; 0,220 ]$
est un intervalle de fluctuation au seuil de 9595 % de la fréquence de face numéro 6.
La fréquence $\dfrac{13}{50}=0,26$ n'appartient pas à cet intervalle, on peut donc affirmer avec un risque d'erreur de $5$ % que le dé est truqué.