chapitre i 2version

55
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 faisant 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. 1

Upload: lange-etrange

Post on 04-Jul-2015

1.894 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Chapitre I 2version

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 faisant varier les paramètres. Enfin elle aide à l'élaboration de techniques de prévision et d'amélioration.

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

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

Simulation dynamiqueConcerne les systèmes qui changent dans le temps.

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

Simulation StochastiqueLorsque 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énientsLa simulation a de nombreux avantages et également 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

Page 2: Chapitre I 2version

- 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éP, on appelle variable aléatoire sur cet espace, toute application Xde Ω dans ℝ telle que X : ε (Ω)→Rω→X (ω)

I.2.1.1. Type de variables aléatoires

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

2

Page 3: Chapitre I 2version

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 animale 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 valeurs 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 pi des évènements{X=x i }, x i parcourant l’univers imageX (Ω). La loi de probabilité est donnée par les(x i , pi)i.Afin de simplifier l’écriture, nous noterons pour la suite :P({X=x i }) équivalent à P (X=xi )ou pi .Une loi de probabilité n’est établie que si ∑

i

pi=1, la somme étant étendue à tous les indicesi.

Fonction de répartition

On appelle fonction de répartition d’une variable aléatoireX , la fonction FX telle que :FX :R→R

t→FX (t )=P (X<t)

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

pi=1

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, …

3

Page 4: Chapitre I 2version

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é. En effet, pour une variable aléatoire continue, la probabilité associée à l’évènement {X=a} est nulle, car il est impossible d’observer exactement cette valeur.On considère alors la probabilité que la variable aléatoire X prenne des valeurs comprises dans un intervalle [a ,b] tel queP(a≤ X ≤b).Lorsque cet intervalle tend vers 0, la valeur prise par X 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 :f :R→Rx→ f ( x ) telle que : (P¿¿1)∀ x∈ R , f (x )≥0¿

(P2 )∫−∞

+∞

f ( x )dx=1

Fonction de répartition

Si comme pour les variables aléatoires discrètes, on définit la fonction de répartition de X par : FX :R→R

t→FX (t )=P (X<t)

alors la relation entre la fonction de répartition FX et la fonction densité de probabilité f ( x )

est la suivante : ∀ t∈R , FX (t )=P(X< t)=∫−∞

t

f ( x )dx

I.2.1.2. Espérance et VarianceUne 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ématiqueL’espérance d’une variable aléatoire E (X )correspond à la moyenne des valeurs possibles de X 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éatoireX .

Cas d’une variable aléatoire discrète

Si X est une variable aléatoire discrète définie sur un univers probabiliséΩ, on appelle espérance deX , le réel défini par : E (X )=∑

ω∈Ω

X (Ω )P (Ω ) .

Cas d’une variable aléatoire continue

Si X est une variable aléatoire continue de densitéf , on appelle espérance deX , le réel E (X )

défini par : E (X )=∫−∞

+∞

x f ( x )dx si cette intégrale est convergente.

4

Page 5: Chapitre I 2version

I .2.1.2.2. VarianceLa variance d’une variable aléatoire var (X ) 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éatoireX .Si X est une variable aléatoire ayant une espéranceE (X ), on appelle variance deX le réel : var (X )=E ( X2 )−[E (X )] ² .

I.2.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 X et Y impliquent que ces dernières soient définies sur le même espace fondamental Ω. Si X et Y sont définies respectivement sur les espaces fondamentaux Ω1 etΩ2, alors il faut envisager un espace qui englobe Ω1 et Ω2 appelé « espace-produit ».Il suffit alors de connaître la loi jointe des deux variables aléatoires ou loi de probabilité du couple (X ,Y ), fonction définie par :

Cas discret : x , y→ pxy=P ( ( X=x ) et (Y= y ) )

Cas continu : pxy=P ((xa<X< xb )et ( yc<Y < yd ))

Remarque : Ceci peut être généralisé à un nombre quelconque de variables aléatoires (vecteur aléatoire).

I.3. INDEPENDANCE ENTRE VARIABLES ALEATOIRESLes 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.Si X et Y sont deux variables aléatoires indépendantes définies sur le même univers Ω alors :

Cas discret   : P (X=x ,Y= y )=P ( X=x )P (Y= y )

Cas continu   : f ( x , y )=f ( x ) f ( y)

Dans les deux cas on a :

E (XY )=E (X )E (Y )

var (X+Y )=V (X )+V (Y )

5

Page 6: Chapitre I 2version

I.4. PROBABILITE CONDITIONNELLE

I.4.1. Définition

En théorie des probabilités, la probabilité conditionnelle d'un évènement A, sachant qu'un autre évènement B de probabilité non nulle s'est réalisé (ou probabilité de A, sachant B) est

le nombre noté P(A∨B) défini par : P (A|B )= P(A∩B)P(B)

Le réel P(A∨B) se lit « probabilité de A, sachant B ». P(A∨B) se note aussi parfoisPB (A ).

Mathématiquement, soient (Ω ,B , P ) un espace probabilisé et B un évènement de probabilité non nulle (non quasi-impossible). A tout évènement A de B, nous associons le

nombre noté P (A|B ) ou PB (A ) défini par : PB (A )=P (A ∩B)P(B)

Nous pourrions vérifier que l'application PB définie par A→PB(A) est une probabilité.

Si A et B sont indépendants alors : P (A|B )=P(A)

Le théorème de Bayes permet d'écrire : P (A|B )=P (B|A )P(A)

P(B)

I.4.2. Espérance conditionnelle

Soit (Ω ,B , P ) un espace probabilisé, X une variable aléatoire réelle intégrable et B un

évènement. On appelle espérance conditionnelle: E (X|B )= 1P(B)

∫B

X d P

E (X|B ) est l'espérance de X sachant que B s'est réalisé.

I.4.3. Densité conditionnelle

Soient (Ω ,B , P )un espace probabilisé; X et Y deux variables aléatoires de loi jointe f (x , y ); y0 tel que∫ f (x , y0 )dx ≠0.

On appelle densité conditionnelle la loi: g (x|y0 )=f (x , y0)

∫ f (x , y0 )dx

6

Page 7: Chapitre I 2version

Chapitre II : SIMULATION DES VARIABLES ET VECTEURS ALEATOIRES

