Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épr

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017 TP 3 - Simulation de variables aléatoires 1 Objectifs Le problème de la simulation consiste à trouver des méthodes qui permettent de produire ou générer des échantillons finis de variables (ou vecteurs) aléatoires de lois données. On supposera dans la majeure partie de ce document que l’on sait générer une suite i.i.d. de variables aléatoires de loi uniforme U[0;1] (voir paragraphe suivant), à l’aide du générateur rand de Scilab. On se propose de bâtir des algorithmes permettant, à partir d’une telle suite, de simuler une variable aléatoire ou un vecteur aléatoire de loi donnée. La présentation est non exhaustive, les références principales sont [BC07] (chapitre 1), [Yca02] (chapitre 2) et [RS09] (chapitre 9 + paragraphe 8.1.2 du chapitre 8). B On n’utilisera bien sûr pas la commande grand pour ce T.P. ! Pour chaque exercice, penser à vérifier les fonctions implémentées, c’est-à-dire par exemple à illustrer graphique- ment la qualité des échantillons simulés, en représentant les lois empiriques associées (voir le document complémentaire, Représentation graphique d’échantillons). 1 Obtention de variables de lois uniformes 1.1 Lois uniformes sur [0; 1] - Générateurs pseudo-aléatoires Dans toute la suite de ce document, on partira du principe selon lequel la fonction rand de Scilab permet de générer une suite i.i.d. (Un)n de loi U[0;1]. Les postulats sont donc les suivants (voir [Yca02]) : 1. Un appel à la fonction rand retourne une réalisation d’une variable aléatoire de loi U[0;1]. 2. Des appels successifs à la fonction rand retournent des variables aléatoires indépen- dantes. En réalité, une suite générée par un algorithme connu est rarement aléatoire : connaissant la valeur initiale de l’algorithme, on peut en dérouler les commandes pour trouver la valeur retournée. La fonction rand de Scilab, de même que ses équivalents dans les autres logiciels, est donc seulement un générateur pseudo-aléatoire, c’est-à-dire un algorithme déterministe qui fournit une liste de nombres censés reproduire le comportement d’un échantillon U[0;1]. La production d’une telle suite est généralement récursive à partir de valeurs initiales, appelées graines (seed en anglais). On parle de méthode prédictible (voir [BC07] pour plus de détails). Le générateur rand de Scilab est un générateur par congruence linéaire : une première suite (Xn)n est générée selon la relation de récurrence Xn+1 = aXn + b mod m, n ∈N, avec m ∈N\{0}, a, b ∈{0, . . . , m −1}, puis on en déduit la suite (Un)n de [0; 1[, avec Un = Xn/m. Dans Scilab, a = 843314861, b = 453816693, et m = 231. La suite construite est donc périodique de période m. À partir de la graine initiale, qui est toujours 0 par défaut (rentrer la commande rand(’seed’) pour le voir), la séquence générée est toujours la même d’une session à une autre. On peut initialiser la graine du générateur différemment (voir l’aide de la fonction rand) dans le but de produire d’autres séquences, mais vu la grandeur de la période m, on peut considérer la suite produite comme aléatoire. 1. Enseignant : G. Chagny, bureau M.2.35. gaelle.chagny@univ-rouen.fr. 1 Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017 1.2 Autres lois uniformes Exercice 1 1. Écrire une fonction qui simule un n−échantillon de loi uniforme U[a;b] sur un intervalle [a; b], pour a < b. 2. Comment simuler un vecteur aléatoire de loi uniforme sur un pavé [a; b] × [c; d] ? 3. Écrire une fonction qui simule un n−échantillon de loi uniforme U{1,...,N} sur l’ensemble discret {1, . . . , N}. 2 Simulation par inversion En plus des références ci-dessus (par exemple [RS09] pour cette section), on pourra aussi se reporter aux exercices 2.18 et 2.19 de [CGCDM11]. 2.1 Principe de la méthode Soit X une variable aléatoire réelle de fonction de répartition F. On rappelle que F est croissante (donc en particulier admet un nombre fini ou dénombrable de point de disconti- nuité). Elle est de plus continue à droite, limitée en tout point à gauche. En général, elle n’est cependant pas bijective. On peut toutefois introduire la notion suivante. Définition 1 On définit la fonction inverse généralisée ou fonction quantile F (−1) de F par F (−1)(u) = inf{x ∈R, F(x) ≥u}, u ∈[0; 1]. Lemme 2 Quels que soient x ∈R et u ∈[0; 1], on a l’équivalence u ≤F(x) ⇐ ⇒ F (−1)(u) ≤x. En particulier, F ◦F (−1)(u) ≥u, avec égalité si et seulement si u ∈F(R). Remarques. - L’intervalle ]0; 1[ est inclus dans F(R) si et seulement si F est continue, c’est-à-dire si et seulement si la loi de X ne charge aucun point. Attention, si F est continue, elle n’est pas nécessairement bijective (présence possible de plateaux). - La fonction F (−1) coïncide avec l’inverse classique F −1 lorsque F est bijective. On déduit du lemme la proposition suivante, sur laquelle est fondée la méthode de simu- lation par inversion (de la fonction de répartition). Proposition 3 Si U est une variable aléatoire de loi U[0;1], alors la variable aléatoire F (−1)(U) suit la loi de fonction de répartition F. Remarque. 1. La fonction F (−1) est croissante, donc borélienne, donc F (−1)(U) est bien une variable aléatoire. 2. De plus, si la fonction de répartition F est continue, on peut aussi prouver que F(X) suit la loi U[0;1]. C’est faux si F n’est pas continue : si la loi de X admet un atome, alors toute mesure image de sa loi en possède encore (et donc ne peut suivre la loi U[0;1]). 2 Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017 Méthode de simulation par inversion. Pour obtenir une variable X de loi de répartition F dont on sait calculer explicitement l’inverse généralisée F (−1), on peut simuler une variable U de loi U[0;1] et poser X = F (−1)(U). 2.2 Application à la simulation de variables aléatoires de lois continues Exercice 2 Écrire des fonctions permettant de simuler des n−échantillons de variables aléa- toires dont les lois sont les suivantes : 1. Loi exponentielle E(λ), λ > 0 : densité x 7→λ exp(−λx)1x>0 (penser à exploiter le fait que si U est de loi U[0;1], alors 1 −U a même loi que U). 2. Loi de Cauchy C(a), a > 0 : densité x 7→a/(π(a2 + x2). 3. Loi de Laplace : densité x 7→exp(−|x|)/2. 4. Loi de Weibull W(a, b, c), a, c > 0, b ≥0 : densité x 7→(a/c)((x−b)/c)a−1 exp(−((x− b)/c)a)1x>b. 5. Loi de Pareto de paramètre a > 0 : densité x 7→a/xa+11x>1. 2.3 Application à la simulation de variables aléatoires suivant des lois discrètes La méthode par inversion se réécrit pour des variables discrètes (variables à valeurs dans N ou Z) de manière générale, en utilisant l’expression de l’inverse généralisée F (−1). On considère X une variable aléatoire de loi P k∈N\{0} pkδk. On note toujours F la fonction de répartition de X. Soit sk = Pk l=1 pl, k ≥1, et s0 = 0. Alors F (−1)(u) = k, avec k tel que sk−1 < u ≤sk. Par exemple, F (−1)(u) = 1 si u ≤p1, F (−1)(u) = 2 si p1 < u ≤p1 + p2... Méthode de simulation d’une variable discrète. Soit X de loi P k∈N\{0} pkδxk avec P k∈N\{0} pk = 1. On divise l’intervalle [0; 1] en intervalles de longueurs successives p1, p2, . . . , pk, .... Les extrémités successives des intervalles sont donc s0, s1, s2 . . . , sk, .... On tire U de loi U[0;1], et on détermine à quel intervalle de la partition U appartient : on choisit la valeur X = xk quand sk−1 ≤U ≤sk. La méthode est justifiée car en effet, on obtient alors P(X = xk) = P(sk−1 < U ≤sk) = sk −sk−1 = pk. Exercice 3 1. Comment simuler une variable X de loi de Bernoulli B(p) (P(X = 1) = p = 1 −P(X = 0)) ? Et une variable Y de loi de Rademacher R(p) (P(Y = 1) = p = 1 −P(Y = −1)) ? 2. Écrire une fonction permettant de simuler un échantillon de variables aléatoires de loi discrète sur un ensemble fini. Tester la fonction pour simuler par exemple un échantillon de loi uniforme U{1,...,6}. 3 Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017 Exercice 4 Écrire des fonctions permettant de simuler des n−échantillons de variables aléa- toires dont les lois sont les suivantes : 1. Loi de Poisson P(λ), λ > 0 : P(X = k) = exp(−λ)λk/k!, pour k ∈N. 2. Loi géométrique G(p), p ∈]0; 1[ : P(X = k) = p(1 −p)k−1, pour k ∈N\{0}. 3 Simulation par méthode d’acceptation-rejet Les deux références principales pour cette section sont [BC07] et [Yca02]. On s’intéresse à la méthode de rejet pour générer des échantillons de lois uniformes et de loi à densité par rapport à la mesure de Lebesgue. uploads/s3/ agregtp3scilab2016-2017.pdf

  • 27
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager