Probabilités de gain: simulation & fluctuations
Simuler et tracer des résultats aléatoires suivant une loi de probabilité donnée
Dans la calculatrice graphique suivante, on simule aléatoirement un échantillon de n répétitions de tirages aléatoires suivant la loi de probabilité donnée.Pour bien observer le comportement, on peut simuler et tracer superposés les résultats aléatoires obtenus pour N simulations de ces échantillons de taille n.
On peut tracer aussi l'asymptote: valeur moyenne théorique sur l'ensemble des répétitions: on retrouve la valeur de l'espérance mathématique.
De même, l'écart type vient compléter les calculs en permettant de tracer l'intervalle de fluctuation, dont les éléments caractéristiques s'affiche lorsque la case correspondante est cochée. Les détails mathématiques plus complets (avec les inégalités de Markov et de Bienaymé-Tchebychev, sont sur cette page.
Paramètres de la simulation: loi de probabilité
Représentation graphique de la simulation
- L'amplitude des fluctuations de la moyenne des n répétitions indépendantes d'une variable aléatoire est proportionelle à l'écart type de la variable et inversement proportionnelle à la racine carrée du nombre de répétitions: αn ∼ k σ(X) n
- L'amplitude des fluctuations de la somme des n répétitions indépendantes d'une variable aléatoire est proportionelle à l'écart type de la variable et à la racine carrée du nombre de répétitions: αn ∼ k σ(X) n
Voir les détails et démonstrations de ces propriétés sur cette page.
Programme python correspondant +
from pylab import *
from random import choices
Gains=[10, 0, -2]
probas=[0.33, 0.33 ,0.33]
# Calculs de l'esperance
EX=0
for i in range(len(Gains)):
EX=EX+probas[i]*Gains[i]
# puis de la variance: moyenne des carrés des écarts à la moyenne
VX=0
for i in range(len(Gains)):
VX=VX+probas[i]*(Gains[i]-EX)**2
# et enfin l'ecart type
SX=sqrt(VX)
print("EX = ",EX)
print("VX = ",VX)
print("SX = ",SX)
for k in range():
GainTotal=0
listGains=[]
for i in range(1,):
a=choices(Gains, weights=probas)[0]
GainTotal=GainTotal+a
listGains.append(GainTotal/i)
plot(listGains,"k")
# Asymptote
listAsymp=[]
# Bornes de fluctuation
listFluctuSup=[]
listFluctuInf=[]
listFluctuInf=[]
const=2
for i in range(1,):
listAsymp.append(i*EX)
listFluctuSup.append(i*EX+const*SX*sqrt(i))
listFluctuInf.append(i*EX-const*SX*sqrt(i))
plot(listAsymp,"-r")
plot(listFluctuSup,"-b")
plot(listFluctuInf,"-b")
show()