II.1. SIMULATION PAR ORDINATEURLe terme simulation désigne généralement toute expérience faite avec un ordinateur (via un logiciel) dont l’objectif est de reproduire artificiellement un phénomène aléatoire, autrement dit un phénomène manifestant l’effet du hasard. La qualité d’une simulation se mesure souvent à sa proximité avec la réalité.

Le tirage d’un échantillon d’une variable aléatoire peut être vu comme étant la forme la plus simple d’une simulation. En raison de sa vitesse et de son énorme capacité de calcul, l’ordinateur est l’outil adéquat pour ce faire. Il permet en outre d’analyser l’échantillon tiré comme on le ferait sur des données réelles. Il a également donné à la simulation une dimension nouvelle. Elle est de plus en plus un instrument de la recherche scientifique aussi bien dans les sciences exactes que dans les sciences humaines.

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. C’est pourquoi le choix d’un logiciel de simulation est une étape importante pour mener à bien l’étude d’un modèle. Si le logiciel choisi n’est pas assez flexible ou trop difficile à utiliser, le projet de simulation peut produire des résultats erronés, voire tout simplement ne pas être conduit à terme.

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. On peut citer en particulier :

7

Page 8: Chapitre I 2version

Le logiciel propriétaire MATLAB Le logiciel libre OCTAVE Le logiciel SCILAB

Et pour bien comprendre le mouvement des phénomènes aléatoires, nous utiliserons l’un des logiciels les plus performants et convivial jusqu’à aujourd’hui, le logiciel MATLAB, dans sa version 7.7.0.

II.2. MATLAB

MATLAB est un logiciel commercial de calcul numérique, de visualisation et de programmation très performant et convivial développé par la société The MathWorks. Ce n'est cependant pas un logiciel de calcul algébrique ou symbolique.

Le nom de MATLAB vient de MATrixLABoratory, 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. Contrairement aux langages de programmation classiques (scalaires et à compiler), les opérateurs et fonctions MATLAB permettent de manipuler directement et interactivement ces données matricielles, rendant ainsi MATLAB particulièrement efficace en calcul numérique, analyse et visualisation de données en particulier.

Mais MATLAB est aussi un environnement de développement ("progiciel") à part entière : son langage d'assez haut niveau, doté notamment de structures de contrôles, fonctions d'entrée-sortie et de visualisation 2D et 3D, éditeur/debugger, outils de construction d'interface utilisateur graphique (GUI)... 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.

MATLAB est disponible sur tous les systèmes d'exploitation standards (Windows, Unix/Linux, MacOs X...). 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

8

Page 9: Chapitre I 2version

SIMULINK. 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)- traitement d'image, cartographie- traitement de signaux (et du son en particulier)- logique floue- finance- etc...

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, ou accès aux fonctions MATLAB depuis des programmes C ou Fortran). MATLAB permet en outre de déployer de véritables applications à l'aide des outils de conversion optionnels suivants :

MATLAB -> code C/C++, avec le MATLAB Compiler MATLAB ->Excel add-ins, avec le MATLAB Excel Builder MATLAB -> objets COM Windows, avec le MATLAB COM Builder etc...

Toutes ces caractéristiques font aujourd'hui de MATLAB un standard incontournable en milieu académique, dans les différents domaines de l'ingénieur et la recherche scientifique.

II.3. NOMBRES ALEATOIRES – GENERATION DE NOMBRES ALEATOIRES

II.3.1. Nombre Aléatoire

Un nombre aléatoire est une occurrence d'une variable aléatoire uniforme discrète ou continue.À la base de toute simulation, il y a l’utilisation de nombres aléatoires en grande quantité. De plus, 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, uniformes sur l’intervalle [0, 1]). Ainsi, 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.

9

Page 10: Chapitre I 2version

II.3.2. Génération de nombres aléatoires

On ne sait générer sur un ordinateur que des nombres pseudo-aléatoires, 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.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,1].

MATLAB dispose en particulier de certains outils utiles en probabilités et statistiques comme plusieurs générateurs de nombres aléatoires dont rand, associé à la loi uniforme sur l’intervalle[0 ,1], et randn associé à la loi normaleN (0,1 ).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[0,1], respectivement.

Au début d'un programme, il faut initialiser le générateur, en lui fournissant une première valeur appelée « graine du générateur ». Sinon, à chaque fois que l'on démarre MATLAB, c'est la même suite de valeurs qui sera donnée.Avec la commande rand ('state',sum (100 *clock)), le générateur rand est initialisé avec une graine dont la valeur dépend de l'heure. Lorsque l'on utilise randn, il faut de même initialiser son générateur.

Remarque : MATLAB Statistics Toolboxes possède des fonctions qui génèrent des variables aléatoires de plusieurs lois. En général, ces fonctions ont la syntaxe suivante :

pdfrnd(arg1,arg2,nrow,ncol)

Où pdf fait référence au type de la distribution, les premiers arguments représente les paramètres de la distribution (ainsi le nombre d’argument peut changer), 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.

Voici la liste de quelques fonctions qui génèrent des variables aléatoires :

Distribution Fonction MATLAB

Beta betarnd

Binomiale binornd

Chi-Deux chi2rnd

Exponentielle exprnd

Gamma gamrnd

10

Page 11: Chapitre I 2version

Normale normrnd

Poisson poissrnd

Chapitre III : METHODES DE SIMULATION DES VARIABLES ALEATOIRES

Les méthodes de simulation, conçues pour être utilisées en statistique et en recherche opérationnelle, ont connu et connaissent encore un développement rapide dû à l’extraordinaire évolution des ordinateurs.Les techniques de simulation sont des techniques numériques : simuler un phénomène signifie essentiellement reconstituer de façon fictive son évolution.

Dans ce chapitre, nous présentons deux méthodes pour simuler des variables aléatoires.

III.1. Méthode d’inversionLa méthode d’inversion est utilisée pour générer des variables aléatoires d’une distribution continue ou discrète, lorsque la fonction de répartition est explicitement formulée.Cette méthode utilise le fait que la fonction de répartitionF est uniforme sur[ 0,1 ].Si U est une variable aléatoire sur[0,1], alors la variable aléatoire recherchée X est obtenue à partir de la relationX=F−1 (U ).

Soit Y une variable aléatoire réelle et soit FY sa fonction de répartition.On appelle inverse généralisée de FY la fonction FY

