IMIS : Master 1 Université Paris Est Marne la Vallée TP Bonus : Siulation de variables aléatoires 1. Siulation de lois Dans les applications, on a souvent besoin de générer de façon artificielle (à l aide d un ordinateur) une suite X 1,, X n de nobres aléatoires i.i.d. suivant la loi donnée F. Les éthodes de siulation perettent seuleent d obtenir une valeur pseudo-aléatoire X i, au lieu d une valeur aléatoire. Cela signifie que les nobres X 1,, X n siulés sont déterinistes (ils sont obtenus par un algorithe déteriniste) ais les propriétés de la suite X 1,, X n sont proches d une suite aléatoire iid de loi donnée. Par exeple pour les X i pseudo-aléatoires on a la propriété de Glivenko-Cantelli : sup F n (x) F (x) 0 quand n, x ais il s agit ici de la convergence au sens déteriniste. 1.1. Siulation des variables uniforéent distribuées. La f.d.r. F U ( ) de la loi unifore U[0, 1] s écrit sous la fore F U (x) = x1 [0,1] (x) + 1 ]1,+ ] (x). Le prograe-générateur d un échantillon pseudo-aléatoire U 1,, U n de cette loi est disponible dans de nobreux logiciels. Le principe de son fonctionneent est le suivant : on se donne un réel a > 1 et un entier (a et seront choisis très grands). On coence par une valeur Z 0 fixe. Pour tout i {1,, n}, on définit z i = le reste de la division de az i 1 par = az i 1 [ az i 1 ]. Pour tout i {1,, n}, nous avons toujours 0 z i <. On définit U i = z i = az i 1 [ az i 1 ]. Ainsi, pour tout i {1,, n}, 0 U i < 1. La suite U 1,, U n est considérée coe un échantillon de la loi unifore U[0, 1]. Bien que cette suite n est pas aléatoire, on peut ontrer que sa f.d.r. epirique Fn U (x) = 1 n 1 Ui x n est telle que sup x F U n (x) F (x) = sup x [0,1] F U n (x) x ɛ(n, ) avec ɛ(n, ) qui converge très vite vers 0 quand et n. i=1 1
2 1. Coe la plupart des logiciels, SAS dispose d un générateur de nobres pseudo-aléatoires. Afin de siuler un échantillon de n = 50 v.a. iid de loi unifore U[0, 1], exécuter le prograe suivant : DATA TableCree ; DO i=1 TO 50 ; y=ranuni(10) ; KEEP y ; PROC PRINT ; Le paraètre (10) est la graine ou seence du générateur. Réexécuter le prograe avec la êe valeur, une autre valeur, plusieurs fois avec la valeur 1. Une valeur négative coe 1 provoque l utilisation de l horloge interne coe seence aléatoire. Cette dernière seence seble généré des nobres plus aléatoires ais avec un inconvénient : il est ipossible de regénérer le êe échantillon à un autre instant et donc de coparer des éthodes de façon rigoureuse. 1.2. Siulation des variables de loi générale. Etant donné un échantillon iid U 1,, U n d une loi unifore, on peut obtenir un échantillon d une loi générale F ( ) par la éthode d inversion. Elle est opérationnelle si F 1 est disponible sous fore explicite. Cette éthode est basée sur la proposition suivante : Proposition 1.1. Soit F une f.d.r. continue et stricteent croissante et soit U une v.a. uniforéent distribuée sur [0, 1]. Alors la v.a. suit la loi F. X = F 1 (U) Il en découle l algorithe de siulation suivant : si F est une f.d.r. continue et stricteent croissante, on pose X i = F 1 (U i ), où les U i sont des nobres pseudo-aléatoires uniforéent distribués sur [0, 1] générés coe expliqué précédeent. On obtient ainsi un échantillon siulé (X 1,, X n ) de loi F. Si F n est pas continue ou stricteent croissante, il faut odifier la définition de l inverse de F et considérer l inverse généralisée définie par : pour tout u [0, 1], F 1 (u) = inf{x R t.q. F (x) u},
avec la convention inf = +. On a alors que y F 1 (u) F (y) u. Cela iplique que si X a pour f.d.r. F et si U U[0, 1], alors F 1 (U) a la êe loi que X. Exeple 1. Siulation d un échantillon de loi exponentielle E(1). On a f(x) = e x 1 (x>0) et F (x) = (1 e x )1 (x>0). Ainsi F 1 (y) = ln(1 y) pour y (0, 1). Posons alors X i = ln(1 U i ) où les U i sont des nobres pseudo-aléatoires uniforéent distribués sur [0, 1]. Exeple 2. Siulation d un échantillon de loi de Bernoulli. Soit On a alors pour y [0, 1], P (X = 1) = p et P (X = 0) = 1 p, 0 < p < 1. F 1 (y) = inf{x R t.q. F (x) y} = { 0 si y [0, 1 p] 1 si y ]1 p, 1]. Si U i est une v.a. de loi unifore, alors X i = F 1 (U i ) suit la loi de Bernoulli. On pose alors { 0 si U i [0, 1 p] X i = 1 si U i ]1 p, 1]. 2. A l aide de la éthode d inversion, siuler un échantillon de taille n = 100 de v.a. iid de loi exponentielle de paraètre 1. Refaire la êe déarche en utilisant l instruction ranexp(10). Les instructions rannor(10) et rancau(10) perettent respectiveent de siuler des lois norales et des lois de Cauchy. A l aide de l instruction rannor(10), siuler un n = 50 échantillon de loi N (1, 4). 1.3. Siulation des variables de loi gaussienne. On présente ci-dessous deux éthodes connues pour générer des variables (pseudo) aléatoires suivant une loi gaussienne. 1.3.1. Via le théorèe central liite. Pour U U[0, 1], on a E(U) = 1/2 et Var(U) = 1/12. Vu le TCL, si les U i sont iid et de loi U[0, 1], on a que 3 U 1 + + U N N/2 N/12 N N (0, 1) en loi. La valeur N = 12 est déjà suffisante pour obtenir une bonne approxiation de la loi norale. On en déduit la éthode de siulation suivante : on génère U 11,, U nn, une suite de variables pseudo-aléatoires de loi U[0, 1] et on pose ensuite X i = U i1 + + U in N/2 N/12 N N (0, 1), i = 1,, n. On obtient ainsi un échantillon siulé (X 1,, X n ) de la loi approxiativeent N (0, 1).
4 3. Exécuter le prograe suivant DATA TableCree ; ARRAY si{12} y1-y12 ; DO i=1 TO 1000 ; DO j=1 TO 12 ; PROC PRINT ; si{j}=ranuni(-1) ; S=su(of y1-y12) ; KEEP S ; Lancer SAS/INSIGHT : solutions/analyse/analyse interactive des données. Charger la table créée ci-dessus : work/tablecree/ok Pour obtenir de belles sorties graphiques et des estiations de la densité : Analyze/Distribution /S/Y/OK Curves/ kernel density/ok 1.3.2. Via la éthode de Box et Müller. Nous renvoyons au TP5 pour un descriptif de cette éthode. 2. Siulations d intervalles de confiance On considère la loi norale de oyenne 5 et d écart type 2 et on prendra pour seuil α = 0, 05. En supposant σ = 2 connu, nous tirons un échantillon de taille 25 par exeple. Celui-ci nous peret d avoir une estiation par intervalle de µ (que l on sait valoir 5). Cet intervalle peut contenir ou non le paraètre à estier : tout dépend de l échantillon obtenu. Nous allons considérer 100 échantillons et exainer les intervalles de confiance. 4. Exécuter les prograes suivants :
DATA siul ; n=25 ; nechantillon=100 ; u=5 ; siga=2 ; DO j=1 TO nechantillon ; DO i=1 TO n ; x=siga*rannor(0)+u ; DROP i nechantillon ; 5 PROC MEANS Noprint ; VAR x ; OUTPUT Out=oyennes ean= ; BY j ; DATA intervalles ; SET oyennes ; siga=2 ;n=25 ; u=5 ; a=-siga*1.96/sqrt(n) ; b=+siga*1.96/sqrt(n) ; SYMBOL1 i=join c=red width=1 ; SYMBOL2 i=join c=blue width=1 ; SYMBOL3 i=join c=green width=1 ; TITLE Bornes de confiance de u=5 au niveau alpha=0.05 ; PROC GPLOT Data=intervalles ; PLOT a*j=1 u*j=2 b*j=3 / Overlay ; TITLE ; QUIT ;