Chapitre I : INTRODUCTION GENERALE

I.1. SIMULATION I.1.1. Définition
Effectuer une simulation consiste à générer des données qui sont des réalisations de variables déterministes ou aléatoires selon des lois données, afin d'étudier et de comprendre le fonctionnement de systèmes économiques, industriels, scientifiques, politiques, etc.

I.1.2. Objectifs
Une simulation permet de provoquer le déroulement d'une expérience de façon rapide et économique, et permet aussi d'éviter les dangers liés à la réalisation de certaines expériences à l'échelle réelle. Elle permet aussi de répéter l'expérience en fais ant varier les paramètres. Enfin elle aide à l'élaboration de techniques de prévision et d'amélioration.

I.1.3. Types de simulations
Il existe plusieurs types de simulations, à savoir : 

Simulation statique
Lorsque le temps n'a pas d'influence. Elle utilise des tirages aléatoires et souvent uniformes. 

Simulation dynamique
Concerne les systèmes qui changent dans le temps. 

Simulation Déterministe
Elle ne contient pas de variable aléatoire. Une variable d'entrée donnée produit toujours le même résultat. 

Simulation Stochastique
Lorsque les entrées et les sorties sont aléatoires.

Dans notre travail, nous allons nous limiter au cas d une simulation statique.

I.1.4. Avantages et Inconvénients
La simulation a de nombreux avantages et égale ment des inconvénients. Ils peuvent être résumés comme suit : Avantages - la simulation est non destructrice, et les erreurs ne sont pas (trop) couteuses ; - le système considéré n a même pas besoin d exister ;
1

- nous pouvons répéter à volonté des expériences identiques ou similaires dans les mêmes conditions ; - nous pouvons souvent simuler un système beaucoup plus rapidement que son évolution dans la réalité, comme par exemple l évolution d un biosystème ou la formation du système solaire ; - nous pouvons simuler des modèles très complexes, plus réalistes que ceux que nous pourrions résoudre par des formules analytiques ou par les méthodes d optimisation classiques ; - l animation graphique peut permettre de voir évoluer le modèle . Inconvénients - le coût de mise en uvre peut être significatif, en particulier la modélisation et la programmation peuvent demander beaucoup d effort, de temps et d argent; - les temps d exécution peuvent devenir excessifs ; - la simulation ne fournit habituellement que des estimations ; - l optimisation est beaucoup plus difficile par simulation que via les outils habituels de programmation mathématique ; - l analyse statistique des résultats n est pas toujours simple.

I.2. VARIABLES ET VECTEURS ALEATOIRES I.2.1. Variables Aléatoires
Le mot variable aléatoire étant très souvent utilisé en statistiques, il est important de comprendre sa signification. Dans la plupart des phénomènes aléatoires, le résultat d une épreuve peut se traduire par une grandeur mathématique, très souvent représentée par un nombre entier ou un nombre réel. La notion mathématique qui représente efficacement ce genre de situation concrète est celle de variable aléatoire (notée également v.a.). Remarque : Nous nous limiterons ici au cas des variables aléatoires réelles (les entiers faisant bien sûr partie des réels).

Etant donné un espace probabilisé d espace fondamental et de mesure de probabilité , on appelle variable aléatoire sur cet espace, toute application de dans telle que         I.2.1.1. Type de variables aléatoires

Il existe des variables aléatoires discrètes et des variables aléatoires continues.

2

I.2.2.1.1. Variables aléatoires discrètes
Définition Une variable aléatoire est dite discrète si elle ne prend que des valeurs discontinues dans un intervalle donné (borné ou non borné). Exemples : - le nombre de petits par porté pour une espèce anima le donnée, - le nombre de bactéries dans 100 ml de préparation, Loi de probabilité Une variable aléatoire est caractérisée par l ensemble des vale urs qu elle peut prendre et par l expression mathématique de la probabilité de ces valeurs. Cette expression s appelle la loi de probabilité (ou distribution de probabilité) de la variable aléatoire. La loi de probabilité d une variable aléatoire discrète est entièrement déterminée par les probabilités des évènements , parcourant l univers image . La loi de probabilité est donnée par les . Afin de simplifier l écriture, nous noterons pour la suite : ou .   équivalent à Une loi de probabilité n est établie que si , la somme étant étendue à tous les indices . Fonction de répartition On appelle fonction de répartition d une variable aléatoire , la fonction 

telle que :

Concrètement la fonction de répartition correspond à la distribution des probabilités cumulées. Le maximum atteint par la fonction de répartition correspond à la valeur de probabilité 1 car

I.2.2.1.2 Variables aléatoires continues
Définition Une variable aléatoire est dite continue si elle peut prendre toutes les valeurs dans un intervalle donné (borné ou non borné). Exemples : - le masse corporelle des individus pour une espèce animale donnée, - taux de glucose dans le sang, Fonction densité de probabilité Dans le cas d une variable aléatoire continue, la loi de probabilité associe une probabilité à chaque ensemble de valeurs définies dans un intervalle donné.
3



En effet, pour une variable aléatoire continue, la probabilité associée à l évènement est nulle, car il est impossible d observer exactement cette valeur. On considère alors la probabilité que la variable aléatoire prenne des valeurs comprises dans un intervalle tel que     . Lorsque cet intervalle tend vers 0, la valeur prise par tend alors vers une fonction que l on appelle fonction densité de probabilité ou densité de probabilité. On appelle densité de probabilité toute application continue par morceaux : telle que :        

Fonction de répartition

Si comme pour les variables aléatoires discrètes, on définit la fonction de répartition de par :   alors la relation entre la fonction de répartition est la suivante :     et la fonction densité de probabilité  

I.2.1.2. Espérance et Variance

Une loi de probabilité peut être caractérisée par certaines valeurs typiques correspondant aux notions de valeur centrale, de dispersion et de forme de distribution.

I.2.1.2.1. Espérance mathématique