−1 définie par :

FY−1( p)= inf

y∈ R{ y /FY ( y )≥ p }.

Dans le cas où la fonction FY est continue et strictement croissante, son inverse généralisé correspond alors à son inverse au sens usuel.

Les étapes de la méthode d’inversion sont :

III.1.1. Cas où Y est une variable aléatoire continue1) Déduire l’expression de la fonction de répartition inverse FY

−1;

2) Générer un nombre aléatoire uniforme U ;3) Obtenir le X désiré à partir de X=FY

−1(U ).

11

Page 12: Chapitre I 2version

III.1.2. Cas où Y est une variable aléatoire discrèteSupposons que l’on désire générer une variable aléatoire X dont la fonction de probabilité

est donnée par P (X=xi )=pi ; x0<x1<⋯< xn et ∑i=1

n

pi=1 .

Nous obtenons le variable aléatoire X en générant un nombre aléatoire uniformeU , pour ensuite chercher la variable aléatoire en fonction dex i si :

P (X=xi−1 )<U ≤ P (X=x i )

Les étapes de la méthode d’inversion sont :

1) Définir une fonction de probabilité P (X=xi ) pourx i, aveci =1, …. , k (sachant que k peut augmenter indéfiniment) ;

2) Générer un nombre aléatoire uniforme U ;

3) SiU ≤ p0, prendre, X=x0;4) Sinon si U ≤ p0+ p1, prendre, X=x1;5) Sinon si U ≤ p0+ p1+ p2, prendre, X=x2;6) … sinon si U ≤ p0+…+ pk , prendre , X=x k.

III.2. Méthode d’acceptation-rejetBeaucoup de lois sont difficiles à simuler directement avec la méthode précédente, car elles ne présentent pas de fonctions de répartition explicitement formulées. C’est le cas par exemple de la loi Normale.Il y a certaines applications où la loi à simuler f est connue à une constante multiplicative près. Une solution est de simuler à l’aide d’une fonction de proposition g ,plus simple et d’utiliser un algorithme d’acceptation-rejet.L’algorithme d’acceptation-rejet est le suivant :

III.2.1. Cas d’une variable aléatoire continue1) Choisir une densitég ;

2) Trouver une constante c telle quef (x )g (x)

≤c pour toutx∈S, aves S le support de f ;

3) Générer un nombre aléatoirevà partir de g ;4) Générer un nombre aléatoire uniforme U ;

5) SiU ≤f (v)cg (v) , alors on prend x=v (acceptation);

Dans le cas contraire, on rejette vet on retourne à l’étape 3.

12

Page 13: Chapitre I 2version

III.2.2. Cas d’une variable aléatoire discrèteDans ce cas, l'objectif est de générer des nombres aléatoires à partir d'une fonction de probabilitéPp (X=xi )=pi, en supposant que l’on ait une méthode pour générer des nombres aléatoires à partir d'une fonction de probabilitéPq (X=x i )=q i.Les étapes sont les suivantes :

1) Choisir une fonction de probabilitéPq;

2) Chercher une constante c telle que p i

qi≤c pour tout x i;

3) Générer un nombre aléatoirev à partir dePq;4) Générer un nombre aléatoire uniforme U ;

5) Si U ≤pv

c qv alors on prend x=v(acceptation);

Dans le cas contraire, on rejette vet on retourne à l’étape 3.La méthode d’acceptation-rejet a une probabilité d’acceptation, que l’on appelle également taux d’acceptation. Ce taux est défini par :

ρ ( x )= f (x )cg(x )

Le taux d’acceptation moyen, noté ρ est défini par :

ρ=∫ ρ (x ) g ( x )dx=1c∫ f (x )dx=1

c

En utilisant le taux d’acceptation, l’étape 5 pour les cas continu et discret sont alors remplacés par :

5) Si U ≤ ρ(v ), on prend x=v; Dans le cas contraire, on rejette vet on retourne à l’étape 3.

Remarque : Le choix de la loi de proposition g est déterminant pour les performances de la méthode. La loi de proposition g(x ) est nécessairement non nulle sur S afin que c soit fini et donc que le taux d’acceptation moyen soit non nul. Tout d’abord, elle doit être facilement échantillonnable, sinon l’algorithme d’acceptation-rejet perd son intérêt. En particulier, elle doit être simulable avec un taux d’acceptation de 1. 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 c ou le calcul de ses paramètres peut être difficile, gourmand en temps de calcul, voire impossible !

Pour le choix de c, n’importe quelle constante vérifiant l’équation f (x )g (x)

≤c convient ;

cependant, il est nécessaire que c soit la plus petite possible pour avoir un taux d’acceptation moyen élevé. La valeur optimale de c est donc :

13

Page 14: Chapitre I 2version

c=maxx∈S

f (x)g(x )

Chapitre IV : APPLICATION DES DEUX METHODES A QUELQUES LOIS USUELLES

Dans cette partie, nous présentons les lois de probabilité les plus utiles et les plus utilisées dans les diverses applications de la statistique. Nous présentons les commandes de MATLAB permettant d’effectuer des calculs pratiques avec ces lois.Nous distinguons les lois des variables discrètes et celles des variables continues.

IV.1. Variables Aléatoires Continues

Loi Uniforme On dit qu’une variable aléatoire Xdéfinie sur l’intervalle [a ,b] avec une fonction de densité

constante f ( x )= 1b−a est distribuée uniformément dans l’intervalle[a ,b ].

On noteraX⤳U (a ,b ).

