Notes de cours - Simulation Monte Carlo Fichier

publicité
GOL500 – Industries de services
Simulations - I
Version 2016
Simulations Monte Carlo
Objectifs pédagogiques

À la fin de cette séance de cours, tu devras être capable:
•
De discerner les étapes d’une simulation Monte Carlo;
•
De modéliser les paramètres incertains par des variables
aléatoires;
•
De générer des échantillons de ces variables aléatoires;
•
D’effectuer la simulation Monte Carlo;
•
D’Analyser les résultats à l’aide d’outils statistiques.
2
Simulations Monte Carlo
Introduction

La simulation est une méthode numérique pour analyser la
performance d’un système, modèle, problème dont la
description est sous forme mathématique ou sous forme
de règles algorithmiques;

La simulation convient lorsque la complexité d’un
système est telle
•
L’analyse mathématique exacte est intraitable (insoluble);
•
L’approximation numérique ne donne pas de bon résultat;
•
Les paramètres ont des valeurs incertaines;
•
Etc.
3
Simulations Monte Carlo
Introduction


La simulation Monte Carlo est privilégiée lorsque les
paramètres d’un système sont incertaines
•
Les paramètres sont le produit de processus aléatoires;
•
Les paramètres sont caractérisés par des distributions de
probabilité.
Dans ce cas, les résultats de l’analyse seront des
estimations statistiques
•

Ces estimations pourront être de plus en plus proche de la
réalité mais jamais être exactes;
C’est pourquoi la simulation Monte Carlo est souvent
considérée comme une technique d’aide à la décision.
4
Simulations Monte Carlo
Introduction

L’analyse de performance par la simulation Monte Carlo
est le sujet de cette section;

Elle s’applique à la plupart des problèmes sans égard à la
nature du modèle de représentation ;

Elle peut nous renseigner sur des mesures de performance
difficiles à obtenir analytiquement;

Elle peut nous aider à trouver des réponses à des
questions de type « what-if »;

Par contre, la simulation Monte Carlo n’est pas une
technique d’optimisation
•
Elle aide dans la prise de décision mais elle ne peut nous
donner une solution optimale.
5
Simulations Monte Carlo
Section
Processus de simulation
6
Simulations Monte Carlo
Processus de simulation

Il existe un nombre d’approche dans la réalisation d’une
simulation Monte Carlo;

On identifie les étapes communes suivantes:

1.
Modéliser le système par des distributions de probabilité;
2.
Échantillonner d’une façon répétitive ces distributions;
3.
Évaluer le système à l’aide de ces échantillons;
4.
Répéter un grand nombre de fois les étapes 2 et 3;
5.
Comptabiliser les sorties et calculer les statistiques.
Ainsi, l’attrait de la simulation Monte Carlo est aussi la
simplicité de son application.
7
Nelson, B. (2013) Foundations and methods of stochastic simulation: A first course, Springer, 978-1461461593.
Simulations Monte Carlo
Processus de simulation

Modélisation du système
Dorénavant, le terme système
sera synonyme de modèle, de
problème, etc.
•
Concrètement cela signifie qu’il faut une description
mathématique ou algorithme du système sous étude;
•
Il faut aussi déterminer la mesure ou les mesures de
performance à analyser;
•
Il faut aussi une ou des distributions de probabilité pour
représenter les paramètres incertains du système sous
étude.
Nous ferons, un peu plus tard, un bref survol des
concepts de base en probabilité et statistique utiles
pour la simulation Monte Carlo.
8
Nelson, B. (2013) Foundations and methods of stochastic simulation: A first course, Springer, 978-1461461593.
Simulations Monte Carlo
Processus de simulation Monte Carlo

Échantillonnage répétitif des fonctions de probabilité
•
Le but est de générer des valeurs aléatoires pour les
paramètres incertains du système;
•
Ces valeurs aléatoires doivent provenir des distributions
choisies précédemment pour représenter les paramètres
incertains;
•
En pratique, ces valeurs aléatoires seront générées à partir
des fonctions de répartition des distribution de probabilité
– une technique de base dans la génération des nombres
aléatoires par ordinateur.
9
Nelson, B. (2013) Foundations and methods of stochastic simulation: A first course, Springer, 978-1461461593.
Simulations Monte Carlo
Processus de simulation Monte Carlo

Évaluer le système sous étude à l’aide de ces valeurs
aléatoires
•
Cette procédure est souvent intégrée dans la procédure
d’échantillonnage répétitif;
•
La ou les mesures de performance du système est calculée
en utilisant les valeurs aléatoires obtenues des distribution;
•
Le calcul est répété un grand nombre de fois en utilisant à
chaque fois des valeurs aléatoires différentes (d’où la
nécessité d’un échantillonnage répétitif);
Une analogie grossière
Plus un footballeur pratique son coup franc, plus il devient bon dans son exécution.
Combien de coups francs? Un grand nombre, un très grand nombre!
Bon. Pour la simulation Monte Carlo, la réponse ne devient pas meilleure, c’est plutôt
sa variance qui est réduite. Plus la variance est petite plus la moyenne est confinée
dans un petit intervalle.
10
Nelson, B. (2013) Foundations and methods of stochastic simulation: A first course, Springer, 978-1461461593.
Simulations Monte Carlo
Processus de simulation Monte Carlo

