• Aucun résultat trouvé

Simulation des lois normales

Dans le document en economie et en nance (Page 38-44)

4(2n 1) si k = 2;:::;n ;

= 6

4(2n 1) si k =n+ 1;:::;2n 1;

= 3

4(2n 1) si k = 2n :

Un algorithme suivant la methode d'inversion prendrait au mieux de l'ordre de log(n) operations par variable engendree. Dans la simulation par rejet a partir de la loi uni-forme, la boucle principale sera executee en moyenne environ 1:5 fois. L'algorithme suivant commence par choisir entre les deux sous-ensemblesf1;:::;ngetfn+1;:::;2ng par inversion, puis simule par rejet a partir de la loi uniforme dans chacun des deux intervalles.

Repeter

Si Random<0:25alors

X Random[f1;:::;ng] test vrai

Si (X = 1 ) alors

Si (Random<0:5) alors test faux nSi nSi

Sinon

X Random[fn+ 1;:::;2ng] test vrai

Si (X = 2n) alors

Si (Random<0:5) alors test faux nSi nSi

Jusqu'a (test = vrai)nSi

2.6 Simulation des lois normales

Bien que nous ayons choisi de ne pas entrer dans les details des methodes de simula-tions des lois usuelles, nous ferons une exception pour la loi normale. Tout d'abord parce

34

qu'elle entre comme ingredient essentiel dans les simulation des equations dierentielles stochastiques, mais aussi pour donner des exemples de calculs de complexite sur des algorithmes de simulation. De nombreuses methodes sont proposees dans les manuels.

Toutes ne sont pas a conseiller. Il est bien s^ur possible de trouver une methode de decomposition, adaptee non seulement a la densite de la loi N(0;1) mais aussi aux qualites du generateur et du compilateur, qui soit plus rapide que celles qui suivent (voir Devroye [26] ou Morgan [67]). Les methodes que nous donnons ici sont faciles a programmer.

2.6.1 Principe

Deux algorithmes de simulation usuels sont bases sur le resultat theorique suivant.

Proposition 2.16

Soit (X;Y) un couple de variables aleatoires, de loi uniforme sur le disque unite

D=f(x;y) ; x2+y2 <1g: Soit (R;)le couple de coordonnees polaires correspondant :

X =Rcos ; Y =Rsin: On pose :

R0 =q 4logR : Alors :

U =R0cos et V =R0sin

sont deux variables aleatoires independantes, de m^eme loi N(0;1). Demonstration :

Nous commencons par determiner la densite du couple (R;), par le changement de variables suivant.

Les variables R et sont independantes, R de loi triangulaire sur ]0;1[, de loi uniforme sur ]0;2[). Determinons la loi de R0.

FR0(r0) = Prob[R0 r0] = Probq 4logR < r0= 0 si r0 0; FR0(r0) =ProbR >exp 1

4r02= 1 FR

exp 14r02 si r0 >0: D'ou la densite

fR0(r0) = 12r0exp 14r02fR(exp 14r02) si r0 >0;

fR0(r0) =r0exp( 12r02)

11

IR+(r0): (2.1)

Determinons enn la densite du couple (U;V), par un nouveau changement de variables.