Sa fonction de répartition est : FX ( x )={ 0 si x≤ax−ab−a

si a<x<b

1 si x ≥b

Son espérance est : E (X )=a+b2 et sa variance est : var (X )=(b−a) ²

12

Il est évident que pour a=0 , b=1 , on retrouve l’espérance d’une variable aléatoire uniformément distribuée sur l’intervalle[ 0 ,1 ].

En simulation, la loi uniforme est utilisée comme base pour générer des nombres aléatoires issus de n’importe quelle loi de probabilité. Simuler la loi uniforme consistera à produire par un algorithme des suites finies de nombres que nous pouvons considérer comme étant des réalisations indépendantes de variables aléatoires uniformes sur [0,1].

14

Page 15: Chapitre I 2version

MATLAB permet de simuler la loi uniforme via la fonction rand, qui renvoie un nombre aléatoire compris entre [0,1].

La méthode d’inversion peut être utilisée pour générer des variables aléatoires d’une distribution uniforme. La fonction de répartition pour une variable aléatoire qui suit une loi

uniforme de paramètres aet bétantFX ( x )= x−ab−a

, si a<x<b;

posons : u=F X ( x )= x−ab−a avec u⤳U (0 ,1 ) et a< x<b.

Alors x−a=u(b−a) .

Ainsi x=u (b−a )+a .

Le code MATLAB suivant simule des variables aléatoires d’une distribution uniforme de paramètres aet b; trace l’histogramme des résultats obtenus ainsi que la courbe qui représente la fonction de densité de la loi uniforme :

rand('state',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,n) ;

X=[U*(b-a)]+a;

%affichage des valeurs de X

X

% valeurs pour tracer la fonction densité

x=a :0.1 :b ;

% fonction MATLAB qui trace la fonction densité

y=n*0 .55*unifpdf(x,a,b) ;

% histogramme

hist(X,10) ;

% traçage

hold on15

Page 16: Chapitre I 2version

plot(x,y,'r')

hold off

xlabel('X')

ylabel('f(x)-Uniforme')

Simulation de la loi uniforme de paramètre a=2 et b=7 et n=1000

Loi Exponentielle On dit qu’une variable aléatoire X suit une distribution exponentielle de paramètre λ si sa densité f X est donnée par :f X ( x )=λe− λx; 0≤ x<∞ et λ>0.

On a : E (X )=1λet var (X )= 1

λ ² .

La méthode d’inversion peut être utilisée pour générer des variables aléatoires d’une distribution exponentielle.

16

Page 17: Chapitre I 2version

La fonction de répartition pour une variable aléatoire qui suit une loi exponentielle de paramètre λestFX ( x )=1−e− λx ; 0<x<∞.

Posons : FX ( x )=1−e− λx=u avec u⤳U (0 ,1 ) et 0<x<∞.

Alors e− λx=1−u .

Donc −λx=log (1−u).

Ainsix=−1λ

log (1−u ).

Puisqueu est uniformément distribué sur [0,1], alors 1−uest aussi uniformément distribué sur [0,1]. Nous pouvons alors générer des variables aléatoires d’une distribution exponentielle de paramètre λ en utilisant la transformation :

X=−1λ

log (U ).

Le code MATLAB suivant génère des variables aléatoires d’une distribution exponentielle pour un λ donné, trace l’histogramme des résultats obtenus ainsi que la courbe qui représente la fonction densité de la loi exponentielle :

rand('state',sum(100*clock))

% paramètres

n=input('veuillez saisir la dimension n : ') ;

lamda=input('veuillez saisir la valeur de lamda : ') ;

% génération des variables aléatoires

U = rand(1,n) ;

X=-log(U)/lamda ;

% valeurs pour tracer la fonction densité

x=0 :0.1 :5 ;

% fonction MATLAB qui trace la fonction densité

y=exppdf(x,lamda) ;

% histogramme

[N,h]=hist(X,10) ;

% changement de la taille des barres de l’histogramme

N=N/(h(2)-h(1))/n ;

% traçage

17

Page 18: Chapitre I 2version

bar (h,N,1,'b')

hold on

plot(x,y,'r')

hold off

xlabel('x')

ylabel('f(x)-Exponentielle')

Simulation d’une loi exponentielle de paramètre λ=2 et n=1000

Loi Gamma Considérons r variables aléatoires x i ,i=1…r indépendantes, identiquement distribuées selon la loi exponentielle de paramètreλ .

18

Page 19: Chapitre I 2version

La variableY=∑i=1

n

X iest distribuée selon la loi gamma de paramètres( λ , r )dont la densité est :

f Y ( y)={λr e−( λy ) yr−1

Γ (r)si y ≥0

0 sinon; où Γ (r) est la fonction gamma, définie par : Γ (r)=∫

0

1

xr−1 e− xdx

A noter que la loi Gamma est définie pour r ∈ ℝ.

On a :E (Y )= rλet var (Y )= r

λ ²

Présentons un algorithme qui génère une variable aléatoireXqui suit une loi Gamma de paramètres(λ ,r ); avec r un entier.

La fonction de répartition est : FX ( x )=∫0

λxe− y yr−1

(r−1 ) !dy

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 r variables exponentielles indépendantes de même paramètre λ est une variable aléatoire qui suit une loi Gamma de paramètres( λ , r ), cela nous conduit à la transformation suivante, basée sur r nombres aléatoires uniformes :

X=−1λ

logU 1−⋯−1λ

logU r .

Nous pouvons simplifier cette écriture et calculer un seul logarithme, en utilisant une des

propriétés du logarithme : X=−1λ

log (U 1×⋯×U r )=¿−1λ

log¿¿

Le code MATLAB suivant génère des variables aléatoires d’une distribution gamma lorsque r est un entier, trace l’histogramme des résultats obtenus ainsi que la courbe qui représente la fonction densité de la loi gamma :

19

Page 20: Chapitre I 2version

rand('state',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 obtenir une variable aléatoire gamma

U=rand(r,n) ;

logU=-log(U)/lamda ;

X=sum(logU) ;

%affichage des valeurs de X

X

% histogramme

[N,h]=hist(X,10) ;

% changement de la taille des barres de l’histogramme

N=N/(h(2)-h(1))/n ;

% fonction densité

%valeurs pour tracer la fonction densité

x=0 :0.1 :6 ;

y=gampdf(x,r,1/lamda) ;

bar(h,N,1,'b')

hold on

plot(x,y,'r')20

Page 21: Chapitre I 2version

hold off

xlabel('X')

ylabel('f(x)-Gamma')

Simulation d’une loi Gamma de paramètres λ=¿2 , r =3 et n=1000

Loi Normale Une variable aléatoireXdéfinie sur l’intervalle¿−∞ ,+∞¿, caractérisée par la fonction de

densité suivante :f ( x )= e−( x−μ )2/2σ ²

σ √2 πoù μ et σ sont deux paramètres, est appelée variable

aléatoire normale (ou gaussienne). On écritX⤳N (μ ,σ ²).

21

Page 22: Chapitre I 2version

De plusE (X )=μet var (X )=σ ².

Lorsque μ=0 et σ=1, on parle d’une loi Normale centrée réduite.

Dans ce cas on a : f ( x )= e− x ²/2

√2π .

Et f ( x )= e− x ²/2

√2π≤e

12−¿ x∨¿

√2π¿

En effet, e− x2

2 ≤e12−|x|

⇔x

2

2−|x|+ 1

2≥0

⇔(|x|−1) ²

2≥0 ; ce qui est toujours vrai.

Or,e12−¿ x∨¿

√2π=√ 2e

π×

12e

−¿ x∨¿=√2eπg (x)¿

¿, où g est la densité de la loi “double exponentielle” qui

correspond à une variable exponentielle de paremètre λ=1.

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 prenantc=√ 2eπ

et g ( x )=12e−¿ x∨¿¿ .

Le code MATLAB suivant génère des variables aléatoires d’une distribution Normale de paramètresμet σ ², trace l’histogramme des résultats obtenus ainsi que la courbe qui représente la fonction densité de la loi normale :

22

Page 23: Chapitre I 2version

rand('state',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),1,n);

%Affichage des valeurs de X

X

% histogramme

[N,h]=hist(X,10) ;

% changement de la taille des barres de l’histogramme

N=N/(h(2)-h(1))/n ;

%valeurs pour tracer la fonction densité

x=mu-4*sqrt(sigma2) :0.01: mu+4*sqrt(sigma2) ;

% fonction densité

y=normpdf(x,mu,sqrt(sigma2)) ;

bar(h,N,1,'b')

hold on

plot(x,y,'r')

hold off

xlabel('X')

ylabel('f(x)-Normale')

23

Page 24: Chapitre I 2version

Simulation de la loi Normale de paramètre μ=0 , σ ²=1 et n=1000

IV.2. Variables Aléatoires Discrètes

Loi Binomiale Considérons un ensemble de n variables aléatoires indépendantes, suivant une loi de

Bernoulli de même paramètrep. Soit Sn=∑i=1

n

X ila somme de ces n variables de Bernoulli. La

24

Page 25: Chapitre I 2version

loi de probabilité de la variable aléatoire Sn est appelée loi binomiale, notée Ɓ (n , p )et est

donnée par :P (Sn=k )=∁ kn pk (1−p )n−k avec∁ k

n= n !k ! (n−k ) !

De plus,E (X )=npet var (X )=np(1−p)

Nous pouvons obtenir des variables aléatoires d’une distribution Binomiale en générant n nombres aléatoires uniformes U 1 ,U 2 ,⋯ ,U n et en laissant X être le nombre de U i qui sont inferieur ou égale à p.

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,p,N) génère N variables aléatoires d’une distribution binomiale de paramètres n et p

function X=binomiale(n,p,N)

rand('state',sum(100*clock))

X=zeros(1,N);

% génération des nombres aléatoires uniformes: N nombres de n essais

U=rand(N,n);

% recherché du nombre inférieur ou égal à p

for i=1:N

ind=find(U(i,:)<=p);

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,p,N) ;