Comptabiliser les sorties et calculer les statistiques.
•
L’évaluation répétitive du système sous étude donnera une
série de valeurs de sortie et elles doivent être analysées par
des outils statistiques;
•
La raison est que ces valeurs de sortie sont des produits de
variables aléatoires ayant une distribution de probabilité;
•
On dit que les valeurs de sortie d’une simulation Montre
Carlo constitue une distribution empirique et on peut
estimer différentes statistiques de la population en
utilisation les valeurs de l’échantillon – moyenne, écarttype, variance, minimum, maximum, asymétrie, etc.
11
Nelson, B. (2013) Foundations and methods of stochastic simulation: A first course, Springer, 978-1461461593.
Simulations Monte Carlo
Section
Exemples de fonctionnement
12
Simulations Monte Carlo
, on fait quoi?
13
Simulations Monte Carlo
Estimer la valeur 

Il s’agit d’un exemple classique incontournable
•
On sait que l’aire d’un cercle est Ac =   r 2 où r est le rayon
du cercle;
•
On place ce cercle dans un carré comme ceci:
•
L’aire du carré est longueur  largeur.
•
On écrit l’aire du carré en fonction du rayon r du cercle et
on obtient As = (2r)  (2r) = 4 r 2;
•
On fait le rapport de ces deux aires et isoler :
Le problème est transformé en un
problème de ratio de surfaces.
Ac r 2 
 2 
As 4 r
4
4
Ac
As
14
Simulations Monte Carlo
Estimer la valeur 

Il s’agit d’un exemple classique incontournable
•
Pour estimer le ratio Ac / As, on peut le considérer comme
une estimation de proportion dans une plan cartésien;
•
On génère des points (x, y) aléatoirement sur le plan
cartésien délimité par le carré;
•
Le nombre de points (x, y) tombant dans le cercle divisé par
le nombre total des points donne une estimation du ratio Ac
/ As. Autrement dit:
Ac nombrede pointsdans le cercle

As nombre total de points générés
nombrede pointsdans le cercle
  4
nombre total de points générés
15
Simulations Monte Carlo
Estimer la valeur 

Il s’agit d’un exemple classique incontournable
•
Utiliser Excel pour réaliser cette simulation Monte Carlo.
Colonne B et C: les coordonnées x, y des points.
On utilise la fonction rand(), distribution
uniforme entre [0, 1]
Colonne D: la distance du point par rapport à
l’origine. Parce que rand() génère des nombres
aléatoires entre [0, 1], on doit déplacer l’origine
du plan cartésien à (0.5, 0.5) pour maintenir
l’équiprobabilité des coordonnées.
Colonne E: équation qui donne 1 si la distance
par rapport à l’origine est < 0.5, c’est-à-dire si le
point tombe dans le cercle. Autrement,
l’équation donne 0.
16
Simulations Monte Carlo
Estimer la valeur 

Il s’agit d’un exemple classique incontournable
•
Utiliser Excel pour réaliser cette simulation Monte Carlo.
Cellule G2: Comptabilisation des résultats. On calcule le nombre de fois un point tombe dans
le cercle par sum(E:E) divisé par le nombre de points au total. Le tout multiplié par 4.
Remarque 1: Plus le nombre de points est grand plus l’estimation du ratio Ac / As s’approche
de la réalité;
Remarque 2: Excel génère des évènements qui provoquent la mise à jour des formules de la
feuille de calcul. Ainsi, l’entrée d’une valeur dans une cellule provoque l’exécution des
fonctions rand() de la feuille. Conséquemment, de nouveaux points seront générés et un
nouveau résultat apparaît dans la cellule G2. C’est normal.
17
Simulations Monte Carlo
Estimer la valeur 

Il s’agit d’un exemple classique incontournable
•
Utiliser Excel pour réaliser cette simulation Monte Carlo.
Taille: Nombre de points utilisés dans l’estimation du ratio Ac / As multiplié par 4.
Moyenne: Moyenne de l’estimation du résultat sur n répétitions.
Remarque 1: Le nombre de répétitions est important pour l’analyse statistique. En pratique, on
doit réaliser 103 à 106 répétitions pour que le résultat soit statistiquement significatif.
Remarque 2: On constate que la simulation Monte Carlo n’est pas une méthode efficiente
pour calculer la valeur .
18
Simulations Monte Carlo
Estimer la valeur 

Il s’agit d’un exemple classique incontournable
•
Les espiègles peuvent rapidement constater qu’il n’est pas
nécessaire d’utiliser des points aléatoires pour estimer Ac /
As – il suffit de placer les points uniformément dans le carré
et compter les points qui sont dans le cercle versus le
nombre total de points!
•
Cette constatation est effectivement vraie et a été étudiée
par des mathématiciens et physiciens (les premiers
utilisateurs de simulation Monte Carlo);
•
Pour ce genre d’application, la simulation Monte Carlo
nécessite moins de points que la méthode des grilles;
•
La méthode des grilles est difficilement réalisable lorsque la
dimension du problème est élevée.
19
Simulations Monte Carlo
On revient toujours au point de départ…
20
Simulations Monte Carlo
La marche aléatoire

On en revient toujours au point de départ…
•
Thème de romans, de chansons mélancoliques et de débats
philosophiques mais est-ce vrai? Vérifions-le par la
simulation Monte Carlo;
1.
On génère aléatoirement un nombre de déplacements (nord,
sud, est, ouest) dans le plan cartésien;
2.
On vérifie la position initiale et la position finale;
3.
Répéter les étapes 1 et 2 plusieurs fois et tirer une conclusion.
On veut savoir combien de fois le déplacement aléatoire nous ramène au point de
départ.
21
Simulations Monte Carlo
La marche aléatoire

