previous up next contents index
Previous: 2.4 Compléments sur la Up: 2. Générateurs non uniformes Next: 2.6 Générateurs géométriques   Contents   Index

Subsections

2.5 Générateurs pour les lois usuelles


2.5.1 Loi exponentielle

Une variable distribuée selon la loi exponentielle admet maths. Sa moyenne et son écart-type sont alors tous deux égaux à maths. Bornons nous au cas maths et utilisons la fonction de répartition inverse. Avec les notations du § 2.3.2, on a maths et donc maths. Il est clair que maths est uniformément distribué dans maths dès que maths l'est. Lorsque maths), on aboutit à l'algorithme 28.


maths


2.5.2 Loi normale, méthode des quotients

Considérons maintenant une variable aléatoire maths distribuée selon la loi normale réduite, c'est à dire ayant pour densité de probabilité la fameuse "courbe en cloche" de la figure 2.9(a). On sait que maths avec maths et maths.

Figure 2.9: loi normale : densité et zone des quotients.
[Densité.]maths[Zone des quotients.]maths

Considérons, comme au §  2.3.4, la région du plan maths définie par les conditions maths et maths, c'est à dire par maths et maths. L'équation polaire de sa frontière est maths, d'où la figure 2.9(b).

Un peu de calcul montre que la zone des quotients est inscrite dans le rectangle maths défini par maths et maths. On peut alors sélectionner un couple maths uniformément réparti dans la zone des quotients en sélectionnant un couple uniformément réparti dans le rectangle maths puis en rejetant ce qui déborde. On obtient l'algorithme 29.


maths

Pour cet algorithme, le facteur de tir est maths, soit maths : il y a donc environ maths appels au générateur uniforme par instanciation fournie. L'efficacité du générateur dépend donc principalement de l'efficacité du calcul des logarithmes sur l'ordinateur considéré. Il est égalament clair que l'on a intérêt à générer les instanciations par lots, de façon à "amortir" les calculs préliminaires de maths.

2.5.3 Loi normale, algorithme polaire

On obtient une autre méthode de simulation de la loi normale en passant en coordonnées polaires. L'idée utilisée est exactement la même que celle classiquement utilisée pour le calcul de l'intégrale de Gauss maths. Considérons en effet maths et maths deux variables indépendantes, de même loi normale réduite. La densité de probabilité du couple maths est maths. La densité de probabilité du couple maths est donc maths soit maths, montrant que les variables maths et maths sont indépendantes, la première étant distribuée selon une loi exponentielle, et la seconde selon une loi uniforme.

Il suffit donc d'instancier maths selon l'algorithme 28, et d'instancier maths uniformément dans maths pour obtenir un couple maths de variables indépendantes et distribuées selon la loi normale, c'est à dire deux instanciations de la variable maths. D'où l'algorithme 30.


maths

Cet algorithme possède un meilleur facteur de tir que l'algorithme précédent, puisqu'il utilise exactement une fois le générateur uniforme par valeur générée et non pas maths fois. Mais il nécessite quatre appels de fonctions usuelles (log, racine, sin, cos) au lieu d'un. On est donc dans le cas de deux algorithmes ayant la même complexité, la comparaison dépendant alors des détails de l'implémentation : il ne reste plus qu'à expérimenter les deux possibilités dans chaque environnement de travail.

2.5.4 A propos de la loi gamma

On dit qu'une variable suit une loi gamma de paramètre maths lorsque les chances de survenue d'une valeur particulière sont proportionnelles à maths. Les propriétés statistiques d'une telle variable sont étroitement liées aux propriétés de la fonction Gamma d'Euler, définie par maths. Il est bien connu que cette fonction généralise la factorielle, c'est à dire que : maths. Par contre, la formule :

maths

est moins connue, et nous allons en rappeler la démonstration. On part de maths, c'est à dire de :

maths

et l'on procède au changement de variable maths. Le déterminant jacobien de cette transformation est maths. On a donc

maths

et on voit que les variables se séparent, conduisant à la formule voulue.

En désignant par maths la distribution de probabilité de la loi gamma, l'exigence d'avoir une masse totale égle à maths conduit à maths. On en déduit maths, puisque maths et maths. La figure 2.10 donne l'allure de la fonction de densité pour maths et maths.

Figure 2.10: Densité de probabilité de la loi gamma.
[Le cas maths.]maths[Le cas maths.]maths

L'un des intérêts de cette distribution est que la somme maths de deux variables aléatoires indépendantes maths de loi gamma est distribuée à son tour selon une loi gamma, le paramètre étant la somme des paramètres. On a en effet :


maths maths maths  
  maths maths  

En réutilisant l'algorithme 28 (maths), on en déduit immédiatement l'algorithme 31, mais celui-ci n'est valable que pour des valeurs entières du paramètre. Pour les autres valeurs, la figure 2.10 montre qu'il faut étudier séparément le cas maths, où la densité de probabilité n'est pas bornée, et le cas maths où cette densité reste bornée (avec un maximum pour maths).


maths

