sujet du mini

publicité
UPMC-X
Méthodes de Monte Carlo
Master M2 Probabilités et Finance
2016/2017
Mini-projet Monte Carlo
à préparer pour le lundi 31 octobre
Algorithme Ziggurat
Partie 1 : Cas support compact
Soit f une densité de probabilité continue unimodale de support compact [l, r]. On note m ∈ [l, r] le mode
de la densité tel que f soit strictementR croissante sur [l, m] et strictement décroissante sur [m, r]. On note
x
f ∗ = f (m) = maxu∈[l,r] f (u) et F (x) = l f (u)du la fonction de répartition associée à f .
−1
−1
Pour tout y ∈ [0, f ∗ [, la fonction f possède deux antécédents de y, f −1 ({y}) = {f−
(y), f+
(y)} où l’on suppose
−1
−1
conventionnellement que f−
(y) < f+
(y). On note pour tout y ∈ [0, f ∗ [,
−1
−1
d(y) = f+
(y) − f−
(y).
Dans tout l’exercice on supposera qu’on sait évaluer la densité f en tout point.
Pour une fonction g : R → R on note E(g) l’épigraphe de la fonction g, i.e.
2
E(g) = {(x, y) ∈ R+
, 0 6 y 6 g(x)}.
La mesure λ2 est la mesure de Lebesgue sur R2 .
1. Montrer que E(f ) ⊂ [l, r] × [0, f ∗ ]. En déduire une méthode de rejet pour simuler selon la densité f .
2. Quelle est la loi τ du rejet et l’efficacité de la méthode (en fonction de λ2 (E(g)), l, r et f ∗ ).
3. Soit n > 1 et des points 0 = y0 < y1 < · · · < yn−1 < yn = f ∗ vérifiant
∃ An > 0, ∀ k ∈ {1, . . . , n − 1},
yk = An
k
X
j=1
1
.
d(yj−1 )
−1
−1
Pour ces points fixés, on considère les n rectangles Rk = [f−
(yk−1 ), f+
(yk−1 )] × [yk−1 , yk ], k = 1, . . . , n,
n
[
et l’on pose En =
Rk .
k=1
4. Montrer que pour tout k = 1, . . . , n, λ2 (Rk ) = An et en déduire que λ2 (En ) = nAn > 1.
5. Soit (X̄, Ȳ ) de loi uniforme sur En . Comment simuler efficacement (X̄, Ȳ ) ?
Quelle est la loi de la première marginale X̄ ? Si cette loi est à densité, on pourra noter celle-ci fn .
6. Soit (X̄m , Ȳm )m>1 une suite i.i.d. uniforme sur En et τ = inf m > 1, (X̄m , Ȳm ) ∈ E(f ) .
Donner la loi de τ et montrer que X̄τ a pour densité f .
7. Écrire l’algorithme de simulation de X̄τ à partir de lois uniformes sur [0, 1].
8. Proposer un algorithme permettant de minimiser le nombre d’évaluations de la fonction f .
9. Montrer que pour tout n > 1 il existe une unique constuction possible i.e. qu’il existe un unique An ∈
]0, f ∗ (r − l)[, et montrer que limn→+∞ nAn = 1.
Partie 2 : Cas support non compact
On étend la construction précédente à une densité f de support R. On suppose que pour tout n > 1, il existe
−1
−1
An > 0 tel que y1 soit solution de F (f−
(y1 )) + 1 − F (f+
(y1 )) + y1 d(y1 ) = An et pour tout k ∈ {2, . . . , n − 1},
k
X
1
yk = An
.
d(yj−1 )
j=2
On modifie la construction précédente en considérant
−1
−1
R̃1 = E(f 1]−∞,f −1 (y1 )] ) ∪ [f−
(y1 ), f+
(y1 )] × [0, y1 ] ∪ E(f 1[f −1 (y1 ),+∞[ ),
−
+
et en posant Ẽn = R̃1 ∪ R2 ∪ · · · ∪ Rn .
1
1. Déterminer la fonction g1 : R → [0, y1 ] telle que R̃1 = E(g1 ).
2. On suppose qu’on connaît explicitement F −1 . Comment simuler selon la loi de densité A1n g1 à partir
d’une seule uniforme U ∈ U([0, 1]) ?
Donner l’algorithme complet de simulation selon la loi de Laplace de densité f (x) = λ2 e−λ|x| en utilisant
cette construction.
3. On suppose que f est la densité gaussienne centrée réduite. Proposer une méthode de rejet de la loi
de densité proportionnelle à f 1[f −1 (y1 ),+∞[ par rapport à la queue d’une loi exponentielle à déterminer.
+
Préciser l’efficacité de la méthode (moyenne de l’inverse du temps de rejet).
Donner l’algorithme de simulation de la loi de densité A1n g1 dans ce cas.
Implémentation en C++ et C++11
1. Programmer l’algorithme Ziggurat pour la loi bêta de paramètres α > 1 et β > 1 de densité de support
[0, 1] définie par
f (x) = Cxα−1 (1 − x)β−1 , x ∈ [0, 1],
où C est la constante de normalisation. Tester.
2. Programmer l’algorithme Ziggurat pour la loi normale centrée réduite. Tester.
3. Ecrire un algorithme Ziggurat générique qui permet de simuler efficacement étant donnés :
— une densité f et son inverse f −1 ,
— la fonction de répartition F associée et son inverse F −1 ,
— si nécessaire une fonction permettant de simuler les queues de distribution.
2
Téléchargement