On en revient toujours au point de départ…
Colonne A et B: les coordonnées x, y des
déplacements. Elles sont générées
aléatoirement à l’aide d’une formule du type
=IF(RAND() < 0.5, A5-1, A5+1). Donc, le
déplacement est relatif à la coordonnées de la
cellule précédente.
Remarque 1: La position initiale est à l’origine
0,0.
Remarque 2: L’utilisation de la fonction rand()
signifie que le déplacement est équiprobable
dans les 4 directions.
22
Simulations Monte Carlo
La marche aléatoire

On en revient toujours au point de départ…
Un parcours type obtenu par
la simulation.
Remarque 1: L’utilisation des
nombres entiers dans les
coordonnées fait en sorte
que le marcheur peut
sembler revenir sur ses pas.
23
Simulations Monte Carlo
La marche aléatoire

On en revient toujours au point de départ…
Comptabiliser les résultats en utilisant une table de données
(data table).
Colonnes O et P: Il suffit d’enregistrer le dernier point du trajet
puisqu’on connaît le point de départ. Ainsi,
=A104
=B104
lient les cellules contenant le dernier point du trajet de cet
exemple.
Colonne Q: calcule un code de sortie {0, 1, 2}
• 0, le dernier point coïncide avec le point départ;
• 1, l’une des coordonnées du dernier point coïncide avec l’une des
coordonnée du point de départ;
• 2, le dernier point ne coïncide pas avec le point de départ.
Remarque: Pour cet exemple, une distance  1 est considérée
comme nulle.
24
Simulations Monte Carlo
La marche aléatoire

On en revient toujours au point de départ…
Comptabiliser les résultats en utilisant une table de données
(data table).
Une table de données Excel ou data table est normalement
utilisée pour évaluer une fonction avec différentes valeurs
d’une variable (maximum 2 variables) comme entrée. Une
sorte d’analyse “what-if”.
Ici, on l’utilise pour automatiser la comptabilisation des
répétitions de la simulation Monte Carlo. Voici les étapes à
faire:
1.
Lier la dernière position du trajet dans la première ligne de
la data table par =A104 et la colonne O et par =B104 dans la
colonne P;
Attention, il faut lier la dernière position pas copier les
coordonnées de la dernière position du trajet.
25
Simulations Monte Carlo
La marche aléatoire

On en revient toujours au point de départ…
Comptabiliser les résultats en utilisant une table de données
(data table).
Ici, on l’utilise pour automatiser la comptabilisation de
plusieurs répétitions de la simulation Monte Carlo. Voici les
étapes à faire:
2.
Sélectionner les cellules de la colonne N jusqu’à la colonne
P;
Il faut sélectionner la colonne N qui est à gauche de la
coordonnée x. La colonne N doit être vide pour forcer la data
table à répéter la première ligne de la table jusqu’à la dernière
ligne de la table et ainsi comptabiliser le dernier point des
trajets. Futé n’est-ce pas .
26
Simulations Monte Carlo
La marche aléatoire

On en revient toujours au point de départ…
Comptabiliser les résultats en utilisant une table de données
(data table).
Ici, on l’utilise pour automatiser la comptabilisation de
plusieurs répétitions de la simulation Monte Carlo. Voici les
étapes à faire:
3.
4.
Choisir « Data Table » du menu « What-If Analysis » dans le
groupe « Data Tools »;
Dans le panneau des paramètres, laisser « Row input cell »
vide et entrer dans « Column input cell » l’adresse d’une
cellule qui est à l’extérieur de la data table et dont le
contenu est vide.
L’étape 4 est importante. Cette étape et l’étape 2 servent à
forcer la data table à répéter la première ligne de la table
jusqu’à la dernière ligne de la table.
27
Simulations Monte Carlo
La marche aléatoire

On en revient toujours au point de départ…
Comptabiliser les résultats en utilisant une table de données
(data table).
Voici l’affichage de la comptabilisation automatique des
résultats. La data table a provoqué 20 répétitions de la
simulation Monte Carlo et elle a placer le dernier point du
trajet de ces répétitions dans les colonnes O et P. La colonne
Q calcule le code de sortie selon les coordonnées x et y de la
data table.
Remarque 1: Il suffit d’augmenter la taille (lignes) de la data
table pour augmenter le nombre de répétitions de la
simulation;
Remarque 2: plus le nombre de répétitions est élevé, plus le
nombre de calculs augmente et Excel peut devenir de plus en
plus lent.
28
Simulations Monte Carlo
La marche aléatoire

On en revient toujours au point de départ…
Pour 100 déplacements aléatoires et 20 répétitions de la simulation, les résultats sont:
•
•
•
On ne revient pas au point de départ dans la majorité des trajets aléatoires;
On revient à moitié (l’une des coordonnées du point est près de l’origine) est le 2e résultat
le plus probable;
Il est plutôt rare qu’on revienne au point de départ.
Ces constatations sont tirées de 100 déplacements aléatoires et 20 répétitions seulement.
Que passe-t-il lorsque l’on augmente considérablement les points aléatoires et le nombre de
répétitions de la simulation?
29
Simulations Monte Carlo
Ne partez pas sans eux…
30
Simulations Monte Carlo
Fluctuations du taux de change