Une remarque de programmation : le code maths procède effectivement au produit de maths instanciations successives du générateur uniforme maths, et non pas au calcul de maths !

2.5.5 Loi gamma maths

Pour pouvoir mettre en oeuvre un algorithme de tir, il faut passer par un changement de variable transformant à la fois l'ensemble de définition de maths, c'est à dire maths, et l'ensemble des valeurs de maths, c'est à dire encore maths en deux intervalles bornés. A cet effet, utilisons en premier lieu maths qui transforme maths en maths et qui fait passer de maths à maths, montrant que la densité de probabilité de la nouvelle variable est bornée. En second lieu, utilisons maths. Pour que les deux segments-images soient adjacents, on impose maths soit maths. La probabilité maths se réécrit alors maths, montrant que la densité de probabilité est bien restée bornée.

On constate que le choix maths est particulièrement intéressant. D'une part cette valeur est négative, assurant maths, c'est à dire le fait que les deux segments sont adjacents et non pas superposés. D'autre part, ce choix fait apparaître le même facteur maths dans les deux expressions, ce qui va permettre de n'en pas tenir compte : il suffira de considérer que les chances de sélection sont respectivement proportionnelles à maths et à maths, quantité qui sont toutes deux bornées par maths (sur les intervalles correspondants). On aboutit à l'algorithme 32.

Figure 2.11: Loi gamma : m'ethode de tir pour maths (Ahrens, 1974).
[Le cas maths.]maths[Facteur de tir pour maths.]maths

La figure 2.11(a) donne le graphe de sélection correspondant à maths et la figure 2.11(b) donne le graphe du facteur de tir maths en fonction du paramètre maths. On constate que ce facteur ne dépasse jamais maths. La figure 2.10 (gauche) a été avec obtenue en engendrant maths valeurs de maths du générateur, occasionnant maths appels du générateur uniforme et aboutissant à un score maths de maths.


maths

2.5.6 Loi gamma maths

Lorsque maths, on peut utiliser l'algorithme précédent pour instancier une gamma-variable maths, de paramètre maths, puis utiliser l'algorithme 31 pour instancier une gamma-variable maths, de paramètre maths : la variable maths aura la distribution voulue. Il est clair que les performances de cet algorithme se dégradent lorsque maths dépasse quelques unités. Un nouvel algorithme devient nécessaire (également Ahrens, 1974).

Le principe de cet algorithme est le suivant : on part d'une variable uniforme maths, que l'on transforme par maths puis maths, et on accepte ou rejette maths selon la méthode de tir appropriée. Il est clair que maths n'est pas acceptable, ce qui impose de rejeter immédiatement tous les maths avec maths. Il est clair que l'on obtient un algorithme équivalent en engendrant uniformément maths et en posant alors maths.

Il est clair que les maths obtenus par maths ont été sélectionnés proportionnellement à maths et non pas proportionnellement à maths. Il convient donc d'accepter ou de rejeter les valeurs maths selon que le verdict rendu par une variable uniforme est inférieur ou supérieur au quotient maths, en désignant par maths la quantité maths et par maths la valeur maximale de maths (le fait que maths soit borné étant évident).

Soit maths le nombre tel que maths. L'équation maths conduit à

maths

et il nous reste à choisir les coefficients maths et maths de façon à avoir un bon facteur de tir (et des calculs suffisamment simples). Le fait que maths soit maximal pour maths suggère de faire en sorte que maths soit une racine du polynôme maths, conduisant à maths. Pour que l'on ait effectivement maths, une méthode simple est que maths n'ait pas d'autres racines réelles. Mais on risque alors d'avoir un graphe "en accent circonflexe", donnant un mauvais facteur de tir. Un compromis est alors que l'autre racine soit une racine double, conduisant à un point d'inflexion à tangente horizontale.

On aboutit à maths (l'abscisse du méplat étant maths). Un examen attentif des calculs montre que le choix maths est également possible, conduisant à un méplat en maths et un maximum en maths. On obtient alors un facteur de tir (légèrement) meilleur pour les grandes valeurs de maths.

Figure 2.12: Loi gamma : m'ethode de tir pour maths (Ahrens, 1974).
[Le cas maths.]maths[Facteur de tir pour maths.]maths

La figure 2.12(a) donne le graphe de sélection pour maths et la figure 2.12(b) donne le facteur de tir maths maths en fonction du paramètre. On constate que ce facteur est compris entre maths (pour maths) et maths (pour maths) et est inférieur à maths pour maths. La figure 2.10(b) a été avec obtenue en engendrant maths valeurs, occasionnant maths appels du générateur uniforme et aboutissant à un score maths de maths.

On remarquera que l'algorithme a été programmé de façon à donner directement une liste de valeurs, de façon à "mettre en facteur" les calculs auxiliaires (comme celui de maths).


maths


previous up next contents index
Previous: 2.4 Compléments sur la Up: 2. Générateurs non uniformes Next: 2.6 Générateurs géométriques   Contents   Index


douillet@ensait.fr
2005-01-04