X

25

Page 26: Chapitre I 2version

edges=0 :max(X) ;

f=histc(X,edges) ;

bar(edges,f/n,1,'b')

Simulation de la loi Binomiale de paramètre n=6,p=0.5 et N=1000

Loi de Poisson La variable aléatoireX , comptant le nombre de réalisations d’un certain événement par unité de temps ou par exemple, par unité de surface, dont la loi est donnée par :

P (X=k )= λke− λ

k !avec λ>0et kϵ N ¿est dite variable de Poisson de paramètreλ.

De plus, var ( X )=E (X )=λ .

26

Page 27: Chapitre I 2version

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.

Nous aurons besoin de la relation récursive suivante : pi+1=P ( X=i )= λi+1

pi; i ≥0.

La procédure pour générer ces variables aléatoires est la suivante :

1) Générer un nombre aléatoire uniforme U ;2) Initialiser les quantités : i=0 , p0=e−λ , et F0=p0;3) SiU ≤F i , prendre X=i;

4) Sinon incrémenter les valeurs : pi+1=λ

i+1pi , i=i+1 , et F I+1=F i+ pi+1;

5) Retourner à l’étape 3.

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,n) génère n variable aléatoires de poisson de paramètre lamda

function X=poisson(lamda,n)

rand('state',sum(100*clock))

X=zeros(1,n); j=1;

while j<=n

flag=1 ;

% initialisation des quantités

U=rand(1); i=0 ;

p=exp(-lamda); F=p ;

while flag

if U<=F %accepter

X(j)=i ;

flag=0 ;

j=j+1 ;

else %passer à la prochaine probabilité

p=lamda*p/(i+1) ;

i=i+1 ;

27

Page 28: Chapitre I 2version

F=F+p ;

end

end

end

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,n) ;

X

edges=0 :max(X) ;

f=histc(X,edges) ;

bar(edges,f/n,1,'b')

28

Page 29: Chapitre I 2version

Simulation d’une loi de Poisson de paramètre λ=0.5 et n=500

Loi Géométrique Considérons n répétitions indépendantes d’une variable de Bernoulli. La loi géométrique est la loi de la variable aléatoire X : « nombre d’observations jusque (et y compris) au premier succès ». Les probabilités associées à une loi géométrique sont de la forme :∀ i ∈N ¿, P (X=i )=p qi−1où p est la probabilité d’observer un succès, q=1 −p la probabilité d’échouer, et i est le nombre d’essais jusqu’à ce que le premier succès (inclus) se réalise.

De plusvar (X ) = qp ² et E (X )=

1p .

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',sum(100*clock))

n=input('veuillez saisir la dimension n : ')

theta=input('veuillez saisir la valeur de theta : ')

X=geornd(theta,1,n);

X

29

Page 30: Chapitre I 2version

[N,h]=hist(X,10)

x=0:1:45;

y=geopdf(x,theta);

N=N/(h(2)-h(1))/n;

% traçage

bar(h,N,1,'b')

hold on

plot(x,y,'r')

hold off

xlabel('X')

ylabel('f(x)-Geométrique')

30

Page 31: Chapitre I 2version

Simulation d’une loi géométrique de paramètre θ=¿ 0.13 et n=500

Chapitre V. SIMULATION DES VECTEURS ALEATOIRES DE DIMENSIONS n