Ne partez pas sans eux… un autre exemple classique
•
Planifier votre prochain voyage en Europe en utilisation une
simulation Monte Carlo sur le taux de change
1.
Cette fois on génère aléatoirement des taux de change selon
une distribution normale - les taux de change ne sont pas
équiprobables;
2.
En analysant des données historiques, on observe, une
moyenne de 0.69 $EURO pour 1 $CAD avec un écart type de
0.02 $EURO;
3.
Pour être prudent, on génèrera 1000 taux de change aléatoires
et calculer les coûts pour le voyage.
On veut savoir combien ça pourrait nous coûter en tenant des fluctuations du
taux de change.
31
Simulations Monte Carlo
Fluctuation du taux de change

Ne partez pas sans eux…
Les dépenses pour un voyage de 10 jours en Europe.
La moyenne du taux de change et l’écart type observé (données
historiques)
Le calcul des coûts est simplement:
=(hotel+cell+train+((bouffe_jour + autres_jour) * nb_jour))
/ moy_taux_change
Remarque: Ces données et cette formule constituent le modèle
du problème. Le paramètre incertain est le taux de change.
32
Simulations Monte Carlo
Fluctuation du taux de change

Ne partez pas sans eux…
Utilisation d’une table de données (data table) pour comptabiliser
les coûts engendrés par différents taux de change;
Colonne D: Les taux de change sont générés par la formule
=NORM.INV(RAND(), moy_taux_change, ecart_type)
Colonne E: La première cellule est liée à la cellule B11 (=B11) qui
contient la moyenne des taux de change.
Colonne F: La première cellule est liée à la celluleB14 (=B14) qui
contient les coûts du voyage (la formule de calcul)
Attention. On a affaire à une data table et on doit lier les cellules
B11 et B14. Il ne faut pas copier leur contenu dans une data table.
33
Simulations Monte Carlo
Fluctuation du taux de change

Ne partez pas sans eux…
Utilisation d’une table de données (data table) pour comptabiliser
les coûts engendrés par différents taux de change;
Sélectionner les colonnes D, E et F et activer l’option « Data
Table » du menu « What-If Analysis ».
Entrer l’adresse $B$11 dans « Column input cell ». La cellule $B$11
est le taux de change qui sert dans le calcul des coûts du voyage.
Voici un exemple de l’affichage de la data table.
34
Simulations Monte Carlo
Fluctuation du taux de change

Ne partez pas sans eux…
Utilisation d’une table de données (data table) pour
comptabiliser les coûts engendrés par différents taux
de change;
Note: La colonne D semble redonnant dans la data
table puisque la colonne E est la colonne des taux de
change.
1
Générer
3
2
Calculer
Copier
Cette configuration est nécessaire pour déjouer un
comportement standard d’Excel. Normalement, le
calcul des coûts de la colonne F provoque la mise à jour
des cellules de la feuille Excel. Les formules de la
colonne D sont donc calculées à nouveau. Résultat: les
taux de change affichés dans la colonne D ne sont pas
ceux utilisés dans le calcul de la colonne F!
Le fait d’instaurer la colonne E force la data table à
copier la colonne D dans E avant de faire les calculs de
la colonne F.
4
35
Simulations Monte Carlo
Fluctuation du taux de change

Ne partez pas sans eux…
Le n-ième percentile d’un ensemble de
données donne la valeur à laquelle n
pourcents des données sont plus petites
qu’elle.
Les résultats des simulations sont:
•
•
•
La moyenne des coûts est de 4 665.91$ CAD
À 25e percentile : 3 362.50 $CAD
À 75e percentile: 5 609.83 $CAD
Ainsi, les coûts du voyage est quelque part entre 3
362.50 $ et 5609.83 $CAD.
La moyenne du taux de change de l’échantillon a 95% de
chance d’être contenue dans l’intervalle [0.65, 0.73]
Évidemment, le taux de change peut changer en
amplitude d’une façon drastique (crise, scandale, etc.).
Le modèle ne peut tenir de ces changements causaux.
Après tout, on utile une distribution de probabilité pour
représenter la volatilité du taux de change.
36
Simulations Monte Carlo
Variables aléatoires
Un survol
(Document: Var_Aléatoires.pptx)
37
Simulations Monte Carlo
Section
Identification des distributions
38
Simulations Monte Carlo
Identification des distributions

La première étape de la simulation Montre Carlo est la
modélisation des paramètres incertains par des variables
aléatoires
•

Souvent les distributions de probabilité nécessaires sont
connus ou déduites du problème;
Dans le cas où les distributions sont inconnues
•
Il est nécessaire de prélever les données par la mesure;
•
Ensuite, on doit effectuer une identification des
distributions à partir de ces données
o
Il n’est pas recommandé d’utiliser les données mesurées
directement dans la simulation Monte Carlo;
o
Pourquoi?
39
Simulations Monte Carlo
Identification des distributions

Il existe un nombre de techniques utilisées dans
l’identification des distributions à partir de données
mesurées;

Un nombre de programmes ont été conçus pour cette
tâche;

•
Certains programmes identifient automatiquement les
distributions les plus appropriées – plus pratiques;
•
D’autres exigent la sélection manuelle des distributions à
identifier – plus académiques.
MATLAB app « dfittool » fait partie des outils qui exigent la
sélection manuelle des distributions à identifier.
40
Simulations Monte Carlo
Identification des distributions

Démarrer MATLAB et taper dans la fenêtre de commande:
dfittool ou encore sélectionner l’onglet « Apps » et cliquer
sur l’icône « Distribution Fitting »
Les données
mesurées
Indentification
d’une distribution
Évaluer une
identification la
fonction de
densité (pdf), la
fonction de
répartition (cdf) à
des points précis
41
Simulations Monte Carlo
Identification des distributions

