Simulations Monte-Carlo - Laboratoire de Statistique Théorique et

Université Pierre et Marie Curie
Master Mathématiques et Applications
Spécialité Statistique
Année 2016/2017
Premier Semestre
Simulations Monte-Carlo
Arnaud Guyader
Table des matières
1 Génération de variables aléatoires 1
1.1 Variables uniformes .................................... 1
1.2 Méthode d’inversion ................................... 2
1.3 Méthode de rejet ..................................... 4
1.4 Vecteurs aléatoires .................................... 6
1.4.1 Conditionnement ................................. 6
1.4.2 Changement de variables ............................. 7
1.4.3 Vecteurs gaussiens ................................ 8
1.4.4 Copules ...................................... 9
1.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 Corrigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 Intégration Monte-Carlo 35
2.1 Exemples et propriétés .................................. 35
2.1.1 Convergence et intervalles de confiance . . . . . . . . . . . . . . . . . . . . . 35
2.1.2 Quelques mots sur l’intégration numérique . . . . . . . . . . . . . . . . . . . 37
2.1.3 Le paradigme bayésien .............................. 38
2.2 Réduction de variance .................................. 39
2.2.1 Echantillonnage préférentiel ........................... 39
2.2.2 Conditionnement ................................. 41
2.2.3 Stratification ................................... 42
2.2.4 Variables antithétiques .............................. 44
2.3 Méthodes Quasi-Monte-Carlo .............................. 45
2.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5 Corrigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3 Monte-Carlo par Chaînes de Markov 81
3.1 Rappels sur les chaînes de Markov ........................... 81
3.2 Algorithme de Metropolis-Hastings ........................... 86
3.2.1 Algorithme de Metropolis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.2.2 Généralisation : méthode de Metropolis-Hastings . . . . . . . . . . . . . . . 87
3.3 Exemple d’application : le recuit simulé . . . . . . . . . . . . . . . . . . . . . . . . 88
3.4 Echantillonneur de Gibbs ................................ 90
3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.6 Corrigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
i
Chapitre 1
Génération de variables aléatoires
Introduction
Idéalement, une méthode Monte-Carlo repose sur la simulation d’une suite de variables aléatoires
(Xn)n1indépendantes et identiquement distribuées (i.i.d.) selon une loi donnée. Ce chapitre
expose quelques méthodes pour y parvenir, au moins de façon approchée, en commençant par la
loi uniforme, sur laquelle toutes les autres sont basées.
1.1 Variables uniformes
Le but est de générer une suite de variables aléatoires (Xn)n1indépendantes et de loi uniforme
sur [0,1]. Ceci est bien entendu impossible sur un ordinateur : d’abord parce que les nombres entre
0 et 1 sont en fait de la forme k/2pavec k∈ {0,...,2p1}; ensuite parce que vérifier qu’une suite
(Xn)n1est bien i.i.d. est une question très délicate. C’est essentiellement l’objet de la théorie de
la complexité (voir par exemple [3], Chapitre 7, pour une introduction à ce sujet).
En pratique, les logiciels se basent sur une suite dite pseudo-aléatoire qui a la forme Xn=f(Xn1)
avec Xn∈ {0,...,2p1}. L’objectif est alors d’obtenir une suite (Xn)qui ressemble autant que
possible à une suite i.i.d. uniforme sur {0,...,2p1}. La fonction fétant déterministe, il est clair
qu’un tel générateur est périodique. Il existe de nombreuses méthodes pour générer de telles suites
et nous ne détaillerons pas ce sujet, nous contentant de mentionner celui utilisé par défaut sous R
via la commande runif, à savoir le Mersenne Twister MT-19937 :
Xn+1 =AXn(mod 2)
Xnest un vecteur de 19937 bits et Aune matrice bien choisie. La variable pseudo-aléatoire Un
correspond alors aux 32 derniers bits de Xn. Proposé par Matsumoto et Nishimura en 1998 [11],
ce générateur a une période de longueur 219937 1(i.e. le maximum possible vu la taille de Xnet
le fait que 0 est un point fixe), lequel est un nombre premier de Mersenne.
Notons aussi que si, pour une raison ou une autre, on veut changer de générateur sous R, il suffit
de le spécifier avant l’appel à runif via la fonction RNGkind. En voici un exemple pour utiliser un
générateur proposé par L’Ecuyer :
> set.seed(123) # fixe la graine du générateur
> runif(1) # génération par Mersennne Twister
[1] 0.2875775
> RNGkind("L’Ecuyer-CMRG") # changement de générateur pseudo-aléatoire
> set.seed(123)
> runif(1)
1
1 / 131 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !