Vous êtes sur la page 1sur 12

Simulation de variables alatoires e

S. Robin INAPG, Biomtrie e Dcembre 1997 e

Table des mati`res e


1 Introduction 2 Variables alatoires discr`tes e e 2.1 Pile ou face . . . . . . . . . . . . . . . . . . . . . 2.2 Loi de Bernoulli . . . . . . . . . . . . . . . . . . . 2.3 Loi binomiale . . . . . . . . . . . . . . . . . . . . 2.4 Loi de probabilit discr`te sur un ensemble ni . . e e 2.5 Loi de Poisson . . . . . . . . . . . . . . . . . . . . 2.5.1 Gnralisation des lois sur un ensemble ni e e 2.5.2 Cumul de dures exponentielles . . . . . . e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 3 3 3 3 4 4 5

3 Variables alatoires continues e 3.1 Mthode de la fonction inverse . . . . . . . . . . . . . . . e 3.2 Algorithme du rejet . . . . . . . . . . . . . . . . . . . . . 3.3 Loi normale . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Mthode de Box-M ller . . . . . . . . . . . . . . e u 3.3.2 Application du Thor`me Central Limite . . . . . e e 3.4 Extension de lalgorithme du rejet aux densits a support e `

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . non compact

6 . 6 . 7 . 8 . 8 . 10 . 10

Introduction

On prsente ici quelques mthodes de simulation de variables alatoires de lois clase e e siques. On notera FX la loi (i.e. la fonction de rpartition) dune variable alatoire X et, si e e elle existe, fX sa densit : e FX (x) = Pr {X x} , d fX (x) = FX (x). dx Hypoth`se gnrale : On suppose quon dispose dun gnrateur de variable alatoire e e e e e e de loi uniforme sur [0; 1] indpendantes : e U U[0;1] cest a dire ` FU (u) = 0 si u < 0, = u si 0 u 1, = 1 si u > 1, fU (u) = 1{u [0; 1]}. Lindpendance des valeurs est une des conditions essentielles de la validit de la e e plupart des algorithmes prsents ici. e e Exemples : Dans SAS : fonction RANUNI, En Pascal : RANDOMIZE (initialisation du gnrateur), puis fonction RANe e DOM. On ne stend pas ici sur la conception des ces gnrateurs. Ils sont souvent fonds e e e e sur des calculs de congruence sur des nombres de grande dimension et initialiss a partir e ` de lhorloge de la machine. Il faut cependant savoir quil ne sagit que de gnrateurs de e e nombres pseudo-alatoires, et que notamment, les valeurs obtenues ne sont quappareme ment indpendantes. e

2
2.1

Variables alatoires discr`tes e e


Pile ou face
1 Pile si U 2 , Face sinon. 1 On veut simuler une variable alatoire de loi Pile ou Face i.e. X B( 2 ). e

On tire U Formellement, cette procdure scrit e e

1 X = 1{U }. 2

2.2

Loi de Bernoulli
On tire U x = 1 si u p, x = 0 sinon

On veut simuler X B(p).

cest a dire ` X = 1{U p}.

2.3

Loi binomiale

On veut simuler X B(n, p). On sait quune variable binomiale reprsente la somme de n variables indpendantes e e de Bernoulli de param`tre p : e
n

{Y1 , ...Yn } i.i.d., Yi B(p)

X=
i=1

Yi B(n, p)

Il sut donc de simuler n variables alatoires indpendantes de loi B(p) et den faire e e la somme : n X=
i=1

1{Ui p}.

2.4

Loi de probabilit discr`te sur un ensemble ni e e

Soit X une variable alatoire a valeurs dans {1, ...K}, on note e `


K

pk = Pr{X = k}

(avec
k=1

pk = 1)

et Pk le cumul des pk : Pk =
jk

pj ,

P0 = 0.

On a donc P1 = p1 et PK = 1. Lalgorithme est donc On tire U ce qui scrit galement e e


k=K

si Pk1 u Pk

X=
k=1

k1{Pk1 U < Pk }

Remarque : Cette mthode revient a dcouper lintervalle [0; 1] en K morceaux de e ` e longueurs respectives pk :

2.5
2.5.1

Loi de Poisson
Gnralisation des lois sur un ensemble ni e e

On veut simuler X P(). Une variable alatoire poissonnienne ne prend pas ses valeurs dans un ensemble ni, e mais on peut tendre la mthode prcdente au cas ou X prend ses valeurs dans IN. En e e e e fait, la mthode propose ici annonce la mthode de la fonction inverse. e e e On sait que X P() ce qui implique que pk = Pr{X = k} = e pk+1 = et, en notant Pk le cumul des pk (Pk = pk k+1 j=k j=0 pj ), que k k! (pour k IN)