Voici les étapes à entreprendre:
•
Entrer les données dans l’environnement de MATLAB
o
•
Il est possible d’importer les données à partir de l’outil « Import
Data » de MATLAB
Cliquer sur le bouton « Data… » de « Distribution Fitting
Tool » (DFT)
o
Choisir la variable représentant les données et donner un nom
à ces données;
La variable MATLAB contenant les données
Le nom représentant les données
42
Simulations Monte Carlo
Identification des distributions

Voici les étapes à entreprendre:
•
Cliquer sur le bouton « Create Data Set » pour générer les
données internes nécessaires pour MATLAB;
•
Cliquer sur le bouton « Set Bin Rules » pour créer des
intervalles d’analyse
o
Rappel: la probabilité d’une variable aléatoire continue est
définie en termes d’intervalles.
Choisir la règle Freedman –
Diaconis pour créer les
intervalles automatiquement.
Cette règle fonctionne bien dans
la plupart des cas.
43
Simulations Monte Carlo
Identification des distributions

Voici les étapes à entreprendre:
•
Retourner dans la fenêtre principale de « Distribution Fitting
Tool »;
•
Cliquer sur le bouton « New Fit » pour effectuer
l’identification des données à une distribution
o
Choisir une distribution de la liste déroulante et cliquer sur le
boutn « Apply ».
Pour cet exemple, choisir la
distribution exponentielle. Nous
allons comparer les données
mesurées à celles générées par
une distribution exponentielle.
44
Simulations Monte Carlo
Identification des distributions

Voici les étapes à entreprendre:
•
L’outil surimposera la distribution sélectionnée et celle des
données dans sa fenêtre principale;
Oh là là! Ces deux fonctions de densité (pdf)
ne ressemblent pas du tout! Pour avoir
l’heure juste, retenir la valeur de « Log
likelihood » de la fenêtre « Edit Fit »
45
Simulations Monte Carlo
Identification des distributions

Voici les étapes à entreprendre:
•
L’outil surimposera la distribution sélectionnée et celle des
données dans sa fenêtre principale;
L’option « Probability plot » montre la
déviation des données par rapport à la
distribution exponentielle.
On voit aussi que la variance estimée par la
distribution exponentielle est beaucoup trop
grande.
46
Simulations Monte Carlo
Identification des distributions

Voici les étapes à entreprendre:
•
Recommencer les mêmes étapes en utilisant une
distribution log-normale Ah! C’est beaucoup mieux. La fonction de
densité de la distribution log-normale
ressemble davantage à celle des données.
Pour avoir l’heure juste, retenir la valeur de
« Log likelihood » de la fenêtre « Edit Fit »
Paramètres de la distribution
log-normale estimés
47
Simulations Monte Carlo
Identification des distributions

Voici les étapes à entreprendre:
•
Recommencer les mêmes étapes en utilisant une
distribution log-normale
L’option « Probability plot » montre une
meilleure adéquation entre les données et la
distribution log-normale.
On voit aussi que la variance estimée par la
distribution log-normale est moins grande
que celle de la distribution exponentielle.
48
Simulations Monte Carlo
Identification des distributions

Voici les étapes à entreprendre:
•
Recommencer encore une fois les mêmes étapes en
utilisant une distribution normale
Pas mal aussi. La fonction de densité de la
distribution normale est symétrique et
semble « coller » davantage aux données
mesurées. Pour avoir l’heure juste, retenir la
valeur de « Log likelihood » de la fenêtre
« Edit Fit »
Paramètres de la distribution
normale estimés
49
Simulations Monte Carlo
Identification des distributions

Voici les étapes à entreprendre:
•
Normalement, il faut continuer cette identification avec
plusieurs autres distributions connues et obtenir les
affichages, les valeurs de « Log likelihood », les moyennes
et variances et prendre une décision:
Distribution
Log Likelihood
Exponentielle
-178.68
Log-normale
-154.841
Normale
-151.25
Plus la valeur de Likelihood « vraisemblance » est
grande plus l’identification est bonne.
Plus la courbe de la fonction de densité ressemble à
celle des données, plus l’identification est bonne.
50
Simulations Monte Carlo
Section
Génération des nombres aléatoires
51
Simulations Monte Carlo
Génération des nombres aléatoires

Dans la simulation Monte Carlo, après avoir identifié les
variables aléatoires
•
On doit pouvoir générer les valeurs possibles de ces
variables aléatoires;
•
Il faut alors utiliser des générateurs de nombres aléatoires
pour cette tâche;
•
Pour bien des spécialistes, il s’agit en fait de nombres
pseudo-aléatoires – une séquence de nombres dont la
périodicité est plus ou moins longue
•
o
Cela n’a aucune importance pour nous;
o
Par contre, il faut savoir bien utiliser ces générateurs.
Voici comment générer des nombres aléatoires dans le
contexte du chiffrier Excel.
52
Simulations Monte Carlo
Génération des nombres aléatoires

Un mot sur les fonctions de répartition cdf
•
Dans bien des cas on peut utiliser l’inverse de la fonction de
répartition et des nombres aléatoires uniformes pour
générer des nombres aléatoires de la distribution
correspondante;
•
Cela est possible grâce à une remarquable propriété des
fonctions de répartition:
o
On obtient une distribution uniforme en mettant une variable
aléatoire continue dans sa propre fonction de répartition;
o
C’est-à-dire, si X est une variable aléatoire continue ayant une
fonction de répartition F ( ) alors u = F (X) est une variable
aléatoire de distribution uniforme.
53
Simulations Monte Carlo
Génération des nombres aléatoires

