COURS/TD - AGRÉGATION EXTERNE DE MATHÉMATIQUES - SIMULATIONS DE VARIABLES ALÉATOIRES Référence : B. Ycart, P.S. Toulouse, Dacunha-Castelle, Ouvrard tomes 1 & 2, Foata & Fuchs Motivation L objectif des séances à venir est de donner des algorithmes capables de procéder à des simulations exactes ou approchées de lois de probabilités classiques. On cherchera ensuite à illustrer numériquement des théorèmes classiques de probabilités. 1 Inversion de la fonction de répartition 1.1 Cadre La méthode suivante s applique au cas des variables aléatoires réelles dont on connait la densité f, ou mieux la fonction de répartition F. Si on connait la densité f (pour les variables aléatoires continues) ou la distribution (p i ) i I pour les variables aléatoires discrètes, la première tâche consiste à calculer la fonction de répartition F(x) = P[X x]. On rappelle que dans le cas d une distribution discrète : et dans le cas d une distribution continue : 1.2 Inverse généralisée F(x = p i, x i x F(x = x f (t)dt. Soit X une variable aléatoire réelle de fonction de répartition F. On appelle inverse généralisée de F, la fonction F 1 définie pour tout y ]0, 1] par F 1 (y) = inf{x R /F(x) y}. La méthode de simulation par inversion repose sur le lemme suivant. Lemme 1. Si U est une variable aléatoire de loi uniforme U([0, 1]), alors F 1 (U) a même loi que X. De plus, si F est continue sur R et f > 0, alors F(X) suit la loi uniforme U([0, 1]). 1
1.3 Applications - Lois continues Exercice 1.1 1. Utiliser le lemme précédent pour fournir un algorithme de simulation de loi exponentielle. 2. Le programmer en Matlab et illustrer la loi des grands nombres. La loi exponentielle est la loi par défaut servant à modéliser des durées de vie. 3. Montrer que si X est une variable aléatoire de loi exponentielle, alors on a : P(X x + s X s) = P(X x) 4. Illustrer le résultat précédent : faire N simulations d une loi exponentielle et tracer sur un même graphique la fonction densité de la loi exponentielle et l histogramme empirique de «X s sachant X s». Exercice 1.2 1. La loi de Pareto de paramètres (a, b) est définie au travers de la densité : b > 0 f a,b (x) = aba x a+1 1I [b,+ [(x). Cette loi de Pareto trouve son origine dans les modèles économiques décrivant les fameux phénomènes 80-20. Déterminer les valeurs admissibles de a et calculer l espérance de ces lois. 2. Simuler ces lois et vérifier la loi des grands nombres. 3. La loi de Pareto est le prototype de loi à queue lourde, montrer qu elle vérifie en effet y > 0 lim P(X > x + y X > x) = 1. x + En réalité, la loi de Pareto paramétrise généralement les phénomènes décrivant les évènements extrêmes d une large famille de lois de probabilités. 1.4 Applications - Lois discrètes Exercice 1.3 Soient x 1, x 2,, x n des nombres réels tous distincts et soient p 1, p 2,, p n des nombres réels positifs tels que n i=1 p i = 1. On pose s 0 = 0 et pour tout 1 k n, s k = k i=1 p i. 1. Fournir une méthode de simulation de la loi de probabilité discrète (p i ) telle que P(X = x i ) = p i. 2. Programmer alors une fonction matlab effectuant une telle simulation. Exercice 1.4 On rappelle que la loi Binomiale B(n, p) décrit la somme de n réalisations indépendantes de loi de Bernoulli de paramètre p. 1. Créer un code Matlab permettant d engendrer un vecteur aléatoire X contenant N réalisations indépendantes et de même loi Binomiale B(n, p) où les valeurs N, n 1 et 0 < p < 1 sont affectées par l utilisateur. Pour N assez grand, vérifier la loi des grands nombres sur les moyennes empiriques successives de X. 2. Comparer vos résultats de simulations avec le générateur rbinom de Matlab. 3. Imaginer un autre algorithme de simulation utilisant la définition même de la loi Binomiale. La loi Binomiale modélise le nombre de succès d une répétition de n tests binaires. Exercice 1.5 1. Pour n A et n B deux entiers strictements positifs définissant le nombre de boules de type A ou B dans une urne, on pose N = n A + n B, on tire dans alors simultanément n boules dans cette urne et on compte X le nombres de boules de type A. (a) Décrire la distribution de probabilités de X. (b) Créer un code Matlab simulant X.
(c) Si N tend vers +, et si n A /N p > 0, tracer l histogramme de X et comparer avec celui d une binomiale B(n, p). (d) Si N, n A et n B tendent vers l infini et le produit nn A /N tend vers λ > 0, montrer que X converge en loi vers la loi de Poisson P(λ). Pour N assez grand, choisir N 1 = λ N et n = N, tracer l histogramme de M réalisations de de Z (M grand) et comparer le à la loi P(λ). Exercice 1.6 Une v.a. discrète X suit une loi de Poisson de paramètre α > 0 si P(X = k) = e α α k Nous allons proposer un algorithme de simulation de X différent de celui d inversion de la fonction de répartition. 1. Soit E i une suite de v.a. iid de loi exponentielle α. On note Montrer qu on a : k! S n = E 1 + + E n P(S n 1 < S n+1 ) = e α α n 2. En conclure un algorithme de simulation de lois de Poisson de paramètre α. 3. Quel est le nombre moyen de variables uniformes nécessaires pour simuler cette loi de Poisson? 4. Donner à 99% un encadrement du nombre de lois uniformes nécessaires pour générer 400 lois de Poisson de paramètre α = 4. 5. On définit pour tout t > 0, N t = 1I (Sn t). n=1 (N t ) est un processus de Poisson d intensité α. Montrer que, pour tout t > 0, N t suit la loi de Poisson P(λt). 6. Simuler un tel processus sur un intervalle de temps fixé à l avance. Les processus de Poisson servent à modéliser les arrivées dans les files d attente. Comparer avec le générateur de Matlab. n! 2 Simulation par la méthode du rejet Application classique La méthode du rejet tire son nom du fait qu on rejette une simulation pour en générer une autre jusqu à ce qu une condition soit satisfaite. Une application classique de ce principe consiste à effectuer une simulation d une variable aléatoire conditionnellement au fait d appartenir à un certain domaine de R d. Ainsi, si X a pour densité f supposée connue et simulable sur R d et si D désigne un domaine quelconque de R d tel que f = µ(d) D est inconnu, il est toutefois possible de simuler la loi de X X D avec l algorithme suivant : 1. Générer X i f sur R d. 2. Tester sir X i D ou non. 3. Dès que X i0 D, renvoyer Z = X i0, sinon faire i + 1 > i. La démonstration de la validité de cette simulation est résumée dans les questions suivantes ainsi que son intérêt pratique! Exercice 2.1 1. Démontrer qu une telle simulation de Z a bien pour loi la loi de X X D.
2. Quelle est la loi du nombre de parcours de cette boucle? Quelle en est sa moyenne? 3. Application : faire N simulations de la loi uniforme sur le disque unité de R 2 et visualiser les points obtenus. 4. Toujours à propos de la simulation de la loi uniforme sur le disque, que pensez-vous de la méthode suivante : on commence par choisir x uniforme entre 1 et 1 puis on prend y uniforme entre 1 x 2 et 1 x 2? Visualiser N simulations obtenues par cette méthode. La loi estelle uniforme? Méthode générale La méthode du rejet permet de simuler des v.a. ou des vecteurs aléatoires dont la loi est à densité par rapport à la mesure de Lebesgue, en s aidant d une autre densité dont on sait simuler la loi. Voici l algorithme de simulation. On souhaite simuler Z dans R d de densité f. On suppose que l on sait simuler X de loi g et trouver 0 < c < 1 tel que f cg. 1. Générer X i g et U i U [0;1]. 2. Calculer M i = (X i, cg(x i )U i ). 3. Dès que cg(x i0 )U i0 f (X i0 ), renvoyer Z = X i0, sinon faire i + 1 > i. Le vecteur aléatoire Z a alors pour densité f. Les questions suivantes permettent d établir la validité de la méthode du rejet générale. Exercice 2.2 1. Soit f densité sur R d et G l hypographe : G = {(x, y) R d R 0 y f (x)} On pose M de coordonnée (Z, Y) de loi uniforme sur G. Montrer qu alors la loi du vecteur aléatoire Z a pour densité f par rapport à la mesure de Lebesgue λ d. 2. Soit X vecteur aléatoire de densité g par rapport à λ d et M = (X, cg(x)u) où U est une v.a. uniforme sur [0; 1], indépendante de X et c > 0. On note H l hypographe : H = {(x, y) R d R 0 y cg(x)} Montrer que M suit une loi uniforme sur H. 3. Conclure. 4. Quelle est la loi du nombre de passage dans la boucle d acceptation rejet? Application simple. Exercice 2.3 On considère la densité de probabilité f définie par f (x) = 1 x si x [ 1, 1] et 0 sinon. Simuler cette loi par la méthode de rejet à partir de la loi uniforme sur [ 1, 1]. Application à la loi Gamma et loi de Weibull. Exercice 2.4 Écrire un code Matlab simulant une loi Gamma de paramètre a > 0 quelconque donnée par la densité : f a (t) = 1 Γ(a) ta 1 e t χ t>0 en utilisant l algorithme précédent et la loi de Weibull de paramètre a de densité g donnée par : g(t) = at a 1 e ta χ t>0.
3 Algorithme de Box-Muller 3.1 Gaussienne univariée L algorithme de Box-Muller est synthétisé dans le lemme suivant. Lemma 3.1 Soient U et V deux variables aléatoires i.i.d. de loi uniforme sur [0, 1]. Les variables aléatoires X et Y sont définies par X = 2 ln(u) cos(2πv) et Y = 2 ln(u) sin(2πv.) Alors X et Y sont indépendantes et de même loi normale standard N (0, 1). Exercice 3.2 1. Utilisez le résultat précédent (algorithme de Box-Muller) et la fonction rand pour simuler une v.a. de loi normale standard : effectuer N simulations, et comparer sur une même figure l histogramme des valeurs obtenues et la fonction densité théorique. Que pensez-vous du résultat? 2. Faire directement N simulations d une loi normale standard à l aide de la fonction randn. Que pensez-vous du résultat? 3.2 Simulation d un vecteur gaussien Exercice 3.3 1. On rappelle que si X = (X 1,..., X k ) est un vecteur gaussien de moyenne nulle et de covariance Identité, et A M k (R) est telle que AA t = C, alors Y = AX + µ est un vecteur gaussien de moyenne µ et de covariance C. En déduire un algorithme de simulation de vecteurs gaussiens. 2. Application : faire N simulations d un vecteur gaussien de covariance C et de moyenne µ avec C=[5 3 2 ; 3 4 1 ; 2 1 2] et mu=[-2 1 4] (utiliser la fonction chol). Vérifier les résultats à l aide des fonctions mean et cov. 3.3 Application de la méthode du rejet Exercice 3.4 En utilisant la méthode du rejet simuler une variable gaussienne à partir d une variable de Laplace de densité : 1 2 e x. Plus généralement trouver le meilleur choix dans la famille des lois de densité : λ 2 e λx, λ > 0. 3.4 Mouvement Brownien Exercice 3.5 Créer un code Matlab simulant une trajectoire brownienne. 4 Échantillonnage préférentiel Méthode générale On cherche à estimer, à partir d une variable aléatoire X de densité connue, des quantités du type E[ f (X)]. L idée générale est d utiliser la convergence presque sure et dans L 1 de la moyenne empirique d un échantillon de v.a. i.i.d. vers leur espérance commune. Cependant, en terme de variance de l estimation donnée par cette moyenne empirique, il peut être intéressant d utiliser un n-échantillon de X, autre v.a. à densité par rapport à X. Exercice 4.1 Démontrer que si X possède une densité par rapport à X, et que ( X 1,..., X n ) désigne un n-échantillon, alors n 1 n f ( X i ) P X( X i ) i=1 P X ( E[ f (X)] X i )
Application à l estimation des moments de N (0, 1) Exercice 4.2 1. Utiliser la propriété précédente pour X N (0, 1) et X L(λ). Calculer Ỹ = f ( X) P X( X) P X ( X) ainsi que la variance des estimateurs obtenus par le biais de X. 2. Comparer avec la variance de l estimateur donné par X lorsque f (u) = u pour λ = 1. (Code Matlab) 3. Définir le "meilleur" λ et en donner une estimation via Matlab. Application à l estimation de la queue d une gaussienne N (0, 1) On souhaite désormais estimer la probabilité P (N (0, 1) 3) Exercice 4.3 On définit la variable aléatoire Y par Y = χ X 3. 1. Quelle est la loi de Y? 2. On définit X N (3, 1) et Ỹ = χ. X 3 3. Quel est l estimateur par la méthode de l échantillonage préférentiel ici? 4. Calculer la variance des deux estimateurs (ceux donnés par X et X). 5. Donner une approximation (en utilisant Matlab) de la "meilleure" loi N (m, 1) pour X.