: IR+]0;2[ ! IR2n(]0;+1[f0g) (r0;) ! (u;v) = (r0cos;r0sin) restreint a ]0;1[]0;2[ concide avec 1, donc

J 1 = 1

J 1(r0(u;v);(u;v)) = 1

r0 = pu21+v2 : D'ou fU;V(u;v) = fR0;(r0(u;v);(u;v)) 1pu2+v2

= 12pu2+v2exp 12(u2+v2)p 1 u2+v2

= 12 exp 12(u2+v2)

= p1

2 exp u22p1

2exp v22 :

2

2.6.2 Algorithme polaire

Nous avons vu precedemment comment simuler la loi uniforme sur le disque unite.

Repeter

X 2Random 1

Y 2Random 1

S XX+Y Y

Jusqu'a (S <1) (* (X;Y) de loi uniforme sur le disque unite *) Z Sqrt( 2log(S)=S) (* changement de norme *)

36

U Z X

D'apres la proposition 2.16, U et V sont independantes et de m^eme loi N(0;1). Cet algorithme engendre donc les variables aleatoires 2 par 2. Ce n'est pas un inconvenient dans la mesure ou un grand nombre de simulations sont necessaires et ou les resultats U etV pourront ^etre utilises successivement.

Etudions maintenant le co^ut de cet algorithme. Rappelons que le nombre d'execu-tions de la boucle \Repeter ...Jusqu'a" suit une loi geometrique de parametre =4, d'esperance 4= ' 1:27. Voici le tableau des nombres moyens d'operations pour une variable aleatoire engendree.

Aectations Tests Additions Random Multiplications Fonctions cheres 31:27+3

Temps d'execution observes pour 20000 simulations en Pascal sur PC 386 : entre 24.27s. et 24.34s.

2.6.3 Algorithme de Box-Muller

Frequemment propose dans les manuels cet algorithme est base sur la m^eme metho-de polaire, mais programmee dieremment.

R0 Sqrt( 2log(Random)) 2PiRandom

U R0cos V R0sin

Justication :

En se reportant a la demonstration de la proposition 2.16, il sut de verier que q 2log(Random) a la m^eme densite (2.1) queR0.

Pour r0 0 :

Probq 2log(Random)< r0=ProbRandom>exp 12r02= 1 exp( 12r02): D'ou la densite :

r0exp( 12r02)

11

IR+(r0):

Voici le tableau des nombres moyens d'operations pour une variable engendree.

37

Aectations Tests Additions Random Multiplications Fonctions cheres

Temps d'execution observe pour 20000 simulations en Pascal sur PC 386 : 39:99s.

(1.64 fois plus lent que l'algorithme polaire). Mais selon les compilateurs, il peut se faire que l'algorithme de Box-Muller soit plus rapide que l'algorithme polaire.

2.6.4 Conditionnement d'exponentielles

Voici une methode dierente proposee dans certains manuels.

Proposition 2.17

SoitXetY deux variables aleatoires independantes et de m^eme loi, exponentielle de parametre1. La loi conditionnelle deX sachantE = \Y > 12(1 X)2"

a pour densite :

fEX(x) = 2p2e x2=2

11

IR+(x):

Soit S une variable aleatoire independante de X et Y, prenant les valeurs 1 avec probabilite 1=2. Alors SX suit la loi N(0;1).

Voici l'algorithme correspondant.

Repeter

X log(Random) Y log(Random) Jusqu'a (Y >(1 X)2=2)

Si (Random<0:5) alors X X

Le nombre d'executions de la boucle suit une loi geometriqueG(Prob[E]), d'esperance 1=Prob[E]'1:32. Voici le tableau des nombres moyens d'operations pour une variable engendree.

Aectations Tests Additions Random Multiplications Fonctions cheres

21:32+ 1

2

1:32+1 21:32 21:32+1 1:32 21:32

Temps d'execution observes pour 20000 simulations en Pascal sur PC 386 : entre 66:3 et 67:1 secondes (2,7 fois plus cher que l'algorithme polaire).

2.6.5 Lois normales multidimensionnelles

De la simulation de la loiN(0;1) on deduit celle de la loi normale d'esperance et de variable2 quelconques par une transformation ane. SiX suit la loiN(0;1), alors Y =X+suit la loiN(;2). La situation est analogue en dimensionk quelconque.

Tout d'abord siX1;:::;Xk sont independantes et de m^eme loiN(0;1), alors le vecteur (Xi) suit la loi normale dansIRk, d'esperance nulle et de matrice de covariance identite :

Nk(0;I). On en deduit la simulation d'une loi normaled-dimensionnelle quelconque par la proposition suivante.

Proposition 2.18

Soitun vecteur de IRketune matrice de Mkk(IR), symetrique positive. SoitX = (Xi)un vecteur aleatoire de loiNk(0;I)dans IRk. SoitAune matrice carree d'ordrektelle queAtA= . Alors le vecteurY =AX+est un vecteur gaussien de moyenne et de matrice de covariance .

Demonstration : Toute combinaison lineaire des coordonnees de Y est combinaison ane des coordonnees de X, et suit une loi normale. Le vecteur Y est donc gaussien.

On a :

IE[Y] = AIE[X] + = ;

et IE[(Y )t(Y )] = AIE[XtX]A = AtA = :

2

Il faut donc trouver une matriceAtelle queAtA= . C'est un probleme tres classique.

Une des reponses est implementee dans la plupart des librairies d'algebre lineaire. C'est 39

la decomposition de Cholesky. Dans le cas ou est denie positive, cette methode calcule colonne par colonne une matrice A, triangulaire inferieure telle que AtA = . Voici par exemple le cas particulierd= 2. Soit (X1;X2) un couple de variables aleatoires independantes, de m^eme loi N(0;1). Soient 1 et 2 deux reels quelconques, 1 et 2 deux reels positifs et un reel compris entre 1 et 1. Posons :

Y1 = 1+1X1 ;

Y2 = 2+2(X1+p1 2X2):

Les variables aleatoiresY1etY2forment un couple gaussien, leurs esperances respectives sont 1 et 2, leurs variances sont 21 et 22 et leur coecient de correlation est .

Dans le document en economie et en nance (Page 38-44)