\documentclass[a4paper, 11pt, french]{article}
\usepackage{babel}
\usepackage{fontspec}
\usepackage{amssymb, amsmath}
\usepackage[pagebackref=true,breaklinks=true,colorlinks=true,backref=false]{hyperref}
\usepackage[capitalize,noabbrev]{cleveref}
\usepackage[backend=biber,style=trad-plain]{biblatex}
\addbibresource{rapport.bib}
\newcommand{\E}{\mathbb{E}}
\newcommand{\V}{\mathbb{V}}
\newcommand\floor[1]{\lfloor#1\rfloor}
\DeclareMathOperator*{\argmax}{arg\,min}

\begin{document}
\section*{Introduction}
\paragraph{Sujet :\\}
Comparer les performances des méthodes de stratification exposées dans \cite{etore:hal-00192540}
et de QMC randomisées exposées dans \cite{tuffin2004randomization} sur les exemples présentés dans \cite{etore:hal-00192540}

Références : \cite{etore:hal-00192540} \cite{tuffin2004randomization}

\section{Quasi Monte Carlo randomisé}
\subsection{Présentation mathématique}
On suppose qu'on cherche à calculer
\begin{equation*}
I=\int_{[0,1]^s}f(x)dx
\end{equation*}
Soit $(\xi^{(n)})_{n\in\mathbb{N}}$ une suite à discrépance faible à valeurs dans $[0,1]^s$.
Au bout de N tirages de cette suite, la méthode de quasi Monte Carlo  nous donnerait une approximation de la valeur de $I$
par la formule :
\begin{equation*}
\lim_{N\rightarrow\infty}\frac{1}{N}\sum_{n=1}^Nf(\xi^{(n)}) = I
\end{equation*}
Le souci de cette méthode est de ne pas pouvoir obtenir d'erreur de l'estimateur facilement. En effet l'inégalité de Koksma–Hlawka nous donne une borne de
cette erreur mais nécessite de pouvoir calculer la variation finie de la fonction $f$ ce qui n'est pas toujours possible en pratique. C'est pourquoi on introduit
la méthode de quasi Monte Carlo randomisé. Elle consiste à rajouter un décalage aléatoire à la suite $(\xi^{(n)})$. Soit $X$ une variable aléatoire
uniformément distribuée sur ${[0,1]^s}$. On s'intéresse dorénavant à la somme aléatoire :
\begin{equation*}
Z=\frac{1}{N}\sum_{n=1}^Nf(\{\xi^{(n)}+X\})
\end{equation*}
où \{$X$\} désigne la partie fractionnaire de $X$.
L'idée consiste à faire $K$ tirages de $Z$, ce qui revient à faire $K$ tirages de $X$ vu que la suite $(\xi^{(n)})$ est déterministe, puis de faire
une méthode de Monte Carlo classique sur ces $K$ tirages. On a donc :
\begin{equation}
\label{eqrqmc}\frac{1}{K}\sum_{k=1}^KZ_{k}=\frac{1}{K}\sum_{k=1}^K\frac{1}{N}\sum_{n=1}^Nf(\{\xi^{(n)}+X_{k}\})\overset{p.s}{\to} I
\end{equation}
Il convient maintenant d'estimer l'avantage de cette méthode par rapport à une technique de Monte-Carlo usuelle, en terme de réduction de variance.
On voit dans \eqref{eqrqmc} qu'il nous coûte $NK$ évaluations de la fonction $f$ pour calculer notre estimation de $I$.
Donc la variance pour la méthode de Monte-Carlo de base serait :
\begin{equation*}
\mathrm{Var}(\frac{1}{NK}\sum_{n=1}^{NK}f(X_n))=\frac{1}{NK}\mathrm{Var}(f(X))
\end{equation*}
Il nous faut la comparer avec :
\begin{equation*}
\mathrm{Var}(\frac{1}{K}\sum_{k=1}^K\frac{1}{N}\sum_{n=1}^Nf(\{\xi^{(n)}+X_{k}\}))=\frac{1}{K}\mathrm{Var}(\frac{1}{N}\sum_{n=1}^Nf(\{\xi^{(n)}+X\}))
\end{equation*}
On a donc réduction de variance si et seulement si :
\begin{equation*}
\mathrm{Var}(\frac{1}{N}\sum_{n=1}^Nf(\{\xi^{(n)}+X\}))<\frac{1}{N}\mathrm{Var}(f(X))
\end{equation*}
Or dans \cite{Tuffin:1997:VRA:268403.268419} il est montré que pour $f$ une fonction à variations bornées on a :
\begin{equation}
\mathrm{Var}(\frac{1}{N}\sum_{n=1}^Nf(\{\xi^{(n)}+X\}))=O(N^{-2}(\log N)^{2s})
\end{equation}
Pour cette classe de fonctions on a une réduction de variance par un facteur de $N / (\log N)^{2s}$.

\subsection{Calcul de vitesse et d'intervalle de confiance}
On s'intéresse maintenant à la convergence vers la loi normale de notre estimateur. On rappelle d'abord le cas d'une méthode de Monte-Carlo classique.
Soit $X$ une variable aléatoire, on note $\mu = \E[f(X)]$ son espérance qu'on cherche à calculer et $\sigma$ son écart type. Alors si les $(X_n)_{1\leq n\leq N}$
sont $N$ tirages de la variable $X$, $\bar{X}_N=\frac{1}{N}\sum_{n=1}^Nf(X_n)$ sera notre estimateur de $\mu$ et on aura l'intervalle de confiance
asymptotique usuel pour $\mu$ de la forme : $[\bar{X}_N-c_{\alpha}\frac{\sigma}{\sqrt{N}},\bar{X}_N+c_{\alpha}\frac{\alpha}{\sqrt{N}}]$
avec $\alpha$ le niveau désiré pour l'intervalle et $c_{\alpha}$ le quantile en $1-\frac{\alpha}{2}$ d'une loi gaussienne centrée réduite.

Dans l'article \cite{tuffin2004randomization}, Tuffin suggère d'utiliser la borne de Berry-Esseen pour le cas non asymptotique. Si on introduit les quantités
$\beta = \E[|f(X)-\E[f(X)]|^3]$, $F_n$ la fonction de répartition de $\sqrt{N}\frac{\bar{X}_N-\mu}{\sigma}$ et $\mathcal{N}$ la fonction de répartition d'une
loi normale centrée réduite, alors l'inégalité de Berry-Esseen affirme que :
\begin{equation*}
\forall x, \quad |F_n(x) - \mathcal{N}(x)| \leq C\frac{\beta}{\sigma^3 \sqrt{N}}
\end{equation*}
pour une constante universelle $C$\footnote{La meilleure valeur connue à l'heure actuelle est $C< 0.4748$.}.
Ce qui nous donne $\mathcal{N}(x) - C\frac{\beta}{\sigma ^3 \sqrt{N}} \leq F_n(x) \leq \mathcal{N}(x) + C\frac{\beta}{\sigma ^3 \sqrt{N}} $ et en
soustrayant l'encadrement équivalent de $F_n(-x)$ il vient :
\begin{equation*}
F_n(x)-F_n(-x) \geq \mathcal{N}(x) - \mathcal{N}(-x) -2C\frac{\beta}{\sigma ^3 \sqrt{N}}
\end{equation*}
On veut maintenant égaliser cette borne inférieure avec $1- \alpha$ pour trouver les bornes de l'intervalle de confiance.
Sachant que $\mathcal{N}(x) = 1 - \mathcal{N}(-x)$ on a $1 - \alpha =  1 - 2\mathcal{N}(-x) - 2C\frac{\beta}{\sigma ^3 \sqrt{N}}$ et on trouve en fin de
compte :
 $x = -\mathcal{N}^{-1}(\frac{\alpha}{2} - C\frac{\beta}{\sigma ^3 \sqrt{N}})$.

On a donc l'inégalité suivante :
\begin{equation*}
\mathbb{P}\left(\mathcal{N}^{-1}(\frac{\alpha}{2} -C\frac{\beta}{\sigma ^3 \sqrt{N}}) \leq \frac{\bar{X}_N-\mu}{\sigma / \sqrt{N}} \leq
-\mathcal{N}^{-1}(\frac{\alpha}{2} - C\frac{\beta}{\sigma ^3 \sqrt{N}})\right) \geq 1- \alpha
\end{equation*}
Alors que Tuffin trouve :
\begin{equation*}
\mathbb{P}\left(\mathcal{N}^{-1}(\frac{\alpha}{2}) - C\frac{\beta}{\sigma ^3 \sqrt{N}} \leq \frac{\bar{X}_N-\mu}{\sigma / \sqrt{N}} \leq
-\mathcal{N}^{-1}(\frac{\alpha}{2}) + C\frac{\beta}{\sigma ^3 \sqrt{N}}\right) \geq 1- \alpha
\end{equation*}
ce qui me semble être une erreur.
Si on veut comparer les demi-tailles des intervalles de confiance, on voit que l'intervalle de Tuffin rajoute $\frac{C\beta}{\sigma^2N}$ à
l'intervalle habituel asymptotique tandis que je trouve un intervalle possiblement égal à $\mathbb{R}$ tout entier pour des petites valeurs de $N$.
C'est pourquoi dans les applications ultérieures, j'utilise l'intervalle classique $[\bar{X}_N-c_{\alpha}\frac{\sigma}{\sqrt{N}},
\bar{X}_N+c_{\alpha}\frac{\alpha}{\sqrt{N}}]$.

\section{Échantillonnage stratifié}
\subsection{Présentation mathématique}
Soit $f:\mathbb{R}^{d}\rightarrow\mathbb{R}$ et $X$ un vecteur aléatoire à $d$ dimensions.
On cherche à calculer $\mu=\E(f(X))$.
On suppose maintenant qu'on divise $\mathbb{R}^{d}$ en $I$ strates appelées $(A_{i})_{1\le i \le I}$ et de telle sorte que
$\forall i \in {1,...,i}$ on ait $\mathbb{P}(X\in A_{i}) > 0$ . On notera ces probabilités $p_{i}$.
Si on note maintenant $(X_{i})_{1\le i \le I}$ l'ensemble de variables aléatoires suivant la loi conditionnelle de $X$ sachant $X\in A_{i}$,
on a clairement $\E(f(X)) = \sum_{i=1}^{I}p_{i}\E(f(X_{i}))$.
Or si on sait simuler chacune des variables $(X_{i})$, on peut estimer chacune des espérances $\E(f(X_{i}))$ par un estimateur de Monte-Carlo usuel
$\frac{1}{N_{i}}\sum_{j=1}^{N_{i}}f(X_{i}^{j})$ où $N_{i}$ est le nombre de tirages de la variable $X_{i}$. Et donc il vient naturellement :
\begin{equation*}
\mu_{strat}=\sum_{i=1}^{I}p_{i}\sum_{j=1}^{N_{i}}f(X_{i}^{j})=
\frac{1}{N}\sum_{i=1}^{I}\frac{p_{i}}{q_{i}}\sum_{j=1}^{q_{i}N}f(X_{i}^{j}) \overset{p.s}{\to} \mu
\end{equation*}
où $N$ désigne le nombre total de tirages, c'est à dire $N=\sum_{i=1}^{I}N_{i}$, et $q_{i}=N_i / N$ la proportion de tirages dans chacune
des strates.

On veut maintenant regarder dans quels cas cette méthode peut être utile pour réduire la variance.
Si on note $\sigma_{i} = \mathrm{Var}(f(X_{i})) = \mathrm{Var}(f(X)|X\in A_{i})$, la variance de notre estimateur est :
\begin{equation*}
\mathrm{Var}(\mu_{strat})=\sum_{i=1}^{I}\frac{p_{i}^{2}\sigma_{i}^2}{N_{i}}=
\frac{1}{N}\sum_{i=1}^{I}\frac{p_{i}^{2}\sigma_{i}^2}{q_{i}}
\end{equation*}
Tandis qu'avec un estimateur usuel de Monte-Carlo $\frac{1}{N}\sum_{j=1}^{N}f(X^{j})$, noté $\mu_{mc}$, pour le même nombre $N$ total de tirages, on aurait :
\begin{equation*}
\mathrm{Var}(\mu_{mc}) =
\frac{1}{N}\left(\sum_{i=1}^{I}p_{i}(\sigma_{i}^2 + \E^{2}[f(X_{i})])-(\sum_{i=1}^{I}p_{i}\E[f(X_{i})])^{2}\right)
 \geq \frac{1}{N}\sum_{i=1}^{I}p_i\sigma_i^2
\end{equation*}
où la dernière inégalité est due au fait que par l'inégalité de Jensen appliquée à $\E[f(X_{i})]$ avec la suite des $p_i$ comme probabilité discrète (
$\sum_{i=1}^{I}p_i = 1$) on a :
\begin{equation*}
\frac{1}{N}\sum_{i=1}^{I}p_i\,\E^{2}[f(X_{i})] \geq \frac{1}{N}(\sum_{i=1}^{I}p_i\,\E[f(X_{i})])^2
\end{equation*}
Si on pose $q_i = p_i$, $\mathrm{Var}(\mu_{strat})=\frac{1}{N}\sum_{i=1}^{I}p_i\sigma_i^2$ qui est la borne inférieure trouvée pour $\mathrm{Var}(\mu_{mc})$.
Mais on peut trouver un choix de $q_i$ plus optimal en terme de réduction de variance.
En effet, toujours par l'inégalité de Jensen avec cette fois la suite des $q_i$ vue comme une probabilité discrète, on a :

\begin{multline}
\label{eq:borninf}
\mathrm{Var}(\mu_{strat})=\frac{1}{N}\sum_{i=1}^{I}\frac{p_i^2\sigma_i^2}{q_i}=\frac{1}{N}\sum_{i=1}^I(\frac{p_i\sigma_i}{q_i})^2q_i\\
\geq\frac{1}{N}(\sum_{i=1}^I\frac{p_i\sigma_i}{q_i}q_i)^2=\frac{1}{N}(\sum_{i=1}^Ip_i\sigma_i)^2=\frac{1}{N}\sigma_\star^2
\end{multline}

Et si
\begin{equation}
\label{eqqi}
\forall i \in \{1,\ldots,I\}, \quad q_i=\frac{p_i\sigma_i}{\sum_{j=1}^Ip_j\sigma_j}
\end{equation}
$\textrm{Var}(\mu_{strat})$ atteindra la borne inférieure $\sigma_\star^2/N$. Maintenant qu'on a décrit le principe de la méthode de l'échantillonnage stratifié,
et qu'on a trouvé quelle est la proportion optimale de tirages à faire par strates, intéressons nous à l'algorithme pour implémenter ce modèle.

\subsection{Description de l'algorithme}
On a vu dans la section précédente que les $q_i$ optimaux dépendent de la suite $(\sigma_i)_{1\leq i\leq I}$ qui sont les variances conditionnelles de $X$
sachant $X\in A_{i}$. Mais si ces variances sont inconnues il nous faut les estimer. On ne peut trouver la répartition optimale de tirages à faire par strates
du premier coup. On utilisera donc un algorithme adaptatif. On commence par tirer un nombre $N_1$ assez restreint de variables $(X_{i})_{1\leq i \leq I}$
en choisissant une répartition déterministe, par exemple l'allocation proportionelle $q_i=p_i$ ce qui nous donnera un premier estimateur de  $\mu=\E(f(X))$ mais
surtout les premiers estimateurs de $\sigma_i$. Ensuite on pourra tirer un nombre $N_2 > N_1$ de $(X_i)$ avec de nouveaux $q_i$ donnés par \eqref{eqqi}
ce qui nous donnera un nouvel estimateur de $\mu$ (en utilisant les $N_1 + N_2$ premières valeurs) puis de nouveaux $q_i$ plus précis, et ainsi de suite.

Essayons maintenant de décrire plus précisément comment calculer la proportion de tirages à allouer par strates. En effet, en pratique il y a deux contraintes
en plus de la formule qui nous donne la suite des $q_i$. Tout d'abord le nombre de tirages doit évidemment être entier, et de plus il doit y avoir au moins
un tirage par strate, sinon on ne peut garantir la convergence des variances conditionnelles empiriques $\hat{\sigma}_i$ vers la vraie valeur.
Notons $I$ le nombre de strates, $\hat{\sigma}_i^k$ l'estimateur de la variance de $X$ sachant que $X \in A_i$ à l'étape $k$ , $N_i^k$ le nombre total de tirages effectués de l'étape 0 à l'étape $k$ dans la $i^{\textrm{ème}}$ strate et $M_i^k$ le nombre de tirages à effectuer à
 l'étape $k$ dans la strate $i$ qui est donc $M_i^k = N_i^k - N_i^{k-1}$.

\paragraph{Étape 1 :}
\begin{equation*}
\forall i \in I, \quad M_i^1 = 1+p_i(N_1-I)
\end{equation*}
C'est l'allocation proportionelle modifié de 1, pour garantir au moins un tirage par strate. Si les $M_i^1$ ne sont pas entiers, voir la méthode ci-dessous pour les arrondir.
\paragraph{Étape k :\\}
On commence d'abord par calculer les $\hat{\sigma}_i^{k-1}$ avec les tirages de l'étape précédente.
\begin{equation*}
\forall i \in I \quad \hat{\sigma}_i^{k-1} = \sqrt{\frac{1}{N_i^{k-1}}(\sum_{j=1}^{N_i^{k-1}}(f(X_i^j))^2-(\frac{1}{N_i^{k-1}}\sum_{j=1}^{N_i^{k-1}}(f(X_i^j))^2)}
\end{equation*}
Ensuite on peut calculer les $M_i^k$. On sait qu'il nous faut au moins un tirage par strate on peut donc écrire $M_i^k$ de sous la forme  $m_i^k + 1$ avec
$m_i^k \in \mathbb{N}$ et comme on a $M_i^k = N_i^k - N_i^{k-1}$ il vient $\sum_{i=1}^Im_i^k=N^k-N^{k-1}-I$. Les auteurs de l'article proposent deux méthodes
pour calculer les $m_i^k$, je n'en ai utilisé qu'une seule que je vais présenter ici.

D'après \eqref{eqqi}, on connaît la proportion optimale à faire par strates en fonction des $\hat{\sigma}_i^{k-1}$. Sachant de plus que $\sum_{i=1}^Iq_i=1$,
on voit qu'un choix de $m_i^k$ idéal serait :
\begin{equation*}
\forall i \in I, \quad (m_i^k)^* = \frac{p_i\hat{\sigma}_i^{k-1}}{\sum_{j=1}^Ip_j\hat{\sigma}_j^{k-1}}(N^k-N^{k-1}-I)
\end{equation*}
Pour que les $m_i^k$ soient les entiers au plus près de leurs valeurs optimales, tout en assurant que leur somme ne dépasse pas le nombre total de tirages à faire
à l'étape $k$, Étoré et Jourdain proposent la méthode suivante. On pose d'abord $m_1^k =\floor{(m_1^k)^*}$. Puis pour chaque $i>1$ on pose :
\begin{equation*}
m_i^k=\floor{(m_1^k)^*+\ldots+(m_i^k)^*}-\floor{(m_1^k)^*+\ldots+(m_{i-1}^k)^*}
\end{equation*}
Ce choix des $m_i^k$ assure que notre nombre de tirages par strates sera à une distance d'au plus $1$ de l'allocation optimale.

Étoré et Jourdain prouvent enfin le résultat suivant qui est un théorème centrale limite pour la loi limite de leur estimateur $\mu_{strat}$.
Si $\E[f^2(X)]<\infty$ et si $k/N ^k\to0$ quand $k\to \infty$ alors :
\begin{equation*}
\sqrt{N^k}(\mu_{strat}^k-\mu)\underset{k\to\infty}{\overset{d}{\longrightarrow}}\mathcal{N}(0,\sigma^2_*)
\end{equation*}
avec $\sigma_*=\sum_i^Ip_i\sigma_i$, ce qui atteint la borne inférieure de $\textrm{Var}(\mu_{strat})$ trouvée en \eqref{eq:borninf}.

\section{Exemples}
Nous allons maintenant implémenter et comparer les deux techniques d'estimateur d'espérance sur deux exemples décrit dans \cite{etore:hal-00192540}.
\subsection{Calcul de l'espérance d'une loi normale}
Dans ce premier exemple assez simple, on va chercher à calculer $ \mu = \E[X]$ où $X$ suit une loi normale centrée réduite.
\subsubsection{Échantillonnage stratifié}
Pour cet exemple, les strates $A_i$ seront au nombre de $10$ et
\[\forall i \in{\{1,\ldots,10\}}\quad A_i =]y_{i-1}, y_i]
\]
où $y_i$ désigne
le quantile en $i/10$ d'une loi normale, en prenant pour convention $y_0 = - \infty $ et $y_{10} = + \infty $. Ainsi la suite des probabilités $(p_i)_{1\leq i\leq 10}$
est constante à $1/10$. Dans l'article, Étoré et Jourdain ont effectué quatre étapes de leur algorithme avec $N_1 = 300, N_2 = 1300, N_3 = 11300$
et $N_4 = 31300$, j'ai donc pris les mêmes nombres pour ma propre implémentation.
\subsubsection{Quasi Monte Carlo randomisé}
On cherche toujours à calculer $\mu$ mais cette fois avec la méthode de quasi Monte Carlo randomisé dont je rappelle l'estimateur :
\begin{equation*}
\frac{1}{I}\sum_{i=1}^I\frac{1}{N}\sum_{n=1}^N(\{\xi^{(n)}+X_{k}\})
\end{equation*}
Pour ce faire, j'ai utilisé la suite de Sobol à une dimension pour la suite $\xi^{(n)}$ et j'ai fixé $I$ constant à 100 et calculé l'estimateur pour
différents $N \in  \{3; 13; 113; 313\}$ afin que le produit $NI$ nous donne les mêmes nombres de tirages des variables que dans le cas
de l'échantillonnage stratifié. Ainsi on peut comparer les deux méthodes et obtenir le tableau suivant :

\begin{center}
\input{table1.tex}
\end{center}

$\textrm{IC}_{strat}$ et $\textrm{IC}_{rqmc}$ désignent les demi-tailles des intervalles de confiance pour {\mu} obtenus avec les deux méthodes. En comparant ces tailles
on peut constater la plus grande efficacité de la méthode de quasi Monte-Carlo randomisé.

\subsection{Modélisation du prix d'une option asiatique}
Cet exemple est tiré de l'article \cite{glasserman1999asymptotically} de Glasserman, Heidelberger et Shahabuddin.
On considère l'actif $S_t$ solution de l'équation différentielle stochastique suivante :
\begin{equation*}
dS_t=VS_tdW_t+rS_tdt
\end{equation*}
où $r$ représente le rendement de l'actif sans risque, $V$ la volatilité constante de $S_t$, et $W_t$ un processus de Wiener standard. Soit $ T > 0$ la date de maturité
de l'option et $(t_m = \frac{mT}{d})_{1\leq m\leq d}$ une suite de $d$ instants entre $0$ et $T$ où le prix de $S_t$ est connu. L'option asiatique $A$ avec un
prix d'exercice $K$ a pour valeur au temps $0$ :
\begin{equation*}
p=\E[e^{-rT}(\frac{1}{d}\sum_{m=1}^dS_{t_m}-K)^+]
\end{equation*}
qu'on va chercher à déterminer.

On peut exactement simuler la suite des $(S_{t_m})_{1\leq m\leq d}$ en posant $S_{t_0}=S_0$ et :
\begin{equation*}
S_{t_m}=S_{t_{m-1}}\exp([r-\frac{1}{2}V^2](t_m-t_{m-1}) + V\sqrt{t_m-t_{m-1}}X^m) \quad\forall m \in \{1,\ldots,d\}
\end{equation*}
où les $X_m$ sont des normales centrées réduites indépendantes. On cherche donc à calculer une espérance de la forme:
\[p = \E[ g(X) \mathbf{1} _D(X)],\]
où $g$ est une fonction de $\mathbb{R}^d$ dans $\mathbb{R}$ et $D$ le domaine où $g$ est strictement positive. Dans leur article, Glasserman et al. proposent
de d'abord commencer par une méthode d'échantillonage préférentiel, ou importance sampling. Cette méthode consiste à décaler les variables $X$ pour changer
leurs moyennes, afin de donner plus de poids là où le payoff sera important et  ainsi diminuer la variance de notre estimateur par rapport à une méthode
classique de Monte-Carlo. En effet, on remarque que $\forall \mu \in{\mathbb{R}^d}$:
\begin{equation*}
p = \E [g(X+\mu)e^{-\mu'X-(\frac{1}{2})\mu'\mu}\mathbf{1} _D(X+\mu)]
\end{equation*}
Ils affirment alors par un argument heuristique, puis par une preuve plus rigoureuse en utilisant la théorie des grandes déviations que la réduction de variance sera la plus importante pour $\mu^\star$ tel que :
\begin{equation*}
\mu^\star = \argmax_{x\in D} (G(x) - \frac{1}{2}xx')
\end{equation*}
avec $G(x)=\log(g(x))$. Finalement, on estimera $p$ par un estimateur de Monte-Carlo de $\E[ f_{\mu}(X) ]$ où $X\sim \mathcal{N}(0,I_d)$ et
$f_{\mu}(x)=g(x+\mu)e^{-\mu'x-(\frac{1}{2})\mu'\mu}\mathbf{1} _D(x+\mu)$ avec $\mu = \mu^*$.

On peut ensuite utiliser une méthode d'échantillonage stratifié pour calculer cet estimateur, où les différentes strates seront données par
\[
A_i=\{X\in\mathbb{R}^d\textrm{ tels que }u'X\in [y_{i-1},y_i]\}
\]
avec $u$ un vecteur de norme 1 dans $\mathbb{R}^d$ et les $y_i$ seront les quantiles en $i/I$ d'une normale centrée réduite. Il nous faut donc pouvoir tirer la loi conditionnelle de $X$ sachant $u'X\in [a, b]$. Les auteurs de l'article
donnent d'ailleurs une méthode pour simuler ces lois conditionnelle :

Soient $(a, b)$ les bornes de notre intervalle et $u$ un vecteur de $\mathbb{R}^d$ de norme 1.
Notons $F$ la fonction de répartition d'une normale centrée réduite. On simule d'abord $V = F(a) +U(F(b)-F(a))$ avec $U$ une uniforme sur $[0,1]$.
Ensuite en calculant $Z = F^{-1}(V)$ et en simulant $Y \sim \mathcal{N}(0,I_d)$ on obtient une simulation de $X$ sachant $u'X \in [a,b]$ en posant :
\begin{equation*}
X=uZ+Y+u(u'Y)
\end{equation*}
Pour cette méthode d'échantillonage stratifié, Glasserman et ses coauteurs ont pris $u=\mu/(\mu'\mu)$ et ont choisi la répartion proportionnelle du nombre
de tirages par strates (la répartition $q_i = p_i$ donné plus haut lors de la description de la méthode de stratified sampling). Plus précisément, ils ont découpé
$\mathbb{R}$ en $I=100$ strates suivant les quantiles au $1/100^{\textrm{ème}}$ de $\mathcal{N}(0,1)$ notés $y_i$ et ont alloué $N_i = N/I$ tirages par intervalles.

Étoré et Jourdain ont donc refait le même travail avec leur algorithme adaptatif qui converge vers la répartition optimale $q_i=N_i/N$ posés dans \eqref{eqqi},
technique utile dans ce cas car on ne connait pas la suite des $\sigma_i = \mathrm{Var}(f_{\mu}(X)|u'X\in [y_{i-1},y_i])$.

\subsection{Résultats}
Maintenant qu'on a décrit ce qu'est une option asiatique et comment utiliser l'importance sampling pour diminuer au mieux
la variance, on peut comparer les méthodes d'échantillonage stratifié et de quasi Monte-Carlo randomisé.

\begin{center}
\input{table2.tex}
\end{center}
Cette première table représente les différentes valeurs des estimateurs $\mu_{strat}$ et $\mu_{rqmc}$ pour la valeur d'une option d'achat (call) ainsi que les demi-tailles des intervalles de confiance.
$d$ représente la dimension, c'est à dire le nombre d'instants ${t_m}$ entre $0$ et $T$ où le prix du sous-jacent est connu. $d$ sera aussi la dimension
de notre suite à discrépance faible dans le cas du quasi Monte-Carlo randomisé. $K$ est le prix d'exercice de l'option.
On peut constater que l'avantage d'une méthode par rapport à l'autre est assez dépendant du prix d'exercice. L'algorithme de stratified sampling étant supérieur quand le prix de l'option est plux faible.

Regardons maintenant la table équivalente dans le cas de l'option de vente (put). J'obtiens :

\begin{center}
\input{table3.tex}
\end{center}

Pour conclure, on peut constater que la méthode de quasi Monte-Carlo randomisé est — suivant les valeurs des paramètres — entre trois fois plus lente et plus rapide que la méthode d'échantillonnage par strates. En tout cas sur les deux exemples étudiés ici, les deux méthodes sont du même ordre de grandeur. Sachant que quasi Monte-Carlo randomisé est bien plus simple à implémenter, nous recommendons son usage en pratique comme méthode générale pour accélérer les algorithmes de Monte-Carlo.

\section{Choix de l'implémentation informatique}
Dans cette dernière partie je parlerai de la façon dont j'ai implémenté les deux algorithmes présentés précédemment.

\subsection{Quasi Monte-Carlo randomisé}

Pour les deux exemples, j'ai utilisé la suite de Sobol comme suite à
discrépence faible. Cependant, le code est générique et peut prendre
n'importe quelle suite en argument du template. En particulier, j'ai
testé avec la méthode Halton, mais la performance de l'estimateur
était moins bonne. Pour les petites dimensions les suites de Sobol
sont codées avec la GSL \cite{GSL} dans \texttt{lowdiscrepancy.hpp}
obtenue sur la page du cours. Malheureusement, l'implémentation de la
GSL est limitée à 40 dimensions. Pour les dimensions supérieures, j'ai
utilisé une implémentation qui fait partie de la librairie NLopt
\cite{nlopt} qui supporte jusqu'à 1111 dimensions. Cependant ces
fonctions ne sont pas publiques, j'ai donc copié directement les
fichiers \texttt{sobolseq.c} and \texttt{soboldata.h} dans le
répertoire source.

\pagebreak
\printbibliography
\end{document}