L espérance d une variable aléatoire correspond à la moyenne des valeurs possibles de pondérées par les probabilités associées à ces valeurs. C est un paramètre de position qui correspond au moment d ordre 1 de la variable aléatoire . Cas d une variable aléatoire discrète Si est une variable aléatoire discrète définie sur un univers probabilisé , on appelle espérance de , le réel défini par : . Cas d une variable aléatoire continue Si est une variable aléatoire continue de densité , on appelle espérance de , le réel défini par :   si cette intégrale est convergente.

I .2.1.2.2. Variance

La variance d une variable aléatoire est l espérance mathématique du carré de l écart à l espérance mathématique. C est un paramètre de dispersion qui correspond au moment centré d ordre 2 de la variable aléatoire  .

4

4. Si et sont définies respectivement sur les espaces fondamentaux et .4.2. VECTEUR ALEATOIRE Cas particulier d un couple de variables aléatoires Densité conjointe Les définitions portant sur la loi jointe entre deux variables aléatoires et impliquent que ces dernières soient définies sur le même espace fondamental .3. Définition En théorie des probabilités.2. PROBABILITE CONDITIONNELLE I. I.1. alors il faut envisager un espace qui englobe et appelé « espace-produit ». Si et sont deux variables aléatoires indépendantes définies sur le même univers alors : Cas discret :  Cas continu :  Dans les deux cas on a :         I. sachant qu'un autre évènement de probabilité non nulle s'est réalisé (ou probabilité de . on appelle variance de le réel : I. fonction définie par : Cas discret : Cas continu :                         Remarque : Ceci peut être généralisé à un nombre que lconque de variables aléatoires (vecteur aléatoire). . Il suffit alors de connaître la loi jointe des deux variables aléatoires ou loi de probabilité du couple .Si est une variable aléatoire ayant une espérance  . INDEPENDANCE ENTRE VARIABLES ALEATOIRES Les propriétés concernant l indépendance statistique entre deux variables aléatoires s appliquent aussi bien aux variables alé atoires discrètes que continues. la probabilité conditionnelle d'un évènement . sachant ) est le nombre noté défini par :   .

deux variables aléatoires de loi 6 . I. A tout évènement de . Mathématiquement. Densité conditionnelle Soient jointe On appelle densité conditionnelle la loi: un espace probabilisé. On appelle espérance conditionnelle: est l'espérance de sachant que s'est réalisé. une variable aléatoire réelle intégrable et  un évènement.4. nous associons le nombre noté ou défini par : définie par  Nous pourrions vérifier que l'application Le théorème de Bayes permet d'écrire :  Si et sont indépendants alors : est une probabilité.Le réel se lit « probabilité de . se note aussi parfois .4. I. soient un espace probabilisé et un évènement de probabilité non nulle (non quasi-impossible). Espérance conditionnelle Soit un espace probabilisé. tel que et .3.2. . sachant ».

1. dans sa version 7. SIMULATION PAR ORDINATEUR Le terme simulation désigne généralement toute expérience faite avec un ordinateur (via un logiciel) dont l objectif est de reproduire artific iellement un phénomène aléatoire. l ordinateur est l outil adéquat pour ce faire.Chapitre II : SIMULATION DES VARIABLES ET VECTEURS ALEATOIRES II. Il a également donné à la simulation une dimension nouvelle. On peut citer en particulier : y y y Le logiciel propriétaire MATLAB Le logiciel libre OCTAVE Le logiciel SCILAB Et pour bien comprendre le mouveme nt des phénomènes aléatoires. Il permet en outre d analyser l échantillon tiré comme on le ferait sur des données réelles. Le tirage d un échantillon d une variable aléatoire peut être vu comme étant la forme la plus simple d une simulation. C est pourquoi le choix d un logiciel de simulation est une étape importante pour mener à bien l étude d un modèle. nous utiliserons l un des logiciels les plus performants et convivial jusqu à aujourd hui.0. La simulation est particulièrement utile pour comprendre le comportement des phénomènes aléatoires trop complexes qui peut être analysé de façon satisfaisante par les mathématiques. En raison de sa vitesse et de son énorme capacité de calcul. autrement dit un phénomène manifestant l effet du hasard. La qualité d une simulation se me sure souvent à sa proximité avec la réalité. 7 . Des logiciels spécifiques ont été développés pour faciliter les calculs numériques : ils utilisent un langage interprété optimisé pour les calculs matriciels intensifs et des outils graphiques de simulation. voire tout simplement ne pas être conduit à terme. Si le logiciel choisi n est pas asse z flexible ou trop difficile à utiliser. le projet de simulation peut produire des résultats erronés. Elle est de plus en plus un instrument de la recherche scientifique aussi bien dans les sciences exactes que dans les sciences humaines . le logiciel MATLAB.7.

permet à l'utilisateur d'élaborer ses propres fonctions ainsi que de véritables programmes ("M-files") appelés scripts vu le caractère interprété de ce langage. outils de const ruction d'interface utilisateur graphique (GUI).. Mais MATLAB est aussi un environnement de développement ("progiciel") à part entière : son langage d'assez haut niveau. fonctions d'entrée-sortie et de visualisation 2D et 3D. Le nom de MATLAB vient de MATrixLABoratory. analyse et visualisation de données en particuli er. Le champ d'utilisation de MATLAB peut être étendu aux systèmes non linéaires et aux problèmes associés de simulation avec le produit complémentaire SIMULINK. MacOs X. les opérateurs et fonctions MATLAB permettent de manipuler directement et interactivement ces données matricielles.2... rendant ainsi MATLAB particulièrement efficace en calcul numérique. Ce n'est cependant pas un logiciel de calcul algébrique ou symbolique.II. Unix/Linux. doté notamment de structures de contrôles. éditeur/debugger. les éléments de données de base manipulés par MATLAB étant des matrices (pouvant bien évidemment se réduire à des vecteurs et des scalaires) qui ne nécessitent ni dimensionnement ni déclaration de type. MATLAB MATLAB est un logiciel commercial de calcul numérique. MATLAB est disponible sur tous les systèmes d'exploitation standards (Windows.).. Les capacités de MATLAB peuvent en outre être enrichies par des fonctions spécialisées regroupées au sein de dizaines de " toolboxes" (boîtes à outils qui sont des collections de "M-files") couvrant des domaines très variés tels que : - analyse de données statistiques mathématiques symboliques (accès au noyau Maple V) analyse numérique (accès aux routines NAG) 8 . de visualisation et de programmation très performant et convivial développé par la société The MathWorks. Contrairement aux langages de programmation classiques (scalaires et à compiler).

uniformes sur l intervalle [0. On dira qu une loi de probabilité est simulable si on peut décrire un procédé explicite permettant de produire des échantillons observés de cette loi à partir d un générateur de la loi uniforme sur [0. Une interface de programmation applicative ( API) rend finalement possible l'interaction entre MATLAB et les environnements de développement classiques (exécution de routines C ou Fortran depuis MATLAB. À la base de toute simulation.. il y a l utilisation de nombres aléatoires en grande quantité.- traitement d'image. Toutes ces caractéristiques font aujourd'hui de MATLAB un standard incontournable en milieu académique. NOMBRES ALEATOIRES GENERATION DE NOMBRES ALEATOIRES II. Ainsi. pour qu une simulation soit fiable il faut que les nombres aléatoires utilisés aient toutes les propriétés que l on attend d eux (jouer le rôle de variables aléatoires indépendantes identiquement distribués. c est-à-dire des nombres dont les propriétés statistiques s approchent des propriétés statistiques des variables aléatoires que l on cherche à représenter. dans les différents domaines de l'ingénieur et la recherche scientifique. il ne suffit pas de disposer d une liste finie de 100 ou même d un million de nombres aléatoires et de l utiliser en boucle pour des simulations..2.. De plus.. Génération de nombres aléatoires On ne sait générer sur un ordinateur que des nombres pseudo-aléatoires. 9 . II. avec le MATLAB COM Builder etc.1.3. MATLAB permet en outre de déployer de véritables applications à l'aide des outils de conversion optionnels suivants : y y y y MATLAB -> code C/C++. Nombre Aléatoire Un nombre aléatoire est une occurrence d'une variable aléatoire uniforme discrète ou continue.3. avec le MATLAB Excel Builder MATLAB -> objets COM Windows. cartographie traitement de signaux (et du son en particulier) logique floue finance etc.1]. avec le MATLAB Compiler MATLAB ->Excel add-ins. ou accès aux fonctions MATLAB depuis des programmes C ou Fortran). II. 1]).3.

