TP17 : Méthode de Monte Carlo
I Dans votre dossier Info_2a, créez le dossierTP_17.
I. Présentation de la méthode
I.1. Rappel de la loi faible des grands nombres
Loi Faible des Grands Nombres (LfGN)
• Soit(Xn)n∈N∗ une suite de variables aléatoires indépendantes de même espérancem et de même variance.
• On noteXn= 1 n
n
P
i=1
Xi (moyenne empirique).
On a alors : ∀ε >0, lim
n→+∞P(|Xn−m|>ε) = 0 ou encore Xn −→P
n→+∞m
Signification dans le contexte de l’estimation
On considère X une v.a.r. dont on souhaite estimer la moyenne m.
On note (X1, . . . , Xn) un échantillon den v.a.r. toutes de même loi queX.
Afin d’estimer m, on considère l’estimateur moyenne empirique Tn=Xn. I Qu’énonce la LfGN sur l’estimateurTn?
Ce théorème affirme que l’estimateur moyenne empirique est un estimateur convergent de E(X).
I De quelle autre manière peut-on démontrer ce type de résultat surTn?
La propriété r(Tn) −→
n→+∞0 suffit à démontrer que l’estimateurTn est convergent.
I.2. Méthode de Monte-Carlo I.2.a) Principe de la méthode
La Méthode de Monte-Carlo (MMC) est simplement l’application directe de la LfGN. Plus pré- cisément, il s’agit d’approcher m par l’estimateurTn=Xnpour un n suffisamment grand.
Cas pratique d’utilisation
La méthode de Monte-Carlo est souvent utilisée pour déterminer une valeur approchée d’un intégrale difficile à calculer. Pour ce faire, on agit comme suit :
× on fait apparaître l’intégrale en question sous la forme d’une espérance, (penser au théorème de transfert)
× on approche cette espérance à l’aide de la LfGN.
Si la LfGN garantit la convergence, elle ne permet d’en mesurer la rapidité. On assortit géné-
I.2.b) Illustration sur un exemple
On souhaite déterminer une valeur approchée de I = Z 1
0
(ln(t))2 dt.
Dans la suite, on note g:t7→(ln(t))2.
I Soit U une v.a.r. telle queU ,→ U([0,1]). On noteV =g(U).
Justifier queI =E(V).
• Notons
f : R → R
x 7→
1 si x∈[0,1]
0 sinon
une densité de la loi uniforme sur[0,1].
• La fonctiont7→g(t)f(t)est continue sur ]0,1].
• Tout d’abord :
Z +∞
−∞
g(t)f(t)dt= Z 1
0
g(t)f(t) dt
car la fonctionf est nulle en dehors de [0,1].
• Lav.a.r. g(U) admet une espérance ssi l’intégrale Z 1
0
g(t)f(t) dt est absolument convergente. Commeg etf sont des fonctions positives, cela équivaut à démontrer la convergence.
• SoitA >0. Par double IPP, on a : Z 1
A
(ln(t))2 dt =
t (ln(t))2 1
A
−2 Z 1
A
ln(t) dt
=
1 ln(1)2
−A (ln(A))2
−2
[t ln(t) ]1
A − Z 1
A
1 dt
= −A (ln(A))2+ 2A ln(A) + 2(1−A) −→
A→02
Ainsig(U) admet une espérance qui vaut I.
I Coder la fonction gen Scilab.
1 function y = g(x)
2 y = (log(x))∧∧∧2
3 enfunction
I Par quel appel peut-on simuler n v.a.r. indépendantes suivant la loi uniforme sur[0,1]? grand(1,n,"def")
I Expliquer la méthode permettant d’obtenir une valeur approchée deE(V).
• L’énoncé demande donc de déterminer une valeur approchée deE(V).
L’idée naturelle pour obtenir une approximation de cette espérance est :
× de simuler un grand nombre de fois (N = 100000 par exemple) la v.a.r.V. Formellement, on souhaite obtenir un N-uplet(v1, . . . , vN) qui correspond à l’observation d’un N-échantillon(V1, . . . , VN) de la v.a.r. V.
(les v.a.r. Vi sont indépendantes et ont même loi queV)
× de réaliser la moyenne des résultats de cette observation.
Cette idée est justifiée par la loi faible des grands nombres (LfGN) qui affirme : moyenne de l’observation= 1
N PN
i=1
vi ' E(V)
I Écrire une fonction estimME1qui prend en paramètre un entiern et qui renvoie la variableT simulant l’estimateur moyenne empirique associé au problème.
1 function T = estimME1(n)
2 ObsU = grand(1,n,"def")
3 ObsV = g(ObsU)
4 T = mean(ObsV)
5 enfunction
• Cela se traduit de la manière suivante enScilab:
× la ligne 2 permet d’obtenir des valeurs (u1, . . . , u100000) qui correspondent à l’ob- servation d’un100000-échantillon(U1, . . . , U100000) de la v.a.r. U.
× en ligne3, on applique la fonctiongà tous les éléments du100000-uplet précédent, ce qui permet d’obtenir des valeurs(v1, . . . , v100000) qui correspondent à l’observa- tion d’un 100000-échantillon(V1, . . . , V100000) de la v.a.r. V.
× en ligne 4, il faut calculer la moyenne de ces observations.
On complète donc cette ligne comme suit.
I Tester cette fonction8 fois de suite avec le paramètre n = 10∧∧∧2 puis avecn = 10∧∧∧3. 1) Avec n = 10∧∧∧2 : 1.84 1.88 2.09 1.66 1.78 2.11 1.66 1.90 2) Avec n = 10∧∧∧3 : 2.07 1.79 2.09 1.87 2.04 1.84 2.07 2.28 I Commenter les résultats obtenus.
• On observe une certaine variabilité des résultats.
• Cette variabilité semble moins forte lorsquen augmente.
I Commenter l’intérêt de l’utilisation de la MMC pour cette intégrale.
L’utilisation de la MMC pour cette intégrale a un intérêt uniquement pédagogique.
En effet, comme on sait calculerI, en trouver une valeur approchée a pour seul
I.2.c) Quantification des garanties d’approximations par le TCL
Dans le cas où l’on ne connaît pas intialement la valeur de I la méthode de Monte-Carlo ne semble pas particulièrement intéressante : on a accès à une valeur approchée de I mais pour l’instant on ne sait quelle confiance on peut accorder à la valeur obtenue (contrairement aux méthodes permettant de déterminer des valeurs approchées à 10−4près).
Il est donc nécessaire d’associer à la MMC un critère de validation du résultat obtenu.
C’est là que le TCL entre en jeu.
Intervalles de confiance asymptotiques via le TCL
• Soit(Xn)n∈N∗ une suite de v.a.r. :
× indépendantes,
× de même loi,
× d’espérance m,
× de variance σ26= 0.
• Soitα∈ ]0,1[. On note u1−α
2 le quantile d’ordre 1−α2 de la loi N(0,1).
,→u1−α
2 est l’unique réel tel que : Φ u1−α
2
= 1−α2 i.e. u1−α
2 = Φ−1 1−α2 .
• On noteXn= 1 n
n
P
i=1
Xi (moyenne empirique).
On a alors : lim
n→+∞P
Xn−u1−α
2
√σ
n 6 m 6 Xn+u1−α
2
√σ n
> 1−α
Quel sens donner à ce résultat ?
• Pour plus de lisibilité, notonsεn=u1−α
2
√σ n.
Le résultat précédent signifie que pournsuffisamment grand, on a :
P
Xn−εn 6 m 6 Xn+εn
> 1−α ce qu’on peut écrire :
P
m ∈ [Xn−εn, Xn+εn]
> 1−α
Pour peu que l’on choisisseα= 0,05et donc1−α= 0.95, ce résultat signifie que le paramètre m recherché a plus de 95% de chance (on parle de niveau de confiance) de se trouver dans l’intervalle[Xn−εn, Xn+εn].
• Il est à noter que le TCL offre une convergence rapide : les résultats obtenus sont proches de ceux attendus dès que n>30. On peut donc se débarrasser du symbole limite ( lim
n→+∞ ) pour des valeurs denpeu élevées.
• Il est à noter que l’amplitude de l’intervalle[Xn−εn, Xn+εn]est de : (Xn+εn)−(Xn−εn) = 2εn= 2 u1−α
2
√σ n
Le réel εn (demi-amplitude de l’intervalle) est appelée la marge d’erreur produite par la méthode.
I Rappeler l’appel permettant le calcul deΦ−1(1−alpha/2)oùalphaest une variable donnée.
cdfnor("X",0,1,1-alpha/2,alpha/2) I Calculer l’écart-type de la v.a.r. g(U).
• Par une succession d’IPP, on obtient : Z 1
0
(g(t))2 dt= 24
et doncV(g(U)) =E(g(U)2)−(E(g(U)))2 = 24−22= 20.
• Ainsi,σ =√
20'4.47.
I En déduire la précision des intervalles de confiance obtenu par le TCL dans le casn1 = 10∧∧∧2 etn2 = 10∧∧∧3 avec alpha = 0.05.
• Le TCL fournit des IC de largeur :2 u1−α
2
√σ
n '2×1.96
√
√20 n.
• Avec n1 = 10∧∧∧2, on obtient une largeur de : 2×1.96
√
√20
100 '1.75.
• Avec n2 = 10∧∧∧3, on obtient une largeur de : 2×1.96
√20
√1000 '0.55.
I Compléter le programme suivant qui simule 100 intervalles de confiance et affiche en vert ceux qui contiennent la valeur cherchée met en rouge les autres.
On l’appellera une première fois avec n = 10∧∧∧2 puis avec n = 10∧∧∧3 et on affichera les graphes obtenus à côté l’un de l’autre.
1 n = 10∧∧∧2
2 m = 2
3 N = 100
4 alpha = 0.05
5
6 x0 = cdfnor("X",0,1,1-alpha/2,alpha/2)
7
8 subplot(1,2,1)
9 for i = 1:N
10 T = estimME1(n)
11 eps = x0/(2*sqrt(n))
12 if abs(T-m) <= eps then
13 plot([i, i], [T-eps, T+eps], "g")
14 else
15 plot([i, i], [T-eps, T+eps], "r")
16 end
17 end
18 plot([1, N], [m, m])
// "Astuce" pour que les ordonnées soient entre 0 et 4
I.2.d) Quantification des garanties d’approximations par le TCL, version 2
• Dans les exemples précédents, on a déterminer la marge d’erreur à l’aide de la valeur exacte de σ. En pratique, on n’a pas forcément accès à la valeur de σ (cela ne semble pas forcément raisonnable de penser quem est inconnu etσ connu).
• Pour autant, cela ne remet pas en cause l’utilisation de la MMC. Une idée plutôt naturelle est de remplacer la valeur de σ par l’écart-type empirique. Cette méthode est validée par le théorème suivant.
Intervalles de confiance asymptotique via le TCL
• Soit(Xn)n∈N∗ une suite de v.a.r.indépendantesidentiquement distribuées, d’espérancem et de varianceσ.
• Soitα∈ ]0,1[. On note u1−α
2 le quantile d’ordre 1−α2 de la loi N(0,1). Par définition, u1−α
2 est l’unique réel tel que : Φ
u1−α
2
= 1−α2 i.e. u1−α
2 = Φ−1 1−α2 .
• On noteXn= 1 n
Pn
i=1
Xi (moyenne empirique).
• On noteSn2= 1 n
n
P
i=1
(Xi−Xn)2= 1 n
n P
i=1
Xi2
−Xn2 (variance empirique).
On a alors : lim
n→+∞ P
Xn−u1−α
2
Sn
√n 6 m 6 Xn+u1−α
2
Sn
√n
= 1−α
II. La méthode de Monte-Carlo aux concours
L’épreuveEDHEC 2018proposait l’étude d’une fonctionf définie par une intégrale. Plus précisé- ment, on considérait :
f :x7→
Z x
0
ln(1 +t2) dt
La Partie 1 était consacrée à l’étude classique de cette fonction : déterminer le signe de f, étudier sa régularité, étudier ses variations, étudier la parité, étudier la convexité, déterminer un équivalent en0, déterminer un équivalent en +∞. On trouvait alors la question suivante.
I On rappelle qu’enScilab, la commandegrand(1, 1, 'unf', a, b)simule une variable aléa- toire suivant la loi uniforme sur[a, b]. Compléter le scriptScilabsuivant pour qu’il calcule et affiche, à l’aide de la méthode de Monte-Carlo, une valeur approchée def(1) :
1 U = grand(1, 100 000, 'unf', 0, 1)
2 V = log(1 + U .∧∧∧2)
3 f = –––––
4 disp(f)
• L’idée de la méthode de Monte-Carlo est de faire apparaître f(1) =
Z 1 0
ln(1 +t2)dt sous forme d’une espérance qu’on pourra alors approcher à l’aide d’une simulation informatique.
• On considère U une v.a.r. telle que U ,→ U([0,1]) de densité : fU :t7→
( 1 sit∈[0,1]
0 sinon
Notons alors V la v.a.r. définie parV =g(U) = ln(1 +U2).
D’après le théorème de transfert, la v.a.r.V admet une espérance si et seulement si l’intégrale
Z 1 0
g(t) fU(t) dtest absolument convergente.
Les fonctions g etfU étant à valeurs positives, cela revient à démontrer qu’elle est convergente.
La fonction t7→g(t) fU(t)étant de classe Cm0 sur[0,1], l’intégrale Z 1
0
g(t) fU(t) dt est bien définie.
La v.a.r.V admet une espérance.
• Enfin, par définition defU on obtient l’espérance deV sous la forme : E(V) =
Z 1 0
g(t) fU(t) dt = Z 1
0
ln(1 +t2)dt = f(1)
• L’énoncé demande donc de déterminer une valeur approchée de E(V). L’idée naturelle pour obtenir une approximation de cette espérance est :
× de simuler un grand nombre de fois (N = 100000 par exemple) la v.a.r.V. Formellement, on souhaite obtenir un N-uplet(v1, . . . , vN) qui correspond à l’observation d’unN-échantillon (V1, . . . , VN) de la v.a.r. V.
(les v.a.r. Vi sont indépendantes et ont même loi que V)
× de réaliser la moyenne des résultats de cette observation.
Cette idée est justifiée par la loi faible des grands nombres (LfGN) qui affirme : moyenne de l’observation= 1
N
N
P
i=1
vi ' E(V)
• Cela se traduit de la manière suivante en Scilab:
× la ligne1permet d’obtenir des valeurs(u1, . . . , u100000)qui correspondent à l’observation d’un100000-échantillon(U1, . . . , U100000) de la v.a.r. U.
× en ligne2, on applique la fonctiong à tous les éléments du 100000-uplet
précédent, ce qui permet d’obtenir des valeurs (v1, . . . , v100000) qui correspondent à l’observation d’un100000-échantillon (V1, . . . , V100000)de la v.a.r. V.
× en ligne3, il faut calculer la moyenne de ces observations.
On complète donc cette ligne comme suit. 3 f = mean(V)
I Modifier le script de la question précédente afin d’obtenir une valeur approchée de Z 1
0
1
1−ln(1 +t2) dt
1 U = grand(1, 100 000, 'unf', 0, 1)
2 W = 1 / (1 - log(1 + U .∧∧∧2) )
3 res = mean(W)
4 disp(res)