Simulation de Variable Aléatoire Discrète

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 21

Simulation de lois, application au calcul d’espérance

Prof. MALIK Lahcen

01 Janvier 2021

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 1 / 21
Sommaire

1 Introduction

2 Générateur pseudo-aléatoire

3 Simulation à l’aide des méthodes particulières

4 Appliaction au calcul d’espérances

5 La méthode d’inversion
Fonction de répartition
La méthode d’inversion
Application

6 La commande grand
Définition de grand
Exemples

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 2 / 21
Introduction

Pourquoi le terme SIMULER


Parce qu’un ordinateur exécute un algorithme, c’est-à-dire une suite d’opérations
parfaitement déterminées.
L’idée est de produire une suite de nombre suffisamment imprévisible qui "imite" une
suite (Un )n≥1 de variables aléatoires indépendantes uniformes dans l’intervalle [0, 1[

But de simulation de variables aléatoires


Etude de teste statistiques.
Méthode de Monte-Carlo pour le calcul d’intégrale (espérance, variance, ...)
algorithmes probabilistes.
Simulation des phénomènes physique.
Science de données.
etc.

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 3 / 21
Générateur pseudo-aléatoire

Introduction
Un générateur pseudo-aléatoire est caractérisé par un triplet (S, f , s)
S est un ensemble fini (de cardinal grand) ;
f est une application f : S → S ;
s est un élément de S (s ∈ S) appelé "graine" (seed en anglais).
Un tel générateur fournit une suite de nombres de S notée (xn ) :
x0 = s : le premier nombre fourni est la graine ;
∀n ∈ N, xn+1 = f (xn ).

Remarque
La suite (xn ) obtenue est déterminée de manière unique par sa valeur initiale s.
On obtient ainsi une suite d’éléments de S.
Pour que ces résultats soient plus facilement exploitables, on utilise généralement une
fonction g : S → [0, 1] afin de transporter les valeurs de la suite (xn ) dans [0, 1] : on
obtient ainsi une suite (g(xn )) d’éléments dans [0, 1].
Ainsi, à s fixé, un générateur pseudo-aléatoire fournira toujours la même suite (g(xn )).

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 4 / 21
Générateur pseudo-aléatoire

Générateur pseudo-aléatoire prédéfini en Scilab : la fonction rand


Elle est basé sur la suite de nombre (Xn )n≥1 vérifiant la relation de récurrence (suite
congruentielle) :
Xn+1 = (aXn ) + c) mod M
On prend
Xn
Un = ∈ [0, 1[
M
pour Scilab : M = 231 , a = 843 314 861, c = 453 816 693

avantages du pseudo-aléatoire

Les simulations sont reproductibles.


En jouant sur la définition de la fonction g, on peut définir la répartition des valeurs
fournies par le générateur. Ce dernier point permet d’envisager la simulation de
variables suivant des lois de probabilités usuelles.

Générateur pseudo-aléatoire prédéfini en Scilab : la fonction rand


En Scilab La fonction rand implémente un générateur pseudo-aléatoire entre [0, 1[

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 5 / 21
Simulation à l’aide des méthodes particulières

Loi uniforme
Soient n et m deux entiers tels que n ≤ m. On rappelle que si U ,→ U ([0, 1]), alors on
a : V = n + b(m − n + 1)Uc ,→ U ([[n, m]])

Loi uniforme
1 Écrire une fonction die qui simule les lancers d’un dé non truqué.
2 Écrire une fonction uniforme(n,m) simulant la loi U ([[n, m]])
3 Écrire une fonction Uniforme(N,n,m) renvoyant un vecteur contenant N
réalisations indépendantes de la loi U ([[n, m]])

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 6 / 21
Simulation à l’aide des méthodes particulières

Loi de Bernoulli
On dit qu’une variable aléatoire X ,→ Ber (p) si X (Ω) = {0, 1} et P(X = 1) = p (p est
la probabilité de succès).

Soit U ,→ U[0,1]
On remarque que P(U ≤ p) = FU (p) = p = P(X = 1)
On en déduit que P(U > p) = 1 − P(U ≤ p) = 1 − p = P(X = 0)
donc l’événement [X = 1] est réalisé si et seulement si l’événement [U ≤ p] est
réalisé, d’où le programme suivant :

Loi de Bernoulli
function X = bernoulli(n)
u = rand()
if u <= p then
X=1
else
X=0
end
endfunction

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 7 / 21
Appliaction au calcul d’espérances

Théorème : loi faible des grand nombre


Soit (Xn )n≥1 une suite de v.a.r indépendants sur (Ω, A, P) ayant même espérance m et
variance σ 2 alors : (Xn ) converge en probabilité vers m où :

X1 + . . . + Xn
X¯n = ∀ n ≥ 1.
n

Application
Soit (Xn )n≥1 une suite de v.a.r indépendants sur (Ω, A, P), pour tout n (Xn ) suit la loi
de Bernoulli de paramètre p Alors : (Xn ) converge en probabilité vers p

Exercice 3
Écrire un programme utilisant la fonction die de l’exercice 1, qui simule1 million de
lancers de dès, et qui affiche la fréquence d’obtention de 6. (comparer le résultat avec
1
6
)

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 8 / 21
La méthode d’inversion

Fonction de répartition
Soit X une variable aléatoire réelle définie sur Ω, La fonction de répartition de X :
FX : R → [0, 1]
x 7→ FX (x) = P(X ≤ x)

Propriétés

1 FX est croissante sur R.


2 Si X (Ω) =
x1 , . . . , xn avec x1 < x2 <, . . . , < xn .
 0
∑i
si x < x1
FX (x) = P(X = xk ) si x ∈ [xi , xi+1 [
 k =1
1 si x ≥ xn .
3 P(X = x1 ) = FX (x1 )
4 ∀i ∈ [[1, n]], P(X = xi ) = FX (xi ) − FX (xi−1 )

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 9 / 21
La méthode d’inversion

Si X est une variable aléatoire dont on connait la fonction de répartition FX , la méthode


d’inversion nous permet d’obtenir des réalisations de X .
Cette méthode utilise essentiellement la propriété suivante :

Fonction de répartition de la loi uniform


Soit U une variable aléatoire à densité suivant la loi uniforme sur [0, 1], sa fonction de
répartition FU est donnée par :

 0 si x < 0
FU (x) = P(U ≤ x) x si x ∈ [0, 1]

1 si x > 1.

Définition : inverse généralisée de la fonction de répartition


Soit X une variable aléatoire réelle de fonction de répartition FX (t) = P(X ≤ t) On
définit l’inverse généralisée Fx−1 de FX sur ]0, 1[ par :

FX−1 (x) = min{t ∈ R|Fx (t) ≥ x}

si FX est continue, FX−1 est l’inverse de F mais ce n’est pas le cas si F n’est pas
continue.

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 10 / 21
La méthode d’inversion

Proposition : Méthode d’inversion pour les variables aléatoires discrètes


Soient U une variable aléatoire suivant la loi uniforme sur [0, 1] et X une variable
aléatoire discrète de fonction de répartition FX . On note X (Ω) = {x1 , x2 , x3 , . . .} avec
x1 < x2 < x3 < . . . , on a alors :

P(X = x1 ) = P(U ≤ FX (x1 )) et ∀k ≥ 2, P(X = xk ) = P(FX (xk −1 ) < U ≤ FX (xk ))

Preuve :
On a pour tout k, Fx (xk ) ∈ [0, 1], Alors d’après la fonction de répartition de la loi
uniforme :
P(U ≤ x) = FU (x) = x (on remplace x par Fx (xk )) on obtient :
P(U ≤ Fx (xk )) = FU (Fx (xk )) = Fx (xk )
or P(X = x1 ) = Fx (x1 ), On a
pour k = 1, P(X = x1 ) = P(U ≤ Fx (x1 ))
Puisque pour tout k ≥ 2, P(X = xk ) = FX (xk ) − FX (xk −1 )
On a également :
P(X = xk ) = P(U ≤ FX (xk )) − P(U ≤ FX (xk −1 )), donc
P(X = xk ) = P(FX (xk −1 ) < U ≤ FX (xk ))

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 11 / 21
La méthode d’inversion

Exemple :
On se propose de simuler la variable aléatoire X suivant la loi de Bernoulli de
paramètre p.

Solution :
D’après la proposition précédente, si U est une variable aléatoire suivant la loi
uniforme sur [0, 1], On a : P(X = 1) = P(FX (x0 ) < U ≤ FX (1)) = P(1 − p < U ≤ p)
La probabilité de l’événement [X = 1] est la même que celle de [U > 1 − p]. On a
donc le programme Scilab suivant :

Loi de Bernoulli
function X = bernoulli(n)
u = rand()
if u > 1-p then
X=1
else
X=0
end
endfunction

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 12 / 21
Représentations graphiques

Diagramme en bâtons des fréquences / probabilités théoriques


Soit X une variable aléatoire discrète. Supposons qu’on dispose d’une fonction Loi
permettant de simuler la loi de X . Pour juger de la pertinence des simulations, on peut
utiliser des représentations graphiques. Pour cela, on procèdera comme suit :
On crée un échantillon de taille N c’est-à-dire un vecteur ligne x contenant N
réalisations de la fonction Loi.
On compare alors graphiquement les fréquences empiriques obtenues
(c’est-à-dire grâce à l’échantillon) avec les probabilités théoriques P(X = k ) pour
k ∈ X (Ω).

On a besoin pour cela des commandes suivantes :

Rappel

Si x est un vecteur, y =tabul(x,"i") est une matrice à deux colonnes, la première


contenant les valeurs prises par les composantes de x rangées dans l’ordre
croissant (décroissant sans "i") et la seconde contenant le nombre d’occurrences
de chaque valeur.
Si x et y sont des vecteurs, bar(x,y , width = 0.1,"red") trace un diagramme en
bâtons d’abcisse x, d’ordonnée y .

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 13 / 21
Représentations graphiques

Loi de Bernoulli
function y = Bernoulli(N,p)
vr = zeros(1,N) // vecteur des résultats
for i = 1 : N do //chaque itération de la boucle on fait appelle à bernoulli.
vr(i) = bernoulli(p)
end
y = vr //On retourne le tableau des résultat
endfunction

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 14 / 21
Loi binomiale

Loi Binomiale
Soient n ∈ N et p ∈ [0, 1]. On dit qu’une v.a.r X suit la loi binomiale de paramètres n et
p si :
1 X (Ω) = {0, 1, 2, . . . , n}.
2 ∀k ∈ {0, 1, 2, . . . , n}, P(X = k ) = Cnk pk (1 − p)n−k , On note alors : X ,→ B(n, p).

Écrire une fonction binomiale(n,p) simulant la loi B(n, p).

programme de la loi binomiale


function X = binomiale(n,p)
resBer = zeros(1,n) // vecteur des résultats de Bernoulli
for i = 1 : n do //chaque itération de la boucle on fait appelle à bernoulli.
resBer(i) = bernoulli(p)
end
X = sum(resBer) //On retourne le nombre de succès
endfunction

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 15 / 21
Représentations graphiques

Écrire une fonction Binomiale(N,n,p) donnant un échantillon de taille N de la loi


B(n, p), représenter graphiquement.

Résultat de l’échantillon
function X = Binomiale(N,n,p)
echanti = zeros(1,n) // vecteur des résultats de l’échantillon
for i = 1 : N do //chaque itération de la boucle on fait appelle à binomiale.
echanti(i) = binomiale(n,p)
end
y = echanti //On retourne le tableau des résultats.
endfunction

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 16 / 21
Loi Géométrique

loi géométrique : Définition


Soit p ∈ [0, 1]
Si X est le rang du premier succès lors de la répétition d’épreuves de Bernoulli
indépendantes, toutes de probabilité de succès p, alors X ,→ G(p)

Première méthode : utilisation des expériences de Bernoulli


. Écrire une fonction geom(p) simulant la loi G(p) en utilisant la fonction bernoulli et
une boucle tant que.

programme de la loi binomiale


function rang = geom(p)
rang = 1
while bernoulli(p) == 0 do
rang = rang + 1 //chaque échec on incrémente le rang
end
endfunction

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 17 / 21
Loi Géométrique : représentation graphique
Écrire une fonction Geom(N,p) afin de simuler un échantillon de taille N de la loi G(p).
Simuler un échantillon de taille N = 10000 de la loi G(0.2), puis vérifier que la valeur
moyenne de cet échantillon est cohérente avec ce qu’on attend.

programme de la loi géométrique


function y = Geom(N,p)
echanti = zeros(1,N)
for i = 1 : N do
echanti(i) = geom(p) //chaque échec on incrémente le rang
end
y = echanti
endfunction

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 18 / 21
Loi Géométrique

Deuxième méthode : Méthode d’inversion.


Écrire une fonction geom2(p) simulant la loi G(p) en utilisant la méthode d’inversion de
la fonction de répartition.
Solution
- X ,→ G(p) ⇒ P(X = k ) = q k −1 p avec (q = (1 − p))
- Fonction de répartition : FX (k ) = 1 − q k
- d’après théorème d’inversion :
P(X = k ) = P((k − 1) < U ≤ k ), donc
P(X = k ) = P(1 − q (k −1) < U ≤ q k )
tout calcul fait, (⌊
on trouve : ⌋ )
ln(1 − U)
P(X = k ) = P +1=k
ln(q)

programme de la loi géométrique


function rang = geom2(p)
u = rand() // loi uniforme sur [0,1]
rang = floor( log(1-u) / log(1-p) ) + 1
endfunction

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 19 / 21
La commande grand

La commande grand
Scilab dispose d’une fonction simulant les lois discrètes usuelles : la fonction grand.
grand(N,M,"loi",paramètres) renvoie une matrice de taille N × M contenant des
réalisations de variables aléatoires indépendantes suivant cette loi.

Exemple :

grand(N,M,"uin",n1 ,n2 ) simule la loi U ([[n1 , n2 ]]).


grand(N,M,"bin",n,p) simule la loi B(n, p).
grand(N,M,"geom",p) simule la loi G(p).
grand(N,M,"poi",lambda) simule la loi P(λ)
...

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 20 / 21
La commande grand

Loi binomiale

Loi Géométrique

Prof. MALIK Lahcen CPGE Moulay Ismail Calcul scientifique 01 Janvier 2021 21 / 21

Vous aimerez peut-être aussi