Les appels successifs à rand et randn fournissent des réalisations de suites de variables aléatoires indépendantes de loi Uniforme et Normale sur l intervalle  . le générateur rand est initialisé avec une graine dont la valeur dépend de l'heure. Au début d'un programme. respectivement. il faut initialiser le générateur. c'est la même suite de valeurs qui sera donné e.nrow. il faut de même initialiser son générateur. et randn associé à la loi normale .arg2. Remarque : MATLAB Statistics Toolboxes possède des fonctions qui génèrent des variables aléatoires de plusieurs lois.MATLAB dispose en particulier de certains outils utiles en probabilités et statistiques comme plusieurs générateurs de nombres aléatoires dont rand. Lorsque l'on utilise randn.sum (100 *clock)). et les deux derniers arguments représentent le nombre de lignes et de colonnes dans le tableau des variables aléatoires que va retourner la fonction. Avec la commande rand (' state'. ces fonctions ont la syntaxe suivante : pdfrnd(arg1. à chaque fois que l'on dé marre MATLAB. associé à la loi uniforme sur l intervalle . les premiers arguments représente les paramètres de la distribution (ainsi le nombre d argument peut changer). En général. Voici la liste de quelques fonctions qui génèrent des variables aléatoires : Distribution Beta Binomiale Chi-Deux Exponentielle Gamma Normale Poisson betarnd binornd chi2rnd exprnd gamrnd normrnd poissrnd Fonction MATLAB 10 .ncol) Où pdf fait référence au type de la distribution. en lui fournissant une première valeur appelée « graine du générateur ». Sinon.

pour ensuite chercher la variable aléatoire en fonction de  si : 11 . Dans le cas où la fonction est continue et strictement croissante.  III. conçues pour être utilisées en statistique et en recherche opérationnelle. III. On appelle inverse généralisée de  Soit une variable aléatoire réelle et soit  la fonction sa fonction de répartition.  et  =1 . définie par : . ont connu et conn aissent encore un développement rapide dû à l extraordinaire évolution des ordinateurs. Cas où est une variable aléatoire continue 1) Déduire l expression de la fonction de répartition inverse 2) Générer un nombre aléatoire uniforme . lorsque la fonction de répartition est explicitement formulée. Méthode d inversion La méthode d inversion est utilisée pour générer des variables aléatoires d une distribution continue ou discrète. nous présentons deux méthodes pour simuler des variables aléatoires. son inverse généralisé correspond alors à son inverse au sens usuel. Cette méthode utilise le fait que la fonction de répartition  est uniforme sur . alors la variable aléatoire recherchée est obtenue à partir de la relation  .Chapitre III : METHODES DE SIMULATION DES VARIABLES ALEATOIRES Les méthodes de simulation. Si est une variable aléatoire sur .1. Cas où est une variable aléatoire discrète Supposons que l on désire générer une variable aléatoire dont la fonction de probabilité . Dans ce chapitre. Les étapes de la méthode d inversion sont : III.1.2. est donnée par Nous obtenons le variable aléatoire en générant un nombre aléatoire uniforme  .1. 3) Obtenir le désiré à partir de .1. Les techniques de simulation sont des techniques numériques : simuler un phénomène signifie essentiellement reconstituer de façon fictive son évolution.

