Dans un pays imaginaire, la probabilité qu'un citoyen pris au hasard vote oui à un référendum est 0,48. On va simuler l'organisation de :
et on analyse les résultats obtenus, chaque sondage fournissant une fréquence de personnes déclarant voter oui.
On a créé 6 boites à moustaches décrivant chacune la répartition des 500 fréquences obtenues.
#-*- coding:Utf-8 -*-
from random import *
import math
from pylab import*
def sondage(p,n,k):
t=0
for k in range(n):
t=t+math.floor(p+random())
t=t/n
return t
##probabilité du OUI
p=0.48
##nombre de sondages
x=500
bilan5=[sondage(p,500,k) for k in range(x)]
bilan10=[sondage(p,1000,k) for k in range(x)]
bilan20=[sondage(p,2000,k) for k in range(x)]
bilan50=[sondage(p,5000,k) for k in range(x)]
bilan100=[sondage(p,10000,k) for k in range(x)]
bilan200=[sondage(p,20000,k) for k in range(x)]
bilan=(bilan5,bilan10,bilan20,bilan50,bilan100,bilan200)
boxplot(bilan,0,vert=0,sym="o")
##enregistrer l'image
savefig('boite.png')
##visualiser l'image
show()On importe le module random et le module math pour
les fonctions random() et floor()
On importe pylab pour tout ce qui est graphique : fonction boxplot(), savefig(), show() et tout ce qui permet d'améliorer la présentation (voir script complet). Voir cette page
On a défini une fonction sondage() qui dépend de p (probabilité de vote oui et n (effectif de l'échantillon); malgré les apparences, elle ne dépend pas de k (c'est juste un artifice pour créer un tableau de fréquences).
fait le 23 janvier 2009