Les notions sur les lois multidimensionnelles seront d’abord présentées en 2 dimensions, ou la visualisation est la plus facile. Le passage à la dimension supérieure, sera surtout l’occasion de présenter les vecteurs Gaussiens(Normale), qui sont un des outils de base de la statistique.

31

Page 32: Chapitre I 2version

V.1. Méthode de Box-Muller

La méthode de Box-Muller (George Edward Pelham Box et Mervin Edgar Muller, 1958) consiste à générer des paires de nombres aléatoires à distribution normale centrée réduite, à partir d'une source de nombres aléatoires de loi uniforme.

La méthode de Box-Muller est fondée sur la transformation des coordonnées cartésiennes en coordonnées polaires.Elle consiste à :

- Générer 2 nombres aléatoires uniformes U 1 etU 2;- Poser R ²=−2 logU 1 et θ=2π U 2;- Poser X=R cosθet Y=R sinθ

Alors, X=√−2 logU 1cos¿ sont des variables 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, ni la fonction de répartition elle-même.

Sous MATLAB cette méthode s’écrit :

rand('state',sum(100*clock))%paramètren=input('veuillez saisir la dimension : ')U1=rand(1,n) ;U2=rand(1,n) ;R=-2*log(U1) ;theta=2*pi*U2 ;X=R.^(1/2).*cos(theta);Y=R.^(1/2).*sin(theta);subplot(1,2,1)hist(X)subplot(1,2,2)hist(Y)

32

Page 33: Chapitre I 2version

n=5000

Simulation de la loi normale centrée réduite N (0,1 ) par la méthode de Box-Muller

Exemple

On veut simuler X⤳N (0,1 )et Y⤳ N (0,1 ) indépendantes.

On connait la densité conjointef X, Y ( x , y )= 12π

e− x²+ y ²

2 .

On effectue le passage en coordonnées polairesx=ρ cosθ et y=ρ sinθ, et on obtient :

f X, Y ( x , y )dx dy= 12π

e−x2+ y2

2 dx dy= 12π

e−ρ ²

2 ρdρ dθ=f R,Ɵ ( ρ ,θ )dρdθ .

Dans la densité conjointe des variables RetƟ on reconnait :

12π

= densité de Ɵ qui suit la loi uniforme sur [0,2π ¿

ρ e−ρ²

2 = densité de ROn en déduit la fonction de répartition de R :

FR( ρ)=Ρ (R=ρ )=∫0

ρ

ρ e−t ² /2dt=1−e−t ² /2

On reconnait bien une loi exponentielle de paramètre λ=12 pourR ².

Alors on tire U 1→R=√−2 lnU 1et U 2→Ɵ=2 π U 2 et on pose :

X=R cosƟet Y=R sinƟ.

33

Page 34: Chapitre I 2version

Ces deux variables aléatoires sont indépendantes par construction (leur densité conjointe est définie comme le produit de leurs densités respectives).

Remarque : on montrera facilement que deux variables normales indépendantes X et Y de distribution commune N (μ ,σ ² ) peuvent être simulées par :

X=μ+σ √−2 logU 1 .cos¿) Y=μ+σ √−2 logU 1 . sin ¿)

V.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. Les algorithmes sont faciles à implanter et un simple ordinateur de bureau est suffisant pour mettre en œuvre la réalisation des simulations.

La part la plus importante du travail, et sans doute une des plus intéressantes, est l'élaboration du schéma de simulation pour un modèle donné: distribution à priori des paramètres du modèle, distribution candidate pour l'algorithme de Metropolis-Hastings et distributions conditionnelles pour l'échantillonnage de Gibbs .

Toutefois, 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, étant donné la nature aléatoire des algorithmes de simulation.

Deux algorithmes MCMC sont présentés dans la section suivante: l'algorithme de Metropolis-Hastings et l'échantillonnage de Gibbs. 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 vers la distribution stationnaire voulue.

V.2.1. L’algorithme de Metropolis-Hastings   Introduit dans sa forme la plus simple par Metropolis en 1953, et généralisé par Hastings en 1970, l’algorithme qui porte aujourd’hui leur nom est une procédure permettant de simuler un échantillon d’une distribution, univariée ou multidimensionnelle, de variables aléatoires.

L'algorithme de Metropolis-Hastings est un schéma de simulation permettant de générer des échantillons suivant une distribution de π (x ) dont une forme analytique est disponible.

34

Page 35: Chapitre I 2version

Il est important de noter que l'algorithme de Metropolis-Hastings permet de simuler des échantillons suivant la distribution π à partir de distributions candidates q générales dont le support est inclus dans celui de π . Toutefois, le schéma de simulation ne fonctionnera pas bien en pratique si les zones de fortes probabilités de q sont localisées surtout dans les queues de distribution de π. Notons aussi que l'algorithme de Metropolis-Hastings ne génère pas d'échantillons indépendants identiquement distribués. L'algorithme de Metropolis-Hastings peut présenter des difficultés à explorer convenablement le support de la distribution d'intérêt. Cette situation s'aggrave d'autant plus dans le cas de distributions multidimensionnelles, le nombre d'échantillons nécessaires pour obtenir une couverture suffisante du support de la distribution d'intérêt devenant très important. Des algorithmes MCMC sont alors spécifiquement adaptés à la simulation de distributions multidimensionnelles. Signalons aussi que, pour engendrer cette chaine, l’algorithme de Metropolis-Hastings va s’appuyer sur deux éléments :

Des règles de placement des marcheurs auxquelles est associée une probabilité de transition ;

Une procédure d’acceptation-rejet.

L’algorithme de Metropolis-Hastings est le suivant :

1. Initialiser θ0 π0(x) , k=0,2. Acceptation-Rejet

Itération k :- proposer un candidat θ¿ pour θ(k+1), simuler :

θ¿ q (θ¿∨θ(k))- accepter le candidat θ¿ avec la probabilité

α ¿,θ(k)) = min {1,π (θ¿∨x )π (θ(k )∨x)}

Simuler u U[0,1]

Si u≤ α ¿,θ(k)), alors prendre θ(k+1)=θ¿, (acceptation)Sinon poser θ(k+1)=¿ θ(k) (rejet)

3. k k+1 et aller en (2).

Remarque : Acceptation-rejet + Metropolis-Hastings = obtenir des échantillons iid