L algorithme d acceptation-rejet est le suivant : III. . on rejette et on retourne à l étape 3.2. 1) Définir une fonction de probabilité (•ƒ…Šƒ–“—‡ peut augmenter indéfiniment) . (acceptation). . car elles ne présentent pas de fonctions de répartition explicitement formulées. 6) sinon si ’”‡†”‡ .Les étapes de la méthode d inversion sont : pour . Méthode d acceptation-rejet Beaucoup de lois sont difficiles à simuler directement avec la méthode précédente.2. 3) Générer un nombre aléatoire à partir de 4) Générer un nombre aléatoire uniforme 12 . Cas d une variable aléatoire continue 1) Choisir une densité . 5) Sinon si . . Une solution est de simuler à l aide d une fonction de proposition plus simple et d utiliser un algorithme d acceptation-rejet.2. 5) Si . en supposant que l on ait une méthode pour générer des probabilité . III. prendre . alors on prend 2) Trouver une constante telle que pour tout . Il y a certaines applications où la loi à simuler est connue à une constante multiplicative près. Cas d une variable aléatoire discrète Dans le cas contraire. prendre . nombres aléatoires à partir d'une fonction de probabilité Les étapes sont les suivantes : 1) Choisir une fonction de probabilité 2) Chercher une constante telle que . prendre . .1. 2) Générer un nombre aléatoire uniforme  3) Si . 4) Sinon si . avec =1. Dans ce cas. 4) Générer un nombre aléatoire uniforme . 3) Générer un nombre aléatoire à partir de . pour tout . aves le support de III. l'objectif est de générer des nombres aléatoires à partir d'une fonction de . C est le cas par exemple de la loi Normale.2.

gourmand en temps de calcul. on rejette et on retourne à l étape 3. Le taux d acceptation moyen. on rejette et on retourne à l étape 3. n importe quelle constante vérifiant l équation convient . il est nécessaire que soit la plus petite possible pour avoir un taux d acceptation moyen élevé. En particulier. Ce taux est défini par : 5) Si alors on prend   (acceptation). elle doit être facilement échantillonnable. La valeur optimale de est donc : 13 . La méthode d acceptation-rejet a une probabilité d acceptation. on prend  . Dans le cas contraire. Tout d abord. l étape 5 pour les cas continu et discret sont alors remplacés par : 5) Si . que l on appelle également taux d acceptation. sinon l algorithme d acceptationrejet perd son intérêt. cependant. voire impossible ! Pour le choix de . elle doit être simulable avec un taux d acceptation de 1. noté  est défini par : En utilisant le taux d acceptation. Remarque : Le choix de la loi de proposition est déterminant pour les performances de la méthode. La loi de proposition est nécessairement non nulle sur S afin que soit fini et donc que le taux d acceptation moyen soit non nul.Dans le cas contraire. Précisons également que le choix de la loi de proposition doit prendre en compte la complexité de l algorithme : certaines lois intéressantes a priori s avéreront inadéquates car la détermination de ou le calcul de ses paramètres peut être difficile.