Un mot sur les fonctions de répartition cdf
•
•
Reprenons le résultat u = F (X) et posons ceci:
o
On connaît u qui est une variable aléatoire uniforme (par la
commande rand() d’Excel);
o
On connaît F qui est la fonction de répartition d’une
distribution de probabilité (via les notes de cours ou par le
WEB);
o
Comment faire pour générer les valeurs de la variable X ?
On peut générer les valeurs de X en faisant ceci:
o
X = F -1 (u)
o
C’est-à-dire, calculer l’inverse de la fonction de répartition de
la distribution désirée et utiliser les valeurs de la distribution
uniforme [0, 1) comme argument à la fonction inversée.
54
Simulations Monte Carlo
Génération des nombres aléatoires

Prenons le cas de la distribution exponentielle. Sa fonction
de répartition cdf est
F ( x; m)  Pr( X  x )  
yx
y 0
me  my dy ,
 1  e  mx .
où m est la moyenne de la variable aléatoire exponentielle.

L’inverse de cette fonction de répartition est
X  F 1 (u; m)  
•
1
ln(1  u ).
m
En donnant à u des valeurs d’une variable aléatoire
uniforme X aura des valeurs d’une variable aléatoire
exponentielle.
55
Simulations Monte Carlo
Génération des nombres aléatoires

La méthode par transformation inverse fonctionne si on
connaît la fonction de répartition et qu’elle est inversible;

Bien des fonctions de répartition ne sont pas inversibles
analytiquement. Par exemple, la fonction cdf de la
distribution normale n’est pas inversible analytiquement
 xm
F ( x ; m,  )   
.




Pour ces cas, on utilisera d’autres méthodes (Box-Muller,
Accept-Rejet, etc.) pour générer les nombres aléatoires.

Ceci explique, en partie, la présence des fonctions cdf
inverse dans Excel (et dans des bibliothèques de
programmation).
56
Simulations Monte Carlo
Génération des nombres aléatoires

Nombres aléatoires de distribution uniforme
Fonction: rand()
Nombres aléatoires continus de distribution
uniforme
Valeur: valeur réelle plus grande ou égale à 0
et plus petite que 1, [0, 1).
Notez bien: la valeur 1 n’est pas généré par
rand()
Fonction: randbetween(lo, hi)
Nombres aléatoires discrets de distribution
uniforme
Sortie: valeur entière entre lo et hi incluant lo
et hi, [lo, hi]
57
Simulations Monte Carlo
Génération des nombres aléatoires

Nombres aléatoires de distribution normale
Ici on utilise l’inverse de
la fonction de
répartition. Donc, u doit
être des nombres
aléatoires uniformes.
Fonction: norm.inv(u, m, ect) où u est une probabilité, m une
moyenne et ect est l’écart-type
Nombres aléatoires continus de distribution normale
Sortie: valeurs réelles centrées autour de la moyenne m et une dispersion ect
58
Simulations Monte Carlo
Génération des nombres aléatoires

Nombres aléatoires de distribution exponentielle
Fonction: Il faut utiliser explicitement la fonction de répartition inverse F -1(u) = -ln(1
- u) / m où m est la moyenne
Nombres aléatoires continus de distribution exponentielle
Sortie: valeurs réelles suivant une distribution exponentielle de moyenne m
59
Simulations Monte Carlo
Génération des nombres aléatoires

Nombres aléatoires de distribution log-normale
Fonction: lognorm.inv(u, m, ect) où u est une probabilité, m la moyenne de ln(u)
et ect est l’écart-type de ln(u)
Nombres aléatoires continus de distribution log-normale
Sortie: valeurs réelles suivant une distribution log-normale
60
Simulations Monte Carlo
Génération des nombres aléatoires

Nombres aléatoires de distribution binomiale
Fonction: binom.inv( n, ps, u) où n est le nombre d’essais, ps est la probabilité
d’un “succès” et u est la probabilité cumulative binomiale
Nombres aléatoires discrets de distribution binomiale
Sortie: valeurs entières donnant le nombre de "succès" en fonction du nombre
d'essais n et de la probabilité cumulative binomiale u
61
Simulations Monte Carlo
Génération des nombres aléatoires

Nombres aléatoires de distribution de Poisson
Fonction: poissonrnd(m) où m est la moyenne
Nombres aléatoires discrets de distribution de Poisson
Sortie: valeurs entières donnant le nombre d’évènements en fonction de la
moyenne, dans un intervalle de temps donné.
62
Simulations Monte Carlo
Génération des nombres aléatoires

Nombres aléatoires de distribution de Poisson
La fonction poissonrnd(m) a été créée de toute pièce à l’aide de VBA pour Excel.
Voici le code:
Public Function poissonrnd(m As Double) As Double
Application.Volatile (True)
Cet algorithme a
été tiré de la page
Wikipedia sur la
distribution de
Poisson.
Dim n As Integer
Dim p As Double
Dim expm As Double
Il faut déclarer la fonction poissonrnd comme une
fonction volatile. Une fonction volatile s’exécute lors
de la mise à jour (recalcule) de la feuille.
n = 0: p = Rnd: expm = Exp(-m)
While (p > expm)
p = p * Rnd
n = n + 1
Wend
poissonrnd = n
Le code VBA a été placé dans un
module pour être accessible dans
les feuilles du fichier Excel.
End Function
63
Simulations Monte Carlo
Génération des nombres aléatoires