35

Page 36: Chapitre I 2version

V.2.2. Echantillonnage de GibbsCette méthode a été utilisée par Geman (1984) pour générer des observations à partir d'une distribution de Gibbs (distribution de Boltzmann). 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, aussi, notons que c’est une procédure dans laquelle tous les échantillons sont acceptés. Il s'agit d'une forme particulière de la méthode de Monte-Carlo par chaîne de Markov qui, du fait de son efficacité, est largement utilisée dans de nombreux domaines d'analyse statistique bayésienne.

Dans la méthode de Gibbs, après avoir choisi un point de départ, les d composantes du vecteur de Co-variables (θ) sont générées les unes après les autres conditionnellement à toute les autres composantes. Si π (θ∨x) est la densité des d composantes du vecteurθ, conditionnellement aux données observées (x), nous utilisons alors les densités conditionnellesπ (θ1 ¿θ2 ,θ3 ,………… .. , θd , x) ,π (θ2 ¿θ1 ,θ3 ,………… .. , θd , x), et ainsi de suite. A

chaque ke étape, la distribution conditionnelle utilise les valeurs générées les plus récentes parmi toutes les autres composantes. Par la théorie des chaînes de Markov, on a que lorsque k ∞ ,la densité des réalisations obtenues converge versπ (θ∨x).Le schéma de simulation est décrit ci-dessous :

1. Fixer k=0,2.

- Générer θ1(k+1) à partir de π (θ1 ¿θ2

( k )1 , θ3

( k ) ,…………. ,θd(k) , x),

- Générer θ2( k+1 ) à partir de π (θ2|θ1

( k+1 ) , θ3( k ) ,…………. ,θd

(k ) , x ) ,- ⋯

- Générer θd−1( k+1 ) à partir de π (θd−1|θ1

(k +1) ,θ2(k +1) ,………….,θd

( k ) , x),- Générer θd( k+1 ) à partir de π (θd|θ1

( k+1) , θ2(k +1) ,…………. ,θd−1

(k+1) , x ).

3. Si la convergence est obtenue, alors

2.a) retenir θ=θ(k +1),

Sinon,

2.b) fixer k=k+1, et retourner a 1.

36

Page 37: Chapitre I 2version

Ce schéma de simulation est d'autant plus efficace lorsque les distributions conditionnelles π i (θi|θ1 ,…………… .. ,θ(i−1) ,θ(i+1) ,……………… .. , θd )sont simulables rapidement.

Un des points remarquables de l'algorithme de Gibbs est qu'il rend possible la simulation de la distribution jointe π (θ ¿=π(θ1,…………….,θd) à partir des distributions conditionnelles π i (θi|θ j≠ i ) .

Chapitre VI. SIMULATION D’UNE LOI TRONQUEE

37

Page 38: Chapitre I 2version

VI.1. Introduction

VI.1.1. Définition

En probabilité et en statistiques, une loi tronquée est une loi conditionnelle, dérivée d'une autre loi de probabilité. Plus clairement, pour une variable aléatoire X de support réel, dont la fonction de répartition estF, la loi tronquée à l'intervalle réel [a ,b] est simplement la loi conditionnelle de X∨a≤ X ≤b .

VI.1.2. DensitéPour une variable aléatoireX , de support réel, et dont la fonction de répartition est F et la densitéf , nous pouvons montrer que le conditionnement de X à l'intervalle réel[a ,b ] donne:

P (X ≤x∨a≤ X≤b )=P (a≤ X ≤ x )P (a≤ X ≤b )

=F ( x )−F (a)F (b )−F (a)

avec x∈ [a ,b ] .

VI.1.3. Espérance d’une variable aléatoire tronquée

L'espérance de X conditionnellement à l'événement X> y est :

E (X|X> y )= 11−F ( y )∫y

xf ( x )dx

VI.2. Loi Normale tronquée

La loi tronquée la plus utilisée est la loi normale tronquée, obtenue à partir d'une Loi normale.Elle est utilisée en économétrie dans le modèle Tobit et le modèle Probit, afin de modéliser respectivement les données censurées et les probabilités de choix binaire.

VI.2.1. Fonction de densité

Si X⤳N (μ ,σ ² ), et qu'on contraint X à appartenir à l'intervalle [a ,b] , avec :

−∞≤a<b≤+∞, alors la densité tronquée est :

f ( x ; μ ,σ , a , b )=

ф( b−μσ )– ф( a−μ

σ )ϕ ( x−μ

σ ), avec ϕ ( ∙ )la densité de la loi normale standard, et

ф ( ∙ ) sa fonction de répartition.

Par convention, si ¿+∞ , alors ф ( b−μσ )=1 et de meme, si a=−∞, alors ф ( a−μ

σ )=0.

38

Page 39: Chapitre I 2version

VI.2.2. Espérance et VarianceL’espérance et la variance sont respectivement :

Pour une double troncature

E (X|a<X<b )=μ+ϕ ( a−μ

σ )−ϕ ( b−μσ )

ф ( b−μσ ) – ф( a−μ

σ )σ

var (X|a<X<b )=σ ² [1+

a−μσ

ϕ ( a−μσ )−b−μ

σϕ ( b−μ

σ )ф ( b−μ

σ ) –ф ( a−μσ )

−( ϕ(a−μσ )−ϕ ( b−μ

σ )ф ( b−μ

σ )– ф ( a−μσ ))

2

] Pour une simple troncature

E (X|a<X )=μ+σλ (α ) et var (X|X>a )=σ ² [1−δ (α )]

Avecα=(a−μ ) / σ ; λ (α )=ϕ (α )/ [1−ф (α ) ] et (α )=λ (α )[ λ (α )−α ] .

VI.3. 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, par simple translation, à une loi normale à support positif). Ce type de problème est intéressant en particulier pour la simulation de variables dans des méthodes MCMC (Monte Carlo Markov Chains).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.

La loi normale à support positif est caractérisée par deux paramètres :