pk . p+1 On simule donc un variable de Poisson de param`tre en prenant e Pk+1 = Pk + X=


k0

k1{Pk1 U < Pk }

avec la convention P1 = 0. Cet algorithme est assez simple a programmer grce aux remarques sur les p k et les ` a Pk faites ci-dessus. 4

2.5.2

Cumul de dures exponentielles e

Une autre mthode de simulation de variables alatoires de Poisson est issue dune des e e proprits des processus de Poisson. ee On sait que si des vnements surviennent a des dates spares par des dures expoe e ` e e e nentielles de param`tre , le nombre dvnements survenant en une unit de temps suit e e e e une loi de Poisson de mme param`tre. e e On simule des variables alatoires {Y1 , Y2 , ...} i.i.d., Yi E() (voir le paragraphe sur e les variables alatoires continues) et dnit X par e e X=
k0

k1{Zk 1 < Zk+1 }

en notant Zk le cumul des dures Yi : Zk = i=k Yi . e k=1 Il faut donc simuler des variables alatoires exponentielles de param`tre et compe e ter le nombre de simulations ncessaires pour dpasser 1, ou bien simuler des variables e e alatoires exponentielles de param`tre 1 et compter le nombre de simulations ncessaires e e e pour dpasser . e

3
3.1

Variables alatoires continues e


Mthode de la fonction inverse e
On veut simuler une variable alatoire continues X de fonction de rpartition F . e e

Thor`me : Soit X une variable alatoire de fonction de rpartition F strictement e e e e croissante, on a F (X) U[0;1] . Dmonstration : On pose e u = F (x) x = F 1 (u),

par dnition, on a F (x) = Pr{X x} et donc e F F 1 (u) = Pr X F 1 (u) or F (F 1 (u)) = u par dnition de la rciproque et Pr {X F 1 (u)} = Pr{F (X) u} e e car F est strictement croissante. On a donc u = Pr{F (X) u} et on reconna la fonction de rpartition de la loi uniforme. t e Mthode : Si on conna la fonction F 1 , rciproque de F , il sut de tirer e t e X = F 1 (U ). Exemple : loi exponentielle X E() F (x) = 1 ex 1 F 1 (u) = ln(1 u).

On pourrait donc poser X = ln(1 U )/, mais on peut remarquer que si U suit une loi U[0;1] , 1 U galement. On pose donc : e X = ln U .

Remarque : Lhypoth`se de la connaissance de F 1 na de sens que si F est strictee ment croissante. Cependant, mme dans ce cas, il se peut que F 1 nait pas dexpression e analytique simple, cest le cas par exemple pour la loi normale. Si on note la fonction de rpartition de la loi normale centre rduite, e e e 1 (x) = 2 6
x

et

2 /2

dt,

il nexiste pas de formulation simple de (x) et encore moins de 1 (x) ; la mthode de e la fonction inverse ne peut donc pas sappliquer directement a la loi normale. ` Cependant il existe des polynmes donnant dassez bonnes approximations de (x) et o 1 de (x) qui permettent donc dappliquer la mthode la fonction inverse a la loi normale e ` moyennant une excellente approximation.

3.2

Algorithme du rejet

On veut simuler une variable alatoire X de densit f et de fonction de rpartition F . e e e Hypoth`ses : e 1. f est a support compact, i.e que. f est nulle en dehors dun intervalle [a; b]. ` Exemple : f (x) = 6x(1 x)1{0 x 1}. 2. Il existe un majorant M de f (x) : x [a; b] : f (x) M. Graphe de la fonction y = f (x)

On a surface du rectangle (abcd) = M (b a), surface sous la courbe = 1 (puisque cest une densit), e surface de la zone hachure =F (x0 ). e Mthode : e 1. On tire un point A = (X, Y ) uniformment distribu sur le rectangle (abcd) : e e on tire U1 on tire U2 7 X = a + (b a)U1 , Y = M U2 .

2. Si Y f (X), on garde X sinon on tire un autre point. 3. On rit`re jusqu` ce que la condition Y f (X) soit remplie. e e a Thor`me : La variable X ainsi obtenue a bien une densit f et une fonction de e e e rpartition F . e Dmonstration : e Pr{X x0 } = Pr{X x0 | on garde A = (X, Y )} Pr{X x0 , Y f (X)} = Pr{X x0 |Y f (X)} = Pr{Y f (X)} or Pr{X x0 , Y f (X)} = Pr{Y et donc Pr{X x0 } = F (x0 ) surface de la zone hachure e = surface du rectangle (abcd) M (b a) surface sous la courbe 1 f (X)} = = surface du rectangle (abcd) M (b a) F (x0 ) M (b a) = F (x0 ). M (b a) 1

