Telechargé par Drissa Fane

Simulation-Monte Carlo

publicité
MASTER GRAF
DR OKOU GUEI CYRILLE
PhD en Mathématiques appliquées:
Statistiques
Enseignant-Chercheur
Maître Assistant des Universités CAMES
Cours : Simulation Monte-Carlo
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
Table des matières
Chapitre 1 : Généralité sur les estimateurs Monte Carlo ...................................................................... 3
1.1.
Description de la méthode ..................................................................................................... 3
1.1.1.
Loi des grands nombres .................................................................................................. 3
1.1.2.
Vitesse de convergence et intervalles de confiance ...................................................... 4
Chapitre 2 : Simulation de variables aléatoires ..................................................................................... 8
2.1.
Loi uniforme ............................................................................................................................ 8
2.2.
Méthode d’inversion .............................................................................................................. 8
2.3.
Méthodes de transformation générales ................................................................................ 9
2.3.1.
2.4.
Un générateur aléatoire normal .................................................................................. 10
Méthodes de rejet ................................................................................................................ 11
Chapitre 3 Intégration de Monte-Carlo ............................................................................................... 18
3.1. Intégration numérique .............................................................................................................. 18
3.2. L’intégration classique de Monte-Carlo .................................................................................... 19
Bibliographie ......................................................................................................................................... 21
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
Chapitre 1 : Généralité sur les estimateurs Monte Carlo
1.1. Description de la méthode
Supposons que l'on veuille calculer une quantité I. La première étape est de la mettre sous
forme d'une espérance
𝐼 = 𝐸(𝑋) avec X une variable aléatoire.
Si on sait simuler des variables 𝑋1 , 𝑋2 , … , 𝑋𝑁 indépendantes et identiquement distribuées (ce
que nous noterons i.i.d. dans la suite), alors nous pouvons approcher I par
𝑋 +𝑋 +⋯+𝑋𝑁
𝐼 = 1 2𝑁
avec N « grand », sous réserve d'application de la loi des grands nombres. C'est ce type
d'approximation que l'on appelle méthode de Monte-Carlo .
La méthode de Monte Carlo est une méthode pour faire des calculs numériques.
1.1.1.
Loi des grands nombres
On fixe dans la suite un espace de probabilités (Ω, 𝐴, 𝑃). On considère sur cet espace une suite
(𝑋𝑛 )𝑛≥1 de variables aléatoires indépendantes et identiquement distribuées. On note alors
SN la somme empirique jusqu’à l’indice N :
𝑁
1
𝑆𝑁 = ∑ 𝑋𝑛
𝑁
𝑛=1
𝑁≥1
Théorème 1 (Loi forte des grands nombres).
Supposons que les 𝑋𝑛 soient intégrables. Alors
ℙ−𝑝.𝑠
𝑆𝑁 →
𝑛→+∞
𝐸[𝑋1 ] .
La méthode de Monte Carlo est une application directe de ce résultat permettant le calcul
‘pratique’ d’intégrales
Plus précisément, considérons une fonction 𝑓 ∶ [0,1] → 𝑅 measurable et notons 𝐼 =
1
∫0 𝑓(𝑢)𝑑𝑢 . On considère alors une suite de variables aléatoires i.i.d. (𝑈𝑛 )𝑛≥1 de loi uniforme
sur [0,1]. D’après la loi forte des grands nombres, nous obtenons la convergence suivante :
𝑁
1
1
lim
∑ 𝑓(𝑈𝑛 ) = 𝐸[𝑈1 ] = ∫ 𝑓(𝑢)𝑑𝑢
𝑁→+∞ 𝑁
0
𝑛=1
Cette convergence nous permet alors de faire l’approximation suivante :
1
𝑁
1
∫ 𝑓(𝑢)𝑑𝑢 ≈ ∑ 𝑓(𝑈𝑛 )
𝑁
0
𝑛=1
De manière plus générale, si 𝑓 est définie et mesurable sur 𝑅 𝑑 et 𝑔 est une fonction de densité
de probabilité sur 𝑅 𝑑 alors la loi forte de grands nombres nous donne
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
𝑁
1
lim
∑ 𝑓(𝐺𝑛 ) = 𝐸[𝐺1 ] = ∫ 𝑓(𝑢)𝑔(𝑢)𝑑𝑢
𝑁→+∞ 𝑁
𝑅𝑑
𝑛=1
où (𝐺𝑛 )𝑛≥1 est une suite i.i.d. de densité g. Nous retrouvons alors encore l’approximation
suivante :
𝑁
1
∫ 𝑓(𝑢)𝑔(𝑢)𝑑𝑢 ≈ ∑ 𝑓(𝐺𝑛 )
𝑁
𝑅𝑑
𝑛=1
Remarque 1.1.1. : Dans l’approximation précédente, le choix du paramètre N doit être le plus
grand possible pour réduire l’erreur d’approximation. Par contre il faut prendre N le plus petit
possible pour réduire le temps de calcul. Ainsi se pose le choix de N qui est lié à la qualité de
l’approximation précédente relative à ce paramètre. On parle alors de vitesse de convergence.
Cette vitesse est étudiée dans la section suivante
Exemple 1.1.1. Supposons que l'on cherche à calculer :
𝐼 = ∫[0,1]𝑑 𝑓(𝑢1 , 𝑢2 , … , 𝑢𝑑 ) 𝑑𝑢1 𝑑𝑢2 … 𝑑𝑢𝑛 avec 𝑓 une fonction bornée
Posons 𝑋 = 𝑓(𝑈1 , 𝑈2 , … , 𝑈𝑑 ) où les 𝑈1 , 𝑈2 , … , 𝑈𝑑 sont des variables aléatoires indépendantes
suivant toutes une loi uniforme sur [0;1]. Alors :
𝐼 = 𝐸(𝑓(𝑈1 , 𝑈2 , … , 𝑈𝑑 ) )
Etapes de l’Algorithme
Etape 1 : Simuler les 𝑋1 = (𝑈11 , 𝑈21 , … , 𝑈𝑑1 ), 𝑋2 = (𝑈12 , 𝑈22 , … , 𝑈𝑑2 ),…, 𝑋𝑁 = (𝑈1𝑁 , 𝑈2𝑁 , … , 𝑈𝑑𝑁 )
selon la loi uniforme sur [0,1]
1
Etape Calculer la somme : ∑𝑁
𝑛=1 𝑓(𝑋𝑛 )
𝑁
Appliquer l’algorithme à la fonction suivante :
𝑓(𝑢1 , 𝑢2 , 𝑢3 ) = sin(𝑢1 ) ∗ sin(𝑢2 ) ∗ sin(𝑢3 )
Approximation de Monte-Carlo
d=3
n=1000
s=0
for (i in 1:n)
{ u=runif(d,0,1) #simulation de d variables uniformes indépendantes
s=s+sin(u[1])*sin(u[2])*sin(u[3])
}
print(s/n)
1.1.2.
Vitesse de convergence et intervalles de confiance
Nous commençons par le principal résultat donnant la vitesse de convergence.
Théorème 2 (Théorème central limite). Supposons que les variables aléatoires (𝑋𝑛 )𝑛≥1 soient
à valeurs réelles et de carré intégrable. Notons 𝑚 = 𝐸[𝑋1 ] 𝑒𝑡 𝜎 2 = 𝑉(𝑋1 ). Alors
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
ℒ
√𝑁(𝑆𝑁 − 𝑚) →
𝑛→+∞
𝒩(0, 𝜎 2 )
La version multidimensionnelle est la suivante : si les (𝑋𝑛 )𝑛≥1 sont à valeurs dans 𝑅 𝑑 alors
ℒ
√𝑁(𝑆𝑁 − 𝑀) →
𝑛→+∞
𝒩(0, ∑2 )
2
Où 𝑀 = [𝑚𝑙 ]1≤𝑙≤𝑑 et ∑2 = [𝜎𝑙,𝑚
]1≤𝑙,𝑚≤𝑑 désignent respectivement le vecteur moyenne et la
matrice de variance-covariance des (𝑋𝑛 )𝑛≥1
Remarque 1.1.2 : Le théorème central limite nous donne deux informations: la vitesse de
convergence qui est en √𝑁 et la variance de la loi asymptotique de l’erreur.
-
-
La vitesse en √𝑁 est très lente (il faut multiplier par 4 le nombre d’itérations pour
divisier l’erreur par 2). Il s’agit cependant de l’un des principaux avantages de la
méthode de Monte Carlo puisque cette vitesse ne dépend pas de la dimension
(contrairement aux méthodes déterministes).
La variance est très importante en pratique car plus elle est grande, moins
l’approximation risque d’être efficace. Nous allons voir son rôle primordial dans le
‘critère d’arrêt’ de la procédure basée sur les intervalles de confiance.
Nous présentons maintenant la notion d’intervalle de confiance. Nous considérons dans la
suite des variables aléatoires unidimensionnelles.
Intervalles de confiance asymptotiques. Nous commençons par les intervalles de confiance
limites. Nous supposons dans cette section que la loi des variables aléatoires (𝑋𝑛 )𝑛≥1 dépend
d’un paramètre réel 𝜃 que l’on cherche à estimer.
Définition1.2.1. (Intervalles de confiance asymptotique).
Fixons un réel 𝛼 ∈]0,1[.Un intervalle de confiance pour 𝜃 de niveau (probabilité de confiance)
1 − 𝛼 est un intervalle 𝐼𝑁 (𝑋1 , . . . , 𝑋𝑁 ) dont les bornes sont des fonctions de 𝑋1 , . . . , 𝑋𝑁 et tel
que
lim 𝑃(𝜃 ∈ 𝐼𝑁 (𝑋1 , . . . , 𝑋𝑁 )) ≥ 1 − 𝛼
𝑁→+∞
Cas d’une variance σ2 connue.
a) Cas d’une variance 𝝈𝟐 connue,
On déduit du TCL un intervalle de confiance pour la moyenne m des (𝑋𝑛 )𝑛≥1 . En effet, la loi
limite n’ayant pas d’atome, nous avons :
lim 𝑃 (√𝑁(𝑆σ𝑁
𝑁→+∞
Avec 𝐺 =
√𝑁(𝑆𝑁 −𝑚)
σ
∼ 𝑁(0,1) or
−𝑚)
∈ [−𝑎, 𝑎]) = 𝑃(𝐺 ∈ [−𝑎, 𝑎])
√𝑁(𝑆𝑁 −𝑚)
σ
𝑎σ
∈ [−𝑎, 𝑎] Donc 𝑚 ∈ [𝑆𝑁 ± √𝑁
]
Nous en déduisons un intervalle de confiance asymptotique pour 𝑚 de niveau 1 − 𝛼 de la
forme
𝑁
𝛼
1−
1
𝑞 2 𝜎
𝐼𝑁 = [ ∑ 𝑋𝑛 ± 𝑁(0,1) ]
√𝑁
𝑁
𝑛=1
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
Où
1−𝛼
2
𝑞𝑁(0,1)
désigne le quantile de la loi N(0,1) d’ordre 1 − 𝛼2. Dans les applications, il est
1−𝛼
2
d’usage de prendre α = 5% et dans ce cas 𝑞𝑁(0,1)
≈ 1.96
b) Cas où la variance est inconnue.
Dans ce cas il faut estimer aussi la variance par méthode de Monte Carlo. Notons alors
𝑁
1
𝜎̂ 2 =
∑(𝑋𝑛 − 𝑆𝑁 )2
𝑁−1
𝑛=1
Par la LFGN nous avons
ℙ−𝑝.𝑠
𝜎̂ 2 →
𝑛→+∞
𝝈𝟐
Lemme 1.2.1(Slutsky). Soient Y, et 𝑌𝑛 et 𝑍𝑛 , 𝑛 ≥ 1 des variables aléatoires telles que
ℒ
𝑌𝑛 →
𝑌
𝑍𝑛 →
𝑐
𝑛→+∞
𝑃
𝑛→+∞
où c est une constante réelle. Alors
ℒ
𝑍𝑛 𝑌𝑛 →
𝑛→+∞
𝑃
𝑍𝑛 + 𝑌𝑛 →
𝑛→+∞
𝑐𝑌
𝑐+𝑌
A l’aide de ce lemme, on peut appliquer le raisonnement précédent en remplaçant 𝜎 2 par ¯
𝜎̂ 2 et nous obtenons l’intervalle de confiance de niveau 1−α suivant
𝑁
𝛼
1−
1
̂
𝑞 2 𝜎
𝐼𝑁 = [ ∑ 𝑋𝑛 ± 𝑁(0,1) ]
√𝑁
𝑁
𝑛=1
-
Intervalles de confiance à distance finie.
Les intervalles asymptotiques issus du TCL sont largement utilisé dans la méthodologie Monte
Carlo et cela se justifie par l’utilisation d’un grand nombre d’itération (N ≥ 105). Il est
cependant également possible de construire des intervalles de confiance dont la probabilité
d’appartenance est contrôlée pour un nombre fixé d’itérations. Cela peut être fait en utilisant
par exemple les inégalités de Bienaymé-Tchebychev et de Chernov par exemple.
Proposition 1.2.1 (Inégalité de Bienaymé-Tchebychev). Soit X une variable aléatoire réelle de
carré intégrable. Alors
𝑃(|𝑋 − 𝐸(𝑋)| ≥ 𝑟) ≤
𝑉(𝑋)
𝑟2
pour tout 𝑟 > 0
Ainsi on a :
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
𝑃(|𝑆𝑁 − 𝑚| ≥ 𝑟) ≤
𝑉(𝑆𝑁 ) 𝝈𝟐 1
= ∗ 2
𝑁 𝑟
𝑟2
Et
𝝈𝟐 1
𝑃(𝑚 ∈ [𝑆𝑁 − 𝑟, 𝑆𝑁 + 𝑟]) ≥ 1 −
∗
𝑁 𝑟2
pour tout 𝑟 > 0. Ainsi pour avoir un intervalle de confiance de niveau 1−α, il nous faut
prendre 𝑟 =
𝝈𝟐
𝑁
1
∗ 𝑟 2 L’intervalle est alors beaucoup plus grand que celui donné par le TCL.
Dans le cas d’une intégrabilité plus forte, ce résultat peut être nettement amélioré à l’aide de
l’inégalité de Chernov
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
Chapitre 2 : Simulation de variables aléatoires
2.1. Loi uniforme
Nous commençons par la loi uniforme car nous l’utiliserons ensuite pour simuler les autres
lois. En pratique un ordinateur ne sait engendrer que des suites de nombres déterministes : il
est incapable de générer une suite "réellement" aléatoire. Par contre, il est possible de
construire des suites de nombres qui se comportent (statistiquement) comme des suites
aléatoires.
Les suites les plus courantes produites par les ordinateurs sont calculées à partir d’un nombre
M d’entiers {0, ..., M −1}. En divisant par M, on obtient ainsi une suite sur [0,1[. Elles sont
construites sur la base de récurrences de la forme
𝑢𝑛+1 = 𝑔(𝑢𝑛 )
où g est une fonction de {0, . . . , 𝑀 − 1} dans lui-même et 𝑢0 ,appelégraine,està initialiser
dans {0, . . . , 𝑀 − 1}. On pose alors
𝑥𝑛 =
𝑢𝑛
∈ [0,1],
𝑀
𝑛∈𝑁
L’exemple le plus simple est celui de la congruence mixte :
𝑔(𝑢) = (𝐴𝑢 + 𝐶) 𝑚𝑜𝑑 𝑀
où A et C sont des réels positifs à choisir (dans le cas C = 0, on parle de congruence
multiplicative). Une fois que nous pouvons simuler la loi 𝑈[0,1], il est possible de simuler la
loi 𝑈[𝑎, 𝑏] pour a ≤ b en utilisant le fait que si 𝑌 ∼ 𝑈[0,1] alors 𝑎 + (𝑏 − 𝑎)𝑌 ∼ 𝑈[𝑎, 𝑏].
2.2. Méthode d’inversion
La méthode d’inversion (de la fonction de répartition) est basée sur le résultat suivant
Proposition 2.2.1. Soit Y une variable aléatoire réelle à valeurs dans R de fonction de
répartition 𝐹𝑌 . On pose
𝐹𝑌−1 (𝑢) : = inf{𝑦 ∈ 𝑅, 𝐹𝑌 (𝑦) ≥ 𝑢} avec 𝑢 ∈ [0, 1]
Notons 𝑑𝑜𝑚 (𝐹 −1 ) = {𝑦 ∈ 𝑅 ∶ 𝐹 −1 (𝑦) ≠ ±∞}.Si 𝑈 ∼ 𝑈𝑑𝑜𝑚 (𝐹−1 ) alors 𝐹 −1 (𝑈) et Y ont
la même loi.
Démonstration. Par définition de 𝐹 −1 (𝑦)
Nous avons 𝑃[𝐹 −1 (𝑈) ≤ 𝑦] = 𝑃[𝑈 ≤ 𝐹𝑌 (𝑦)] = 𝐹𝑌 (𝑦) pour tout 𝑦 ∈ 𝑅
Notons que cela peut être très coûteux si la loi de Y est très dispersée. Nous présentons deux
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
Exemple 2.2.1 : Le premier concerne la loi exponentielle. Supposons que Y ∼E(λ) avec λ > 0.
Alors
𝐹𝑌 (𝑦) = 1 − 𝑒 −𝜆𝑦 , 𝑦 ∈ 𝑅.
Nous obtenons donc 𝐹𝑌−1 (𝑢) = −
1
𝜆
𝑙𝑜𝑔(1 − 𝑢). Ainsi si 𝑈~𝑈(0,1) et en utilisant le fait que
1
1 − 𝑈 ∼ 𝑈(0,1) . Nous obtenons que 𝑌̂ = − 𝜆 𝑙𝑜𝑔(𝑈) suit la même loi que Y.
Faire le code cet exemple sur R
Exemple 2.2.2 Dans le cas de la fonction F donnée par
𝑥
𝑠𝑖 𝑥 ∈ [0,1[
3
𝑥 1
𝐹(𝑥) =
+ 𝑠𝑖 𝑥 ∈ [1,2[
3 3
1 𝑠𝑖 𝑥 ≥ 2
{
0 𝑠𝑖 𝑥 < 0
3𝑢 𝑠𝑖 𝑢 ∈ [0,1/3 [
1 𝑠𝑖 𝑢 ∈ [1/3,2/3[
𝐹 −1 (𝑢) =
2
3𝑢 − 1 𝑠𝑖 𝑢[ , 1]
3
{
Code R
finv<-function(u)
{
if (u<1/3) { z=3*u }
else if (u<2/3) { z=1 }
else { z=3*u-1 }
return(z)
}
u=runif(1,0,1) #simulation d'une variable uniforme (dans [0;1])
print(finv(u))
2.3. Méthodes de transformation générales
Quand une distribution de densité f est reliée de manière relativement simple à une autre
distribution qui est facile à simuler, cette relation probabiliste peut souvent être exploitée
pour construire un algorithme de génération suivant 𝑓.
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
où 𝑁 ∗ = { 1,2, . . . } . Par exemple, pour générer des variables aléatoires du 𝜒62 , nous pourrions
utiliser le code R
Code
U=runif(3*10000)
U=matrix(data=U, nrow=3) #matrice des sommes
X=-log(U) # d’uniforme à exponentielle
Y=2*apply(X,2,sum) #sommes donnant le chi-deux
plot(X[1,])
par(mfrow = c(1,2))
hist(X[1,])
hist(Y)
2.3.1.
Un générateur aléatoire normal
Lemme 2.3.1 Si U, V sont de loi 𝑈([0; 1]) et indépendantes alors
( √−2 log(U) cos(2πV ), √−2 log(U) sin(2πV ))
1 0
est un vecteur gaussien centré de matrice de covariance [
] (donc les deux composantes
0 1
sont indépendantes et de loi N (0, 1)).
Code
U=runif(3*10000)
V=runif(3*10000)
X=log(U)
Y1=sqrt(-2*X)*cos(2*pi*V)
Y2=sqrt(-2*X)*sin(2*pi*V)
par(mfrow = c(1,2))
hist(Y1)
hist(Y2)
Distributions discrètes
Nous considérons dans cette section la génération de variables aléatoires discrètes, pour les
quelles il existe un algorithme générique. De nouveau, utilisant le principe de la
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
transformation inverse abordé dans la Section 2.1.2, nous pouvons construire un algorithme
de base qui fonctionne formellement pour toute distribution discrète.
Pour générer 𝑋 ∼ 𝑃𝜃 , où la loi 𝑃𝜃 est portée par les entiers, nous pouvons calculer
— une fois pour toutes, en supposant que le stockage ne pose pas problème — les
Probabilités
2.4. Méthodes de rejet
Il existe beaucoup de distributions pour lesquelles ni la méthode de transformation inverse,
ni des transformations plus générales ne peuvent produire des variables aléatoires de ces
distributions. Pour ces cas, nous devons nous tourner vers des méthodes indirectes, c’est-àdire vers des méthodes pour lesquelles nous générons tout d’abord une variable aléatoire
candidate qui est alors soumise à un test. L’acceptation de ce test conduit à conserver la valeur
simulée, son rejet à répéter la simulation. Comme nous allons le voir à présent, cette classe
de méthodes est extrêmement puissante et nous autorisera à simuler virtuellement suivant
n’importe quelle distribution.
Cette méthode de rejet nous oblige seulement à connaître la forme fonctionnelle de la densité
d’intérêt f (appelée densité cible) à une constante multiplicative près.
Nous utilisons en parallèle une densité plus simple g pour les simulations effectives, densité
appelée densité instrumentale ou candidate, qui produit un flot de valeurs candidates pour la
simulation suivant f. Les seules contraintes que nous imposons sur cette densité candidate g
sont que
(i)
f et g ont des supports compatibles (soit donc que g(x) > 0 quand f(x) > 0).
(ii)
Il existe une constante M telle que 𝑔(𝑥) ≤ 𝑀 pour tout x . Sous ces conditions, X
𝑓(𝑥)
de loi f peut être simulé comme suit. Premièrement, nous générons 𝑌 ∼ 𝑔 et,
indépendamment, nous générons 𝑈 ∼ 𝑈 [0 , 1]. Si
1 𝑓(𝑥)
𝑈≤
𝑀 𝑔(𝑥)
alors nous posons X = Y. Si, au contraire, l’inégalité n’est pas satisfaite, nous
rejetons Y et U, puis nous recommençons la génération des valeurs candidates.
Succinctement, la représentation algorithmique de la méthode de rejet s’écrit
comme suit :
L’implémentation R de cet algorithme est simple : Si randg est une fonction qui
produit des générations suivant la densité g, dans le même esprit que rnorm ou
rt, une simple version R de l’Algorithme 1 est
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
u=runif(1)*M
y=randg(1)
while (u>f(y)/g(y)){
u=runif(1)*M
y=randg(1)
}
qui produit in fine une génération y suivant f.
Exemple : Soit 𝑓(𝑥) =
3
𝑒−𝑥
𝑍
+∞
1𝑥≥1 avec 𝑍 = ∫1
nous n’en aurons pas besoin). Soit 𝑔(𝑥) =
3
𝑒 −𝑥 𝑑𝑥(la constante Z n’est pas connue mais
1𝑥≥1
𝑥2
Les fonctions f et g sont des densités de probabilité. Il est facile de simuler suivant la loi de
densité g en utilisant la technique d’inversion de la fonction de répartition.
Nous commençons par étudier la fonction
𝑓(𝑥)
3
ℎ(𝑥) =
= 𝑥 2 ∗ 𝑒 −𝑥
𝑔(𝑥)
3
′
4
−𝑥
Nous avons ℎ(𝑥) = (2𝑥 − 3𝑥 )𝑒
pour tout x ≥ 1. Donc, pour tout 𝑥 ≥ 1, ℎ(𝑥) ≤
−1
ℎ(1) = 𝑒 . Nous en déduisons pour 𝑥 ≥ 1
𝑓(𝑥)
𝑔(𝑥)
1
1
1
≤ 𝑒 , on a ainsi : 𝑓(𝑥) ≤ 𝑒𝑍 𝑔(𝑥) Posons 𝑘 = 𝑒𝑍 on ainsi 𝑓(𝑥) ≤ 𝑘𝑔(𝑥)
1 𝑓(𝑥)
Soit 𝑡(𝑥) = 𝑘 𝑔(𝑥) = 𝑥 2 ∗ 𝑒 −𝑥
3 +1
Nous ne connaissons pas Z mais nous pouvons calculer α(x) pour tout x ≥ 1 donc nous pouvons
utiliser l’algorithme de simulation par rejet pour simuler suivant la densité f. Dans ce
programme, nous utilisons les résultats suivants pour simuler suivant la densité g
Code :
b=0
while (b==0)
{
u=runif(1,0,1)
v=runif(1,0,1)
y=1/(1-v)
if(u<y^2*exp(-y^3)*exp(1))
{b=1}
}
print(y)
Exercice 1
(1) Simuler des variables exponentielles par la méthode du cours.
(2) Tracer un histogramme des variables simulées par cette méthode. Comparer avec un tracé
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
Exercice 2
On cherche à simuler une variable aléatoire X suivant une loi Binomiale de paramètres n ≥ 1
et p ∈]0, 1[
Méthode 1
En utilisant le fait que X peut s’écrire comme la somme de n variables aléatoires 𝑌1 , . . . , 𝑌𝑛 i.i.d.
de loi de Bernoulli de paramètre p, simuler X à partir de lois uniformes. En utilisant le fait que
𝑋 = 𝑌1 +· · · +𝑌𝑛 , il suffit alors de simuler n variables aléatoires de loi uniforme 𝑈1 , . . . , 𝑈𝑛 .
Les valeurs de 𝑌1 , . . . , 𝑌𝑛 sont alors données par
𝑌𝑖 = 1𝑈𝑖 ≤𝑝 , 1 ≤ 𝑖 ≤ 𝑛 .
La valeur simulée de X est alors donnée par
𝑋 = 1𝑢1 ≤𝑝 + 1𝑢2 ≤𝑝 + ⋯ + 1𝑢𝑛≤𝑝
Code R
X=0
U<-runif(n)
for (k in 1:n){
if (U[k]<=p) X=X+1
}
Méthode 2.
Donner la fonction de répartition de X et calculer son inverse généralisé. En déduire une
méthode de simulation de X. La fonction de répartition de X est donnée par
Code R
invcdf<-function(u,n,p)
{c=0
sp=0
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
for (k in 1:n)
{
if(u>=sp+choose(n,k)*(p^k)*((1-p)^(n-k)))
c=c+1
sp=sp+choose(n,k)*(p^k)*((1-p)^(n-k))
}
return(c)
}
Tester les deux méthodes pour différentes valeurs de n, disons 5, 20, 100 et 1000, et
comparer les temps de simulation.
Exercice 3 Loi gamma
Rappel :
Loi d’une somme
La loi de la v.a. 𝑍 = 𝑋 + 𝑌 se détermine par sa f.r G, définie par :
𝐺(𝑧) = 𝑃(𝑍 < 𝑧) = 𝑃(𝑋 + 𝑌 < 𝑧)
qui ne peut se calculer que si l’on connaît la loi du couple (X,Y ). Dans le cas particulier où ce
couple admet une densité f , on obtient :
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
Exercice 4:
Montrer que si X 1 et X 2 sont deux variables aléatoires indépendantes de lois respectives
𝛾(𝛼1 ) et 𝛾(𝛼2 ) (avec 𝛼1 , 𝛼2 > 0) alors 𝑋1 + 𝑋2 suit une loi 𝛾(𝛼 1 + 𝛼 2 ). La loi γ(α) est la
loi de densité f γ(α) donnée par :
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
Simulation : Rappeler quelle est la loi γ(1) et comment la simuler. En déduire la simulation
d’une loi γ(α) avec 𝛼 ∈ 𝑁 ∗ (appelée aussi loi d’Erlang).
Pour α = 1, la loi γ(1) est la loi exponentielle 𝜀(1). On peut simuler cette loi par inversion
puisque on connait sa fonction de répartition qui est donnée par
Exercice 5 :
On désigne par f la densité
𝑓(𝑥) =
1
√2𝜋
1
exp(− 2 𝑥 2 ) pour 𝑥 > 0
1- Pour 𝛼 > 0 fixé trouver une constante 𝐶𝛼 > 1 telle que
𝑓(𝑥) ≤ 𝐶𝛼 𝛼 exp(−𝛼𝑥) pour 𝑥 > 0
2- En déduire une méthode de simulation de la loi de densité f
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
Exercice 6 : La distribution 𝑃( 𝛼 ) de Pareto est définie par sa densité
𝑓 ( 𝑥 | 𝛼 ) = 𝛼𝑥1−𝛼 sur (1 , ∞) .
Montrer qu’elle peut être générée comme une variable uniforme à la puissance −1 /𝛼.
Dessiner l’histogramme produit et la densité correspondante.
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
Chapitre 3 Intégration de Monte-Carlo
3.1. Intégration numérique
Avant de nous engager dans la description des techniques de Monte-Carlo, notons que
l’alternative, a priori naturelle, à l’utilisation des méthodes de simulation pour les intégrales
de la forme
∫ ℎ(𝑥)𝑓(𝑥)𝑑𝑥
𝜒
où f est une densité de probabilité, serait de se reposer sur des méthodes numériques comme
celle de Simpson et les règles du trapèze.
Par exemple, R propose deux fonctions apparentées qui dirigent l’intégration
unidimensionnelle, area (dans la librairie MASS) et integrate. Cependant, area ne s’applique
pas aux intégrales avec des bornes infinies et nécessite donc des connaissances préalables de
la région d’intégration. L’autre fonction, integrate, accepte des bornes infinies mais
malheureusement, elle est très fragile et peut produire des résultats faux.
Exemple 3.1 (Précision de integrate)
Comme cible test, nous comparons l’utilisation de integrate sur l’intégrale
+∞
𝛤(𝜆) = ∫
𝑥 𝜆−1 exp(−𝑥)𝑑𝑥
0
avec le calcul de 𝛤(𝜆) fourni par la fonction gamma. En implantant cette comparaison sous la
forme
ch=function(la){integrate(function(x){x^(la-1)*exp(-x)},0,Inf)$val}
plot(lgamma(seq(.01,10,le=100)),log(apply(as.matrix(seq(.01,10,le=100)),1,ch)),xlab="log(int
egrate(f))", ylab=expression(log(Gamma(lambda))),pch=19,cex=.6)
Une des difficultés des méthodes d’intégration numérique comme integrate est qu’elles
manquent souvent la région la plus significative pour la fonction à intégrer. Au contraire, les
méthodes de simulation ciblent naturellement cette région en exploitant l’information
apportée par la densité de probabilité associée aux intégrales.
Exemple 3.2 (integrate versus area)
Considérons un échantillon de 10 variables aléatoires de Cauchy x i (1 ≤ i ≤ 10) avec le
paramètre de position θ = 350. La (pseudo-) marginale de l’échantillon sous une loi a priori
plate est alors
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
Cependant, integrate retourne une valeur numérique fausse
cac=rcauchy(10)+350
lik=function(the){
u=dcauchy(cac[1]-the)
for (i in 2:10)
u=u*dcauchy(cac[i]-the)
return(u)}
integrate(lik,-Inf,Inf)
7.38034e-46 with absolute error < 1.5e-45
integrate(lik,200,400)
4.83155e-13 with absolute error < 9e-13
et ne réussit même pas à signaler la difficulté car l’erreur d’évaluation est ridiculement petite. De plus, le résultat n’est pas comparable à area :
cac=rcauchy(10)
nin=function(a){integrate(lik,-a,a)$val}
nan=function(a){area(lik,-a,a)}
x=seq(1,10^3,le=10^4)
y=log(apply(as.matrix(x),1,nin))
z=log(apply(as.matrix(x),1,nan))
plot(x,y,type="l",ylim=range(cbind(y,z)),lwd=2)
lines(x,z,lty=2,col="sienna",lwd=2)
Utiliser area dans ce cas produit une évaluation plus sûre car la commande area(lik,-a,a) reste
relativement stable quand a augmente, mais cette évidence requiert des connaissances
préalables à propos de la position du mode de l’intégrande.
3.2. L’intégration classique de Monte-Carlo
Avant de proposer nos simulations techniques comme réponse aux problèmes pratiques
d’intégration, rappelons les propriétés qui justifient leur usage, référant le lecteur à Robert &
Casella (2004) pour (beaucoup) plus de détails. Le problème générique est d’évaluer
l’intégrale
𝐸𝑓 (ℎ(𝑋) ∫ ℎ(𝑥)𝑓(𝑥)𝑑𝑥
𝜒
où 𝜒 dénote l’espace où la variable aléatoire X prend ses valeurs, qui est d’habitude égal au
support de la densité f. Le principe de la méthode de Monte-Carlo pour approcher (3.1) est de
générer (par ordinateur) un échantillon (𝑋1 , . . . , 𝑋𝑛 ) suivant la densité f et de proposer
comme approximation la moyenne empirique
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
𝑛
ℎ̅𝑛 =
1
∑ ℎ(𝑥𝑗 )
𝑛
𝑗=1
calculée par mean(h(x)) sous R, car h n converge presque sûrement, c’est-à-dire pour presque
toutes les suites générées, vers 𝐸𝑓 [ℎ(𝑋)] par la Loi Forte des Grands Nombres. De plus, quand
ℎ2 (𝑥) a une variance finie sous f, la vitesse de convergence de ℎ̅𝑛 peut être évaluée car la
convergence se produit à la vitesse 𝑂(√𝑛) et la variance asymptotique de l’approximation est
est approximativement distribué comme une variable 𝑁 (0,1) et cela conduit bien à un test
de convergence et aux bornes de confiance sur l’approximation de 𝐸𝑓 [ℎ(𝑋)].
Exemple 3.3 (Convergence de Monte Carlo)
Pour la fonction artificiellement choisie
ℎ(𝑥) = [𝑐𝑜𝑠(50𝑥) + 𝑠𝑖𝑛(20𝑥)]
représentée dans la partie supérieure (), considérons l’évaluation de son intégrale sur [0,1].
Ce problème peut être vu comme une intégration uniforme. Par conséquent, nous générons
des variables 𝑈1 , 𝑈2 , . . . , 𝑈𝑛 𝑖𝑖𝑑 𝑈 (0,1) et approchons ∫ ℎ(𝑥) par ∑ ℎ(𝑈𝑖 )/𝑛. La partie
inférieure de la Figure montre comment la convergence se produit, ainsi que les bornes
dérivées des erreurs standard estimées en fonction du nombre n de simulations.
h=function(x){(cos(50*x)+sin(20*x))^2}
par(mar=c(2,2,2,1),mfrow=c(2,1))
curve(h,xlab="Fonction",ylab="",lwd=2)
integrate(h,0,1)
x=h(runif(10^4))
hist(x)
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
MASTER GRAF
estint=cumsum(x)/(1:10^4)
esterr=sqrt(cumsum((x-estint)^2))/(1:10^4)
plot(estint,
xlab="Moyenne
et
esterr[10^4],esterr[10^4]),ylab="")
lines(estint+2*esterr,col="gold",lwd=2)
lines(estint-2*esterr,col="gold",lwd=2)
variation",type="l",lwd=2,ylim=mean(x)+20*c(
Notons que la bande de confiance produite dans cette figure est bien une bande de confiance
de 95% au sens classique, c’est-à-dire qu’elle ne correspond pas à une bande de confiance sur
le graphe de convergence des valeurs estimées, mais plutôt à l’intervalle de confiance que
vous pouvez produire pour tout nombre d’itérations sur lequel vous voulez vous arrêter.
Exercice (Précision d’une approximation de la fonction de répartition normale)
Avec un échantillon normal N (0,1) de taille n, (𝑥1 , . . . , 𝑥𝑛 ), l’approximation de
𝑡
1 −𝑦 2
𝜙(𝑡) = ∫
e 2 𝑑𝑦
√2𝜋
−∞
Par la méthode de Monte-Carlo
𝑛
1
𝜙̅(𝑥) = ∑ 𝐼𝑥𝑖 ≤ 𝑡
𝑛
𝑖=1
avec une variance (exacte) de 𝛷(𝑡)[1 − 𝛷(𝑡)]/𝑛 (car les fonctions 𝐼𝑥𝑖 ≤ 𝑡 sont des variables
de Bernoulli indépendantes avec probabilité de succès 𝛷(𝑡))
Code R
x=rnorm(10000) #échantillon complet
bound=qnorm(c(.5,.75,.8,.9,.95,.99,.999,.9999))
res=matrix(0,ncol=8,nrow=7)
for (i in 2:8) #boucle longue !
for (j in 1:8)
res[i-1,j]=mean(x[1:10^i]<bound[j])
matrix(as.numeric(format(res,digi=4)),ncol=8)
Bibliographie
Christian P. Robert, George Casella Méthodes de Monte-Carlo avec R, Springer-Verlag France,
2011.
Pierre Del Moral and Nathalie Bartoli. Simulation et algorithmes stochastiques : une
introduction avec applications. Cepaduès, Toulouse, 2001
Rubinstein R. Simulation and the Monte Carlo Method. Wiley, New York. 1998.
DR OKOU GUEI CYRILLE
Cours : Simulation Monte-Carlo
Téléchargement