la loi uniforme est utilisée comme base pour générer des nombres aléatoires issus de n importe quelle loi de probabilité.1].Chapitre IV : APPLICATION DES DEUX METHODES A QUELQUES LOIS USUELLES Dans cette partie. posons : Alors  ƒ . nous présentons les lois de probabilité les plus utiles et les plus utilisées dans les diverses applications de la statistique. qui renvoie un nombre aléatoire compris entre [0. 14 . Nous présentons les commandes de MATLAB permettant d effectuer des calculs pratiques avec ces lois.1]. Sa fonction de répartition est : Son espérance est : Il est évident que pour  on retrouve l espérance d une variable aléatoire uniformément distribuée sur l intervalle  . Nous distinguons les lois des variables discrètes et celles des variables continues. et sa variance est : En simulation. . Variables Aléatoires Continues y Loi Uniforme constante  On dit qu une variable aléatoire . Simuler la loi uniforme consistera à produire par un algorithme des suites finies de nombres que nous pouvons considérer c omme étant des réalisations indépendantes de variables aléatoires uniformes sur [0. IV. MATLAB permet de simuler la loi uniforme via la fonction rand. définie sur l intervalle On notera est distribuée uniformément dans l intervalle            avec une fonction de densité . La méthode d inversion peut être utilisée pour génére r des variables aléatoires d une distribution uniforme. La fonction de répartition pour une variable aléatoir e qui suit une loi uniforme de paramètres ‡– étant avec et ƒ .1.

%affichage des valeurs de X X % valeurs pour tracer la fonction densité x=a :0.55*unifpdf(x.y.10) .Ainsi .sum(100*clock)) % paramètres n=input('veuillez saisir la dimension n : ') a=input('veuillez saisir la valeur de a : ') b=input('veuillez saisir la valeur de b : ') % génération des variables aléatoires U = rand(1. trace l histogramme des résultats obtenus ainsi que la courbe qui représente la fonction de densité de la loi uniforme : rand('state'.a.b) . X=[U*(b-a)]+a.1 :b .'r') hold off xlabel('X') ylabel('f(x)-Uniforme') 15 . % histogramme hist(X. % traçage hold on plot(x.n) . Le code MATLAB suivant simule des variables aléatoires d une distr ibution uniforme de paramètres   . % fonction MATLAB qui trace la fonction densité y=n*0 .

16  avec et .Simulation de la loi uniforme de paramètre a=2 et b=7 et n=1000 y Loi Exponentielle On dit qu une variable aléatoire densité est donnée par : On a :   . si sa La méthode d inversion peut être utilisée pour générer des variables aléatoires d une distribution exponentielle. . suit une distribution exponentielle de paramètre  . et  . paramètre est Posons : Alors Donc  Ž‘‰ . La fonction de répartition pour une variable aléatoire qui suit une loi exponentielle de   . .

10) . Nous pouvons alors générer des variables aléatoires d une distribution exponentielle de paramètre en utilisant la transformation : .y.1].'r') hold off xlabel('x') ylabel('f(x)-Exponentielle') 17 Ainsi Ž‘‰ .Puisque est uniformément distribué sur [0.1].1. pour un  donné. % traçage bar (h. X=-log(U)/lamda . % histogramme [N.1 :5 .n) .lamda) . % génération des variables aléatoires U = rand(1.sum(100*clock)) % paramètres n=input('veuillez saisir la dimension n : ') . % fonction MATLAB qui trace la fonction densité y=exppdf(x. Le code MATLAB suivant génère des variables aléatoires d une distribution exponentielle . alors  est aussi uniformément distribué sur [0.'b') hold on plot(x. trace l histogramme des résultats obtenus ainsi que la courbe qui représente la fonction densité de la loi exponentielle : rand('state'. % valeurs pour tracer la fonction densité x=0 :0. lamda=input('veuillez saisir la valeur de lamda : ') .h]=hist(X.N. % changement de la taille des barres de l histogramme N=N/(h(2)-h(1))/n .

La variable densité est : par :  = =    y Loi Gamma indépendantes. définie .Simulation d une loi exponentielle de paramètre  et n=1000 Considérons variables aléatoires  selon la loi exponentielle de paramètre  . 18 . où est la fonction gamma. identiquement distribuées est distribuée selon la loi gamma de paramètres   ” dont la  A noter que la loi Gamma est définie pour ” On a :       .

trace l histogramme des résultats obtenus ainsi que la courbe qui représente la fonction densité de la loi gamma : 19 . basée sur nombres aléatoires uniformes : Ž‘‰ Ž‘‰ . avec un entier.La fonction de répartition est :  Présentons un algorithme qui génère une variable aléatoire  qui suit une loi Gamma de paramètres . cela nous conduit à la transformation suivante. en utilisant un e des propriétés du logarithme : Le code MATLAB suivant génère des variables aléatoires d une distribution gamma lorsque est un entier.  La méthode de la transformation inverse ne peut pas être utilisée dans ce cas parce que la fonction de répartition n est pas définie de façon explicite. Puisque la somme de variables exponentielles indépendantes de même paramètre est une variable aléatoire qui suit une loi Gamma de paramètres   ” . Ž‘‰ Nous pouvons simplifier cette écriture et calculer un seul logarithme.

y=gampdf(x.'r') hold off xlabel('X') ylabel('f(x)-Gamma') 20 .10) .1/lamda) .N.1 :6 .'b') hold on plot(x. %affichage des valeurs de X X % histogramme [N.h]=hist(X.1. % changement de la taille des barres de l histogramme N=N/(h(2)-h(1))/n . X=sum(logU) .y. % fonction densité %valeurs pour tracer la fonction densité x=0 :0.r.sum(100*clock)) % paramètres n=input('veuillez saisir la dimension : ') r= input('veuillez saisir la dimension : ') lamda= input('veuillez saisir la dimension : ') % génération des r nombres aléatoires pour obteni r une variable aléatoire gamma U=rand(r.n) . bar(h.rand('state'. logU=-log(U)/lamda .

est appelée variable . . on parle d une loi Normale centrée réduite. On écrit  densité suivante : De plus Lorsque et ‡– . r =3 et n=1000 aléatoire normale (ou gaussienne). Une variable aléatoire définie sur l intervalle  y Loi Normale où et sont deux paramètres.Simulation d une loi Gamma de paramètres  2 .    Dans ce cas on a : Et 21 . caractérisée par la fonction de .

où est la densité de la loi double exponentielle . qui correspond à une variable exponentielle de paremètre    Nous pouvons donc utiliser la méthode d acceptation-rejet pour générer des variables d une loi normale centrée réduite en prenant .      Or. ce qui est toujours vrai. Le code MATLAB suivant génère des variables aléatoires d une distribution Normale de paramètres ‡– .  .    .En effet. trace l histogramme des résultats obtenus ainsi que la courbe qui représente la fonction densité de la loi normale : 22 .

bar(h. %valeurs pour tracer la fonction densité x=mu-4*sqrt(sigma2) :0.mu.01: mu+4*sqrt(sigma2) .h]=hist(X.n).sum(100*clock)) % paramètres n=input('veuillez saisir la dimension n : ') mu=input('veuillez saisir la valeur de mu : ') sigma2=input('veuillez saisir la valeur de sigma2 : ') X=normrnd(mu.sqrt(sigma2).'b') hold on plot(x. % changement de la taille des barres de l histogramme N=N/(h(2)-h(1))/n .10) .y.1.sqrt(sigma2)) .1.'r') hold off xlabel('X') ylabel('f(x)-Normale') 23 .rand('state'. % fonction densité y=normpdf(x.N. %Affichage des valeurs de X X % histogramme [N.

Variables Aléatoires Discrètes y Loi Binomiale Considérons un ensemble de variables aléatoires indépendantes. Nous pouvons obtenir des variables aléatoires d une distribution Binomiale en générant nombres aléatoires uniformes et en laissant être le nombre de qui sont inferieur ou égale à . La loi de probabilité de la variable aléatoire est appelée loi binomiale.2. suivant une loi de Bernoulli de même paramètre  . notée  et est donnée par :     De plus.Simulation de la loi Normale de paramètre  et n=1000 IV. Soit  la somme de ces variables de Bernoulli. 24 .

X(i)=length(ind). end Générons et traçons l histogramme des variables aléatoires binomiale de paramètres n et p n=input('veuillez saisir la dimension n : ') p=input('veuillez saisir la valeur de p : ') N=input('veuillez saisir la valeur de N : ') X=binomiale(n.N).:)<=p). f=histc(X.N) .N) génère N variables aléatoires d une distribution binomiale de paramètre s n et p function X=binomiale(n.n).edges) .p.p. % recherché du nombre inférieur ou égal à p for i=1:N ind=find(U(i.1.p. X edges=0 :max(X) .f/n.La fonction suivante implémente la procédure pour générer des variables aléatoires d une distribution binomiale : % la fonction X=binomiale(n. bar(edges.sum(100*clock)) X=zeros(1.N) rand('state'.'b') 25 . % génération des nombres aléatoires uniformes: N nombres de n essais U=rand(N.

26 . Nous aurons besoin de la relation récursive suivante : La procédure pour générer ces variables aléatoires est la suivante :   . par unité de surface. comptant le nombre de réalisations d un certain événement par unité de temps ou par exemple.p=0. dont la loi est donnée par :  De plus ƒ˜‡… .Simulation de la loi Binomiale de paramètre n=6.5 et N=1000 y Loi de Poisson La variable aléatoire . Nous utilisons la méthode d inversion pour le cas d une variable aléatoire discrète pour générer des variables aléatoires d une distribution de Poisson.     est dite variable de Poisson de paramètre  .

F=p . j=1. end end end 27 . % initialisation des quantités U=rand(1).4) Sinon incrémenter les valeurs : 5) Retourner à l étape 3. while flag if U<=F %accepter X(j)=i .n) génère n variable aléatoires de poisson de paramètre lamda function X=poisson(lamda. 2) Initialiser les quantités :   ‡– 3) Si . F=F+p . else %passer à la prochaine probabilité p=lamda*p/(i+1) . p=exp(-lamda). i=i+1 .n) rand('state'. La fonction suivante implémente la procédure pour générer des variables aléatoires d une distribution de poisson : % la fonction X=poisson(lamda. j=j+1 . 1) Générer un nombre aléatoire uniforme . while j<=n flag=1 .n).sum(100*clock)) X=zeros(1. i=0 .   . flag=0 . prendre  .   .

f/n.edges) . f=histc(X.'b') Simulation d une loi de Poisson de paramètre et n=500 28 .Générons et traçons l histogramme des variables aléatoires de poisson de paramètre n=input('veuillez saisir la dimension n : ') lamda=input('veuillez saisir la valeur de lamda : ') X=poisson(lamda.1.n) . bar(edges. X edges=0 :max(X) .

y=geopdf(x. % traçage bar(h. Le code MATLAB suivant génère des variables aléatoires d une distribution Géométrique de paramètre . trace l histogramme des résultats obtenus ainsi que la courbe qui représente la fonction densité de la loi géométrique : rand('state'.10) x=0:1:45.N.1. Les probabilités associées à une loi géométrique sont de la forme :  . et  est le nombre d essais jusqu à ce que le premier succès (inclus) se réalise.'r') hold off xlabel('X') ylabel('f(x)-Geométrique') 29 .    où  est la probabilité d observer un succès. =1 la probabilité d échouer.sum(100*clock)) n=input('veuillez saisir la dimension n : ') theta=input('veuillez saisir la valeur de theta : ') X=geornd(theta. X [N.1. La loi géométrique est la loi de la variable aléatoire : « nombre d observations jusque (et y compris) au premier succès ». N=N/(h(2)-h(1))/n.n).theta).h]=hist(X.y.y Loi Géométrique Considérons n répétitions indépendantes d une variable de Bernoulli. De plus  = et = .'b') hold on plot(x.

13 et n=500 30 .Simulation d une loi géométrique de paramètre 0.

. ou la visualisation est la plus facile. à partir d'une source de nombres aléatoires de loi uniforme.Générer 2 nombres aléatoires uniformes .Chapitre V. SIMULATION DES VECTEURS ALEATOIRES DE DIMENSIONS n Les notions sur les lois multidimensionnelles seront d abord présentées en 2 dimensions.Poser …‘•   •‹   . qui sont un des outils de base de la statistique. sera surtout l occasion de présenter les vecteurs Gaussiens(Normale).1. Ž‘‰ …‘• indépendantes identiquement distribuées suivant une loi normale centrée réduite. Cette méthode a l avantage de ne pas nécessiter l inverse de la fonction de répartition de la loi normale centrée réduite.   Ž‘‰ •‹  sont des variables Alors. Le passage à la dimension supérieure. Elle consiste à : . Sous MATLAB cette méthode s écrit :  ”ƒ† ' •–ƒ–‡' •— …Ž‘…  ’ƒ”ƒ°–”‡  ‹’—– ' ˜‡—‹ŽŽ‡œ•ƒ‹•‹”Žƒ†‹‡•‹‘ '   ”ƒ†     ”ƒ†     Ž‘‰    –Š‡–ƒ ’‹      …‘• –Š‡–ƒ    •‹ –Š‡–ƒ  •—„’Ž‘–  Š‹•–   •—„’Ž‘–  Š‹•–   31 . 1958) consiste à générer des paires de nombres aléatoires à distribution normale centrée réduite. V. ni la fonction de répartition elle -même.Poser Ž‘‰ et . La méthode de Box-Muller est fondée sur la transformation des coordonnées cartésiennes en coordonnées polaires. Méthode de Box-Muller La méthode de Box-Muller (George Edward Pelham Box et Mervin Edgar Muller.

On reconnait bien une loi exponentielle de paramètre  Alors on tire …‘•   •‹ . …‘•    •‹ .  Ž    pour . et on    .n=5000 Simulation de la loi normale centrée réduite par la méthode de Box-Muller  Exemple On veut simuler y = densité de On en déduit la fonction de répartition de     obtient :       Dans la densité conjointe des variables  on reconnait : y  = densité de qui suit la loi uniforme sur [0. et on pose : 32 .2 On connait la densité conjointe On effectue le passage en coordonnées polaires    indépendantes. .

et généralisé par Hastings en 1970. est l'élaboration du schéma de simulation pour un modèle donné: distribution à priori des paramètres du modèle. Remarque : on montrera facilement que deux variables normales indépendantes distribution commune   peuvent être simulées par :       )  ) et de V. V. un aspect important de l'implantation de ce type de méthode est qu'il faut utiliser plusieurs réalisations ou simulations sur un ensemble de données pour obtenir des résultats statistiquement significatifs. L'algorithme de Metropolis-Hastings est un schéma de simulation permettant de générer des échantillons suivant une distribution de dont une forme analytique est disponible.1.Ces deux variables aléatoires sont indépendantes par construction (leur densité conjointe est définie comme le produit de leurs densités respectives). univariée ou multidimensionnelle. étant donné la nature aléatoire des algorithmes de simulation.2. Méthodes MCMC L'utilisation intensive des méthodes de simulation MCMC est due à leur adaptabilité pour une vaste classe de problèmes et de modèles mais également à l'amélioration des technologies informatiques. et sans doute une des plus intéressantes.2. Ces méthodes permettent de construire un noyau de transition en fonction d'une distribution d'intérêt donnée telle que les séquences d'échantillons simulés qui forment une chaîne de Markov convergente ve rs la distribution stationnaire voulue. La part la plus importante du travail. de variables aléatoires. 33 . Deux algorithmes MCMC sont présentés dans la section suivante: l'algorithme de Metropolis-Hastings et l'échantillonnage de Gibbs. l algorithme qui porte aujourd hui leur nom est une procédure permettant de simuler un échantillon d une distribution. Toutefois. L algorithme de Metropolis-Hastings Introduit dans sa forme la plus simple par Metropolis en 1953. distribution candidate pour l'algorithme de Metropolis -Hastings et distributions conditionnelles pour l'échantillonnage de Gibbs . Les algorithmes sont faciles à implanter et un simple ordinateur de bureau est suffisant pour mettre en uvre la réalisation des simulations.

(acceptation)  . L'algorithme de Metropolis-Hastings peut présenter des difficultés à explorer convenablement le support de la distribution d'intérêt. k=0. pour engendrer cette chaine. y Une procédure d acceptation-rejet. L algorithme de Metropolis-Hastings est le suivant : 1. 2. le nombre d'échantillons nécessaires pour obtenir une couverture suffisante du support de la distribution d'intérêt devenant très important. Initialiser . simuler : q( ) .Il est important de noter que l'algorithme de Metropolis -Hastings permet de simuler des échantillons suivant la distribution à partir de distributions candidates générales dont le support est inclus dans celui de . } 3. Notons aussi que l'algorithme de Metropolis-Hastings ne génère pas d'échantillons indépendants identiquement distribués. Cette situation s'aggrave d'autant plus dans le cas de distribut ions multidimensionnelles.accepter le candidat avec la probabilité Simuler u U[0. Signalons aussi que. k k+1 et aller en (2).1] Si u .proposer un candidat pour . Toutefois. Acceptation-Rejet Itération k : . alors prendre (rejet) = . ) = min {1. Des algorithmes MCMC sont alors spécifiquement adaptés à la simulation de distributions multidimensionnelles. l algorithme de Metropolis -Hastings va s appuyer sur deux éléments : y Des règles de placement des marcheurs auxquelles est associée une probabilité de transition . Remarque : Acceptation-rejet + Metropolis-Hastings = obtenir des échantillons iid 34 . Sinon poser ). le schéma de simulation ne fonctionnera pas bien en pratique si les zones de fortes probabilités de sont localisées surtout dans les queues de distribution de .

b) fixer k=k+1.Générer . Le schéma de simulation est décrit ci-dessous : 1. après avoir choisi un point de départ. Echantillonnage de Gibbs Cette méthode a été utilisée par Geman (1984) pour générer des observations à partir d'une distribution de Gibbs (distribution de Boltzmann). Si est la densité des composantes du vecteur .2. aussi. et ainsi de suite. Il s'agit d'une forme particulière de la méthode de Monte-Carlo par chaîne de Markov qui. 2. la distribution conditionnelle utilise les valeurs générées les plus récentes parmi toutes les autres composantes. nous utilisons alors les densités conditionnelles . . du fait de son efficacité. .Générer . e 3.Générer .a) retenir  .V. . C est est une manière de générer des distributions de deux (ou plusieurs) variables à partir d un modèle qui définit les distributions de probabilité conditionnelles. A chaque k étape. conditionnellement aux données observées ( ). 35 . notons que c est une procédure dans laquelle tous les échantillons sont acceptés.2. et retourner a 1. Fixer k=0. est largement utilisée dans de nombreux domaines d'analyse statistique bayésienne. on a que lorsque k la densité des réalisations obtenues converge vers . Si la convergence est obtenue. les composantes du vecteur de Co-variables ( ) sont générées les unes après les autres conditionnellement à toute les autres composantes. alors 2. Dans la méthode de Gibbs. . Sinon. 2.Générer à partir de à partir de à partir de à partir de . Par la théorie des chaînes de Markov.

 ) à partir des distributions conditionnelles .Un des points remarquables de l'algorithme de Gibbs est qu'il rend possible la simulation de la distribution jointe  ( = ( . . 36 .. Ce schéma de simulation est d'autant plus efficace lorsque les distributions conditionnelles sont simulables rapidement.

Chapitre VI. et dont la fonction de répartition est densité . alors la densité tronquée est :   . Plus clairement. Fonction de densité  . obtenue à partir d'une Loi normale. une loi tronquée est une loi conditionnelle. la densité de la loi normale standard.2. avec : . afin de modéliser respectivement les données censurées et les probabilités de choix binaire.3. pour une variable aléatoire de support réel. Elle est utilisée en économétrie dans le modèle Tobit et le modèle Probit.1.1. Densité Pour une variable aléatoire . nous pouvons montrer que le conditionnement de à l'intervalle réel donne:   et la VI. la loi tronquée à l'intervalle réel est simplement la loi conditionnelle de  VI.1.2. dérivée d'une autre loi de probabilité.1. dont la fonction de répartition est . Si  VI.1. Loi Normale tronquée La loi tronquée la plus utilisée est la loi normale tronquée. et 37 .2.1. SIMULATION D UNE LOI TRONQUEE VI. Espérance d une variable aléatoire tronquée L'espérance de conditionnellement à l'événement est : VI. avec sa fonction de répartition. Définition En probabilité et en statistiques. et qu'on contraint à appartenir à l'intervalle . de support réel. Introduction VI.

par simple translation. Ensuite. alors . VI. Simulation de la loi Normale tronquée Nous allons développer un algorithme pour générer des variables aléatoires distribuées suivant une loi normale tronquée (ou. qui correspond à la variance si la loi n'est pas tronquée. si . en fonction des valeurs de ces paramètres.2. Ce type de problème est intéressant en particulier pour la simulation de variables dans des méthodes MCMC (Monte Carlo Markov Chains). La loi normale à support positif est caractérisée par deux paramètres : y y   et [ qui correspond à la moyenne si la loi n'est pas tronquée . L'algorithme que nous allons développer permettra de générer des échantillons distribués suivant une loi normale à support positif dans le cas scalaire. alors et de meme. 38 . Espérance et Variance L espérance et la variance sont respectivement : y Pour une double troncature        y Pour une simple troncature   Avec .2. c'est-à-dire un algorithme d'acceptation-rejet classique mais utilisant plusieurs lois candidates. Nous utilisons un algorithme d'acceptation -rejet mixte. VI. et  . si . à une loi normale à support positif). la loi candidate donnant le meilleur taux d'acceptation moyen est utilisée pour générer un échantillon.Par convention.3. l'idée étant que chaque loi soit adaptée aux différentes valeurs que peuvent prendre les paramètres et .

puis à calculer la constante correspondante : 1) Sélectionner la loi candidate la plus appropriée en fonction des paramètres de . 5) Calculer .L expression du taux d acceptation dépend dans certains cas des paramètres de la loi candidate. 2) Calculer la constante . Il faut alors trouver les valeurs de ces paramètres qui maximisent le taux d acceptation. 6) Si alors (acceptation) . Il faut donc déterminer les intervalles sur ces paramètres pour déterminer quelle est la meilleure loi candidate à utiliser sur l intervalle considéré. 4) Générer un nombre aléatoire uniforme . une seule fournira le meilleur taux d acceptation moyen pour des paramètres de la loi cible donnés. sinon : retour en 3 (rejet). 3) Générer un nombre aléatoire à partir de . Parmi l ensemble des lois candidates utilisées. uniforme sur  et qui suit la loi normale    c) La loi Normale tronquée en la moyenne (     ): 39 . Quatre lois candidates sont proposées pour simuler la loi cible : a) La loi Normale :  b) La loi Normale couplée à la loi Uniforme C est une distribution définie sur  sur . L algorithme proposé est donc le même que l algorithme d acceptation -rejet avec une étape préliminaire qui consiste à choisir la meilleure loi candidate en fonction des paramètres de .   : .