Remarque : Il est de plus important de noter quon choisit la constante M la plus petite possible pour minimiser le nombre de rejets : plus la majoration est grossi`re, plus il faut e de tirages pour obtenir une valeur acceptable.

3.3
3.3.1

Loi normale
Mthode de Box-Mller e u

La loi normale na pas une densit a support compact et on ne conna pas dexpression e` t simple de linverse de sa fonction de rpartition. On ne peut donc, thoriquement, employer e e aucune des deux mthodes prcdentes. On prsente ici une mthode qui permet de simuler e e e e e un couple des variables alatoires normales, centres, rduites et indpendantes. e e e e On veut simuler X N (0, 1) et Y N (0, 1) indpendantes. e On conna la densit jointe de X et Y : t e 1 x2 + y 2 fX,Y (x, y) = exp 2 2 On eectue le passage en coordonnes polaires e x = cos , x = sin .

et on obtient fX,Y (x, y)dxdy = 1 x2 + y 2 exp dxdy 2 2 1 2 = exp dd 2 2 = fR, (, )dd.

Dans la densit jointe des variable R et , on reconna e t 1 = densit de qui suit une loi U[0;2] , e 2 = densit de R. e

exp

2 2

On en dduit la fonction de rpartition de R : e e

FR () = Pr{R } =

exp t2 dt = 1 exp t2

1 o` on reconna une loi exponentielle E( 2 ) pour R2 . u t On a donc les lois de R et :

1 R2 E( ), 2 Mthode : e On tire U1 on tire U2 et on pose :

U[0;2] .

R = 2 ln U1 , = 2U2 .

X = R cos , Y = R sin . Ces deux variables alatoires sont indpendantes par construction (leur densit jointe e e e est dnie comme le produit de leurs densits respectives). e e Remarque : Pour simuler Z N (, 2 ), on simule X N (0, 1) et on eectue la transformation: Z = + X.

3.3.2

Application du Thor`me Central Limite e e

Une application immdiate du thor`me central limite donne une mthode tr`s simple e e e e e de gnration de variables alatoires normales. e e e On sait que si on a n variable alatoire i.i.d. desprance et de variance 2 , en notant e e S leur somme, on a : S n loi N (0, 1). n Dens de nombreux cas, cette convergence est assez rapide et permet dassez bonnes approximations pour n 10). On utilise ici les proprits des variable alatoire de loi U[0;1] : ee e

1 (U ) = , 2

(U ) =

1 12

et on simule 12 variables alatoires indpendantes uniformes sur [0; 1] et on en fait la e e somme. La variance de cette somme vaut 1 et il faut ensuite la centrer en lui retranchant son esprance, cest a dire 6 : e `
12

X=
i=1

Ui 6

La loi de cette variable est tr`s proche de la loi normale N (0, 1). e

3.4

Extension de lalgorithme du rejet aux densits ` support e a non compact

On veut simuler une variable alatoire X de densit f telle quil existe une autre e e densit g pour laquelle on conna un algorithme de gnration et qui, a une constante a e t e e ` pr`s, majore f partout : e

X F, f :

g une densit, a e

, x,

f (x) a g(x).

Il est clair quon ne peut pas trouver une densit g qui majore f directement (i.e. e prendre a = 1) puisque ces deux fonctions ont une intgrale sur gale a 1. e e ` Algorithme du rejet gnralis : On appelle respectivement Cf , Cg et Cag les graphes e e e de f (x) , g(x) et a g(x). 1. On tire un point A = (X, Y ) sous Cag distribu selon G en abscisse et uniformment e e sur [0; ag(x)] en ordonne : e on tire X G (par exemple X = G1 (U1 )), on tire Y U[0,ag(X)] (par exemple Y = a g(X) U2 ). 2. Si Y f (X), on garde X, sinon on tire un autre point. 3. On rit`re jusqu` ce que la condition Y f (X) soit remplie. e e a 10

Dmonstration : On a e Pr{X x0 } = or
x0

Pr{X x0 , Y f (X)} Pr{Y f (X)}

Pr{X x0 , Y f (X)} =
x0

g(x) Pr{ag(x)U f (x)}dx


x0

g(x) Pr U

Pr{Y et donc

f (X)} =

f (x) F (x0 ) dx = , ag(x) a 1 g(x) Pr{ag(x)U f (x)}dx = a f (x) ag(x) dx = g(x) Pr{X x0 } = F (x0 ).

Application ` la loi normale : En notant la densit de la loi normale, on a a e exp x 2 x (x) = 2 En eet exp x2 2 exp 1 |x| 2 x2 1 |x| + 0 2 2 (|x| 1)2 0 2
2

exp

1 2

|x|

ce qui est toujours vrai. Or exp

1 2

|x|

2e 1 |x| e = 2

2e g(x)

o` g(x) est la densit de la loi double exponentielle qui correspond a une variable u e ` exponentielle E(1) aecte dun signe est tir a Pile ou Face. e e` Il est de plus important de noter quon choisit la constante a la plus petite possible pour minimiser le nombre de rejet : plus la majoration est grossi`re, plus il faut de tirages e

11

pour obtenir une valeur acceptable. a=1 a= 2e <1

12