μЄ ¿−∞ ,+∞ [ qui correspond à la moyenne si la loi n'est pas tronquée ; etσ ²≥0 qui correspond à la variance si la loi n'est pas tronquée.

Nous utilisons un algorithme d'acceptation-rejet mixte, c'est-à-dire un algorithme d'acceptation-rejet classique mais utilisant plusieurs lois candidates, l'idée étant que chaque loi soit adaptée aux différentes valeurs que peuvent prendre les paramètres μ etσ . Ensuite, en fonction des valeurs de ces paramètres, la loi candidate donnant le meilleur taux d'acceptation moyen est utilisée pour générer un échantillon.

39

Page 40: Chapitre I 2version

L’expression du taux d’acceptation dépend dans certains cas des paramètres de la loi candidate. Il faut alors trouver les valeurs de ces paramètres qui maximisent le taux d’acceptation.Parmi l’ensemble des lois candidates utilisées, une seule fournira le meilleur taux d’acceptation moyen pour des paramètres de la loi cible donnés. 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é.

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 gien fonction des paramètres def , puis à calculer la constante c i correspondante :

1) Sélectionner la loi candidate gi la plus appropriée en fonction des paramètres de f ;

2) Calculer la constante c i;3) Générer un nombre aléatoirezà partir de g ;4) Générer un nombre aléatoire uniforme U ;5) Calculerρ ( z )=f (z)/c ig i(z),6) Si U ≤ ρ (z ) alors x=z (acceptation) ; sinon : retour en 3 (rejet).

Quatre lois candidates sont proposées pour simuler la loi cible f :

a) La loi Normale :

g1 ( x )= 1√2πσ ²

e(−(x−μ) ²

2σ ² )

b) La loi Normale couplée à la loi Uniforme

C’est une distribution définie surR+¿ ¿, uniforme sur ¿ et qui suit la loi normale N (μ ,σ ² ) sur¿, μ≥0:

g2 ( x )=1R +¿

μ+√ πσ ²2

{ 1 si0≤ x<μ

e(−( x−μ) ²

2σ ² )si x≥ μ

¿

c) La loi Normale tronquée en la moyenne (μ≤0) :

g3 ( x )= 2√2 πσ ²

e(−( x−μ) ²

2σ ² )1¿ ¿¿

40

Page 41: Chapitre I 2version

d) La loi Exponentielle

g4 ( x )=α e(−αx )1R+¿ ¿ où la valeur de α correspond à la valeur qui maximise le taux

d’acceptation moyen : α=(√μ ²+4 σ ²−μ )

2σ ²

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¿ μ∨≫0, et les lois b) et c) permettent d’améliorer le taux d’acceptation moyen autour de zéro.

Pour chacune de ces lois, nous pouvons calculer l’expression des constantes c (et ainsi les taux d’acceptation moyens) :

c1=√2πσ ² /M41

Page 42: Chapitre I 2version

c2=(μ+√πσ ²/2 ) /M

c3=√2πσ ²/2M

c4=exp(α2 (2μ+ασ ²))/αMLe calcul des taux d’acceptation ρ(x ) est alors direct.Les taux d’acceptation moyens pour chacune des quatre lois candidates ont été représentés en fonction de μ(avec σ2=1) sur la figure suivante :

Nous pouvons alors trouver les expressions des trois points d’intersections qui délimitent les zones. Les calculs sont directs pour μB et μC, mais on ne peut que déterminer une valeur approchée de μA.

En effet, d’après l’équationα=(√μ ²+4σ ²−μ )/2σ ², on a :μ= (1−α ²σ ² )/α , et en égalant les taux d’acceptation moyen des lois 3) et 4), on obtient : ασ exp ¿ .

Cette dernière équation définit ασ sous une forme implicite. Nous pouvons en déduire que ασ s’exprime sous la formeασ=√W (2e² /π )≈1,1367, où W est la fonction de Lambert définie comme l’inverse de la fonctionf (w )=wew.

Ainsi,μA≈−0,257σ ; μB=0 ; μC=σ √π /2 .

42

Page 43: Chapitre I 2version

Le taux d’acceptation moyen le plus faible correspond à μ=μ A ; il est égal à 0,797 environ, ce qui est un très bon taux d’acceptation.

A présent écrivons la fonction sous MATLAB qui nous permettra de simuler la loi cible f à partir des 4 lois candidates.

function x = rpnorm(N,m,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');

end

if N<=0 % N=nombre d’échantillon à générer

error('le nombre d’échantillon à générer doit être positif');

end

x = []; % x =vecteur de sortie des échantillons

NN = N;

% Intersections

A = 1.136717791056118;

mA = (1-A^2)/A*s;

mC = s * sqrt(pi/2);

while length(x)<NN,

if m < mA % 4. Loi exponentielle avec m=paramètre mu de la loi

a = (-m + sqrt(m^2+4*s^2)) / 2 / s^2;

z = -log(1-rand(N,1))/a;

rho = exp( -(z-m).^2/2/s^2 - a*(m-z+a*s^2/2) );

else if m <= 0 % 3. Loi normale tronquée en la moyenne

% égale parce que 3 est plus rapide que 2

z = abs(randn(N,1))*s + m;

rho = (z>=0);

else if m < mC % 2. Loi normale coulée à la loi uniforme

r = (rand(N,1) < m/(m+sqrt(pi/2)*s));

43

Page 44: Chapitre I 2version

u = rand(N,1)*m;

g = abs(randn(N,1)*s) + m;

z = r.*u + (1-r).*g;

rho = r.*exp(-(z-m).^2/2/s^2) + (1-r).*ones(N,1);

else % 1. Loi normale

z = randn(N,1)*s + m;

rho = (z>=0);

end

% Accept/reject the propositions

reject = (rand(N,1) > rho);

z(reject) = [];

if isempty(z) x = [x ; z]; end

N = N-length(z);

end

V.4. Conclusion

Nous avons présenté une approche pour simuler des variables suivant une loi dont la forme varie avec ses paramètres. 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.L’approche est ensuite appliquée au cas particulier de la génération de variables aléatoires normales à support positif. Quatre lois candidates ont été présentées, et les intervalles sur lesquelles elles sont le plus performantes en termes de taux d’acceptation ont été déterminés. Des simulations ont illustré le fait que la méthode fonctionne bien et rapidement dans toutes les situations possibles. Les travaux futurs se concentrerons sur la recherche de lois candidates plus performantes, telle que la loi normale couplée à un polynôme, ou la loi normale tronquée en la moyenne dont les deux paramètres sont déterminés pour maximiser le taux d’acceptation moyen. 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 pour simuler des lois normales multidimensionnelles à support positif.

44