nous pouvons calculer l expression des constantes taux d acceptation moyens) : (et ainsi les 40 . Pour chacune de ces lois.d) La loi Exponentielle où la valeur de d acceptation moyen : correspond à la valeur qui maximise le taux Lois candidates Notre choix est motivé par le fait que les lois a) et d) permettent d obtenir un taux d acceptation moyen très important lorsque . et les lois b) et c) permettent d améliorer le taux d acceptation moyen autour de zéro.

Les taux d acceptation moyens pour chacune des quatre lois candidates ont été représentés en fonction de  sur la figure suivante : Nous pouvons alors trouver les expressions des trois points d intersections qui délimitent les zones.Le calcul des taux d acceptation est alors direct. En effet. et en égalant les taux d acceptation moyen des lois 3) et 4). Les calculs sont directs pour et . on obtient : 41 . . d après l équation ‡š’ . on a : . mais on ne peut que déterminer une valeur approchée de .

797 environ. while length(x)<NN. Loi exponentielle avec m=paramètre mu de la loi a = (-m + sqrt(m^2+4*s^2)) / 2 / s^2. end x = [].m. . else if m <= 0 % 3. A présent écrivons la fonction sous MATLAB qui nous permettra de simuler la loi cible partir des 4 lois candidates.s) % RPNORM Random numbers from the positive normal distribution if s<0 % s=paramètre sigma de la loi error('le paramètre sigma doit être strictement positif'). où . à function x = rpnorm(N. Nous pouvons en déduire que .^2/2/s^2 . % x =vecteur de sortie des échantillons NN = N. Loi normale tronquée en la moyenne % égale parce que 3 est plus rapide que 2 42 . est la fonction de Lambert s exprime sous la forme définie comme l inverse de la fonction  . if m < mA % 4.   Le taux d acceptation moyen le plus faible correspond à ce qui est un très bon taux d acceptation. il est égal à 0. mC = s * sqrt(pi/2). z = -log(1-rand(N. % Intersections A = 1.136717791056118.1))/a.Cette dernière équation définit sous une forme implicite. end if N<=0 % N=nombre d échantillon à générer error('le nombre d échantillon à générer doit être positif').a*(m-z+a*s^2/2) ). Ainsi. mA = (1-A^2)/A*s. rho = exp( -(z-m).

rho = (z>=0). u = rand(N. Des simulations ont illustré le fait que la méthode fonctionne bien et rapidement dans toutes les situations possibles. z].1)*s) + m. else % 1. L approche est ensuite appliquée au cas particulier de la génération de variables aléatoires normales à support positif. z = r.*exp(-(z-m).z = abs(randn(N. z(reject) = []. end N = N-length(z). if isempty(z) x = [x .1)*m.*ones(N.1) > rho). end V. Loi normale z = randn(N. rho = (z>=0). 43 . Conclusion Nous avons présenté une approche pour simuler des variables suivant une loi dont la forme varie avec ses paramètres. else if m < mC % 2.4.1))*s + m. Loi normale coulée à la loi uniforme r = (rand(N.1) < m/(m+sqrt(pi/2)*s)). g = abs(randn(N.^2/2/s^2) + (1-r). L idée développée utilise un algorithme d acceptation-rejet dont la loi candidate est sélectionnée parmi d autres lois choisies a priori. rho = r. end % Accept/reject the propositions reject = (rand(N. et les intervalles sur lesquelles elles sont le plus performantes en termes de taux d acceptation ont été déterminés. Quatre lois candidates ont été présentées.*u + (1-r).1)*s + m.*g.1).

ou pour simuler des lois normales multidimensionnelles à support positif. telle que la loi normale couplée à un polynôme. 44 . De plus. les recherches pourront également être tournées vers le cas de la simulation d une loi normale tronquée des deux côtés ce qui peut être utile dans le traitement de données censurées. ou la loi normale tronquée en la moyenne dont les deux paramètres sont déterminés pour maximiser le taux d acceptat ion moyen.Les travaux futurs se concentrerons sur la recherche de lois candidates plus performantes.