La liste des fonctions statistiques d’Excel
1
3
Excel dispose d’un répertoire de
fonctions statistiques. Bien des
fonctions sont disponibles et il
n’est pas nécessaire de
réinventer la roue.
2
Note: D’autres distributions de
probabilité sont également
implantées.
64
Simulations Monte Carlo
Section
Exemples d’application
65
Simulations Monte Carlo
Temps de parcours
66
Simulations Monte Carlo
Exemples d’application

Temps de parcours dans un aéroport
•
Un aéroport international désire construire un nouveau
terminal pour accommoder l’augmentation du trafic aérien;
Augmentation du nombre de portes
d’embarquement vers la gauche
•
Poste de contrôle préembarquement
Présentement, le poste de contrôle pré-embarquement est
situé à l’une des extrémités du corridor des portes
d’embarquement;
67
Simulations Monte Carlo
Exemples d’application

Temps de parcours dans un aéroport
•
On retour dans ce poste de contrôle pré-embarquement de
l’aéroport:
o
Machine à rayon X pour les effets personnels et le bagage à
main;
o
Détecteur de métal pour les passagers;
o
Ceux qui déclencheront le détecteur de métal doivent passer
obligatoirement dans le scanner corporel;
68
Simulations Monte Carlo
Exemples d’application

Temps de parcours dans un aéroport
•
Un aspect qui soulève des questionnements sur le projet
d’agrandissement est:
o
Le temps nécessaire pour les passagers de se rendre à leur
porte d’embarquement après les travaux d’agrandissement.
Poste de contrôle préembarquement
69
Simulations Monte Carlo
Exemples d’application

Temps de parcours dans un aéroport
•
Le temps nécessaire pour se rendre à leurs portes
d’embarquement
o
Le trajet le plus long (partant du poste de contrôle préembarquement) est de 1.5 km;
o
Selon les mesures prélevées, la vitesse moyenne de marche
est 5 km/h pour 70% des passagers et de 4 à 2 km/h pour les
30% restants.
30
70
Simulations Monte Carlo
Exemples d’application

Temps de parcours dans un aéroport
•
Le temps nécessaire pour se rendre à leurs portes
d’embarquement. Au poste de contrôle préembarquement
o
Normalement, la machine à rayon X n’engendre pas de délai
appréciable;
o
Par contre, ceux qui ont déclenché l’alarme du détecteur de
métal doit passer en moyenne 1 à 5 minutes dans le scanner
corporel
71
Simulations Monte Carlo
Exemples d’application
Temps de parcours dans un aéroport
Au poste de contrôle pré-embarquement
o
On a identifié une distribution log-normale comme celle qui
s’approche la plus les données prélevées: m =0.2,  = 0.2;
o
La probabilité d’un déclenchement du détecteur de métal est
situé à 1.25 fois la médiane de cette distribution;
o
Une fois l’alarme est déclenché, le passager doit passer de 1 à 5
minutes dans le scanner corporel.
Détecteur de métal
Bagages à
main
•
Scanner
corporel

72
Simulations Monte Carlo
Exemples d’application

Temps de parcours dans un aéroport
1.
Modéliser le problème par des distributions de probabilité;
o
o
o
Pour la section de 1.5 km (du poste de sécurité jusqu’à la
dernière porte d’embarquement) - distribution uniforme:
o
70% des chances à 5 km/h;
o
10% à 4 km /h;
o
10% à 3 km / h;
o
10% à 2 km / h.
Déclenchement du détecteur de métal:
o
Distribution log-normale avec m = 0.2 et  = 0.2;
o
1.25 fois la médiane de la distribution;
Le temps passé dans le scanner corporel – distribution
uniforme entre 1 minute à 5 minutes.
73
Simulations Monte Carlo
Exemples d’application

Temps de parcours dans un aéroport
2.
Échantillonner d’une façon répétitive ces distributions
5 km /h
4 km /h
3 km /h
2 km / h
Cette table décrit les
probabilités des vitesses
de déplacement.
=VLOOKUP(RAND()*100, $G$6:$H$9, 2)
=LOGNORM.INV(RAND(), 0.2, 0.2)
=D6 + A6
=(RAND() * 4 + 1) * 60 * C6
=IF(B6 > 1.25 * MEDIAN(B6:B1005), 1, 0)
74
Simulations Monte Carlo
Exemples d’application

Temps de parcours dans un aéroport
3.
Évaluer le système à l’aide de l’échantillon;
Cette tâche est réalisée directement dans la construction
de la feuille de calcul
=D6 + A6
75
Simulations Monte Carlo
Exemples d’application

Temps de parcours dans un aéroport
4.
Répéter un grand nombre de fois les étapes 2 et 3
Nous avons utiliser 1000 valeurs pour effectuer les calculs.
5.
Comptabiliser les sorties et calculer les statistiques
Il y a une seule sortie qui est le temps de parcours.
Selon les résultats de la simulation:
• Le temps moyen du parcours est 22.5
minutes;
• 50% des passagers prend moins que 18
minutes à parcourir le trajet;
• 75% des passagers prend moins que le
temps moyen pour le trajet
• 100% des passagers peut parcourir le trajet
en moins de 50 minutes.
76
Simulations Monte Carlo
La part du marché
77
Simulations Monte Carlo
Exemples d’application

Croissance de la part du marché
•
Sans doute l’une des questions la plus importante pour
toute entreprise de services;
•
Au lieu d’estimer la croissance par des points (max,
moyenne, meilleur des cas, etc.), nous allons l’estimer à
l’aide d’une simulation Monte Carlo par des variables telles:
o
PIB: produit intérieur brut;
o
CM: croissance/contraction du marché;
o
TM: taille du marché;
o
PM: croissance / contraction de la part du marché;
o
VV : volume des ventes estimée par Monte Carlo.
78
Simulations Monte Carlo
Exemples d’application

Croissance de la part du marché
1.
Modéliser le problème par des distributions de probabilité;
Pour faciliter la compréhension de la simulation Monte
carlo, nous utilisons un modèle simpliste:
o
Au lieu de prendre
une valeur
moyenne, on
utilisera une
o
variable aléatoire
pour représenter
cette contribution
du secteur dans le
PIB canadien.
PIB: produit intérieur brut – distribution normale;
Le PIB peut donc augmenter ou contracter selon une
probabilité de distribution normale;
CM: croissance du marché = PIB  z
où z est une variable aléatoire représentant la contribution du
secteur de services dans le PIB. Cette contribution peut
augmenter ou contracter selon une distribution normale. Par
exemple, les services TIC représentent 4,9% du PIB canadien
en 2011 et 4,3% en 2014.
79
Simulations Monte Carlo
Exemples d’application

Croissance de la part du marché
1.
Modéliser le problème par des distributions de probabilité;
Pour faciliter la compréhension de la simulation Monte
carlo, nous utilisons un modèle simpliste:
o
La taille courante
du marché est
comptabilisée par
des organismes
gouvernementaux.
Elle est une valeur o
considérée comme
une constante.
TM: taille du marché = Taille courante  (CM + 1)
La croissance ou décroissance du section d’activité influence
directement la taille du marché. Dans ce modèle cette
influence est simplement linéaire.
PM: croissance / contraction de la part du marché = TM + gain.
La part du marché est la taille du marché PLUS le gain (ou la
perte) du marché réalisé par notre entreprise. On modèlise ce
gain (ou cette perte) par une variable aléatoire de distribution
normale.
80
Simulations Monte Carlo
Exemples d’application

Croissance de la part du marché
1.
Modéliser le problème par des distributions de probabilité;
Pour faciliter la compréhension de la simulation Monte
carlo, nous utilisons un modèle simpliste:
o
VV: volume de vente = TM  PM
Ce volume de vente est linéaire dicté par la taille du marché et
la part du marché.
On peut augmenter le réalisme en utilisant des modèles
économiques publiés mais la démarche d’une simulation
Monte Carlo demeure la même.
81
Simulations Monte Carlo
Exemples d’application

D’où viennent les paramètres des
distributions? Ils sont souvent
obtenus par l’identification des
distributions sur des données
empiriques.
Croissance de la part du marché
2.
Échantillonner d’une façon répétitive ces distributions
L’échantillon doit
avoir un grand
nombre de
données. Ici on a
créé 1000 lignes
pour un échantillon
de 1000 valeurs
pour chacune des
variables
aléatoires.
=NORM.INV(RAND(); 2; 1)
=NORM.INV(RAND(); 1.5; 5)
=NORM.INV(RAND(); 2%; 2%)
82
Simulations Monte Carlo
Exemples d’application

Croissance de la part du marché
3.
Évaluer le système à l’aide de l’échantillon;
Cette tâche est réalisée directement dans la construction
de la feuille de calcul
Ici on calcule la
moyenne du volume
de vente de
l’échantillon (1000
valeurs).
=AVERAGE(G6:G1005)
=A6 * B6
=$E$1 * (C6 + 1)
=$H$1 + E6
=D6 * F6
83
Simulations Monte Carlo
Exemples d’application

Croissance de la part du marché
4.
Répéter un grand nombre de fois les étapes 2 et 3
Cette tâche est réalisée à l’aide d’une data table d’Excel
•
•
•
La procédure de création d’une data table
est identique à celle utilisée dans les
exemples précédents.
La data table sert uniquement à
provoquer la MAJ automatique de la
feuille un nombre de fois (au lieu de la
façon manuelle par shift-F9)
La data table aura 1000 lignes pour
répéter 1000 le calcule de la moyenne du
volume de vente (cellule I5).
L’importance est de lier ces deux cellule à la
cellule de la moyenne du volume de vente
(=$I5) pour force la mise à jour de toutes les
lignes des colonnes de la feuille et le recalcule
de la cellule I5.
84
Simulations Monte Carlo
Exemples d’application

Croissance de la part du marché
5.
Comptabiliser les sorties et calculer les statistiques
Il y a une seule sortie qui est la moyenne du volume de
vente;
Les statistiques sont calculées à partir des résultats de la
data table cellule K6 à L1005
Minimimum de la moyenne
du volume de vente
=MIN(L6:L1005)
Maximum de la moyenne
du volume de vente
=MAX(L6:L1005)
• La moyenne du volume de vente est calculée à
l’aide de 1000 valeurs pour chacune des variables
aléatoires de distribution normale;
• La data table exécution 1000 fois le calcul de la
moyenne du volume de vente;
• On a donc au total 1 000 000 répétitions pour cette
simulation Monte Carlo.
La médiane de la moyenne
du volume de vente
=MEDIAN(L6:L1005)
85
GOL500 Industries de services
Prochaine séance
Encore de la simulation!
86
Fin de la séance #7
Téléchargement