Méthode de Monté Carlo

Discutez d'informatique ici !
thedream01
Membre Relatif
Messages: 289
Enregistré le: 20 Avr 2007, 12:57

Méthode de Monté Carlo

par thedream01 » 17 Juil 2012, 22:28

Bonjour tout le monde,

Ca fait un petit moment que j'ai arrêté les maths et l'informatique et j'ai perdu mes réflexes... Cependant, le boulot fait que je dois (avec plaisir) m'y replonger!

Voici mon problème :
Je dois calculer des Value at Risk en générant des scénarii aléatoires grâce à la méthode de Monte Carlo. L'objectif final étant de l'implémenter sur Excel.
Est-ce que quelqu'un pourrait m'expliquer simplement en quoi consiste cette méthode et est-ce que vous auriez de la bonne documentation à ce sujet?

Merci d'avance



Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 14:39

par Dlzlogic » 18 Juil 2012, 13:10

Bonjour,
Je crois me souvenir qu'il y avait des informations tout à fait détaillées sur cette méthode.
... sur le NET bien sûr. :hum:
Le mieux serait de dire ce que vous ne comprenez pas.

Mathusalem
Membre Irrationnel
Messages: 1837
Enregistré le: 14 Sep 2008, 05:41

par Mathusalem » 18 Juil 2012, 16:30

thedream01 a écrit:Bonjour tout le monde,

Ca fait un petit moment que j'ai arrêté les maths et l'informatique et j'ai perdu mes réflexes... Cependant, le boulot fait que je dois (avec plaisir) m'y replonger!

Voici mon problème :
Je dois calculer des Value at Risk en générant des scénarii aléatoires grâce à la méthode de Monte Carlo. L'objectif final étant de l'implémenter sur Excel.
Est-ce que quelqu'un pourrait m'expliquer simplement en quoi consiste cette méthode et est-ce que vous auriez de la bonne documentation à ce sujet?

Merci d'avance


Wikipédia est bien, mais pas vraiment assez. Tout dépend du problème que tu as devant toi. J'ai déjà dû utiliser cet algorithme pour la situation suivante :

Tu imagines un champ carré de 100x100 aimants. Les aimants peuvent s'orienter selon 3 manières. Vers le haut, horizontalement, et vers le bas. Chaque aimant va prendre une des orientations selon une Loi de probabilité P. Tu admets que l'aimant vers le haut 'vaut' 1, celui horizontal vaut 0, et celui vers le bas -1. Si tu sommes toutes les orientations des aimants pour un champ donné, tu obtiens le champ magnétique total de ton champ 100x100.


Tu peux calculer en théorie l'espérance du champ magnétique (sa moyenne mathématique) mais pour faire cela, tu dois évaluer des intégrales contenant la densité de probabilité P. Il est possible, que ce calcul soit absolument immonde (en fait, c'est surtout la normalisation qui pose problème).

La méthode de Monte-Carlo consiste à simuler puis accumuler (sampling) des configurations plausibles (plausibles au sens de la densité de probabilité que le problème suit). Une fois que tu as simulé assez de champs 100x100, tu calcules pour chaque le champ magnétique, puis tu fais une moyenne arithmétique (calculatoirement beaucoup plus simple).

Tu peux montrer que si tu fais bien ta méthode, la moyenne arithmétique (calculable) va rejoindre l'espérance (incalculable). Et tu as comme cela outrepassé l'incalculabilité du problème.

Dans ton cas, j'imagine qu'il y a certaines situations dont les éléments suivent une loi de probabilité, et que tu veux calculer la moyenne d'une certaine grandeur (risque?). Encore une fois, sans connaître ton problème, dur à dire comment l'attaquer.

J'espère que mon exemple était assez illustratif et non pas embrouillant.

thedream01
Membre Relatif
Messages: 289
Enregistré le: 20 Avr 2007, 12:57

par thedream01 » 18 Juil 2012, 17:29

Bonjour,

Je vous remercie pour vos réponses.

En fait, je dois calculer des Value at Risque. Il en existe 3 types : historique (basé sur un échantillon passé de données), paramétrique (distribution de données suivant une loi loi Normale) et une Value at Risque avec la méthode de Monte Carlo.
Ainsi, la méthode de Monte Carlo devrait me permettre de générer des scénarii aléatoires.
J'aimerais comprendre le méchanisme de cette méthode (algorithme pour générer des scénarii aléatoires) et quelle est la différence avec la fonction rand() d'excel ?

Merci

Mathusalem
Membre Irrationnel
Messages: 1837
Enregistré le: 14 Sep 2008, 05:41

par Mathusalem » 18 Juil 2012, 18:06

thedream01 a écrit:Bonjour,

Je vous remercie pour vos réponses.

En fait, je dois calculer des Value at Risque. Il en existe 3 types : historique (basé sur un échantillon passé de données), paramétrique (distribution de données suivant une loi loi Normale) et une Value at Risque avec la méthode de Monte Carlo.
Ainsi, la méthode de Monte Carlo devrait me permettre de générer des scénarii aléatoires.
J'aimerais comprendre le méchanisme de cette méthode (algorithme pour générer des scénarii aléatoires) et quelle est la différence avec la fonction rand() d'excel ?

Merci


La fonction rand() va te générer un nombre d'évènements. Cependant, tu vas accumuler à partir d'une distrubtion uniforme sur [0,1].
Ce serait une méthode de Monte Carlo si ta distribution était uniforme sur [0,1].
Si tu as une distribution normale, tu dois générer des échantillons qui suivent une loi normale.

En très imagé :
La loi est [0,1]
échantillon généré à partir de la loi : beaucoup de valeurs distribuées uniformément dans [0,1]

La loi est N(0,1) (normale centrée sur 0 d'ecart type 1)
échantillon généré à partir de la loi : beaucoup de valeurs autour de 0, peu de valeurs loin de 0.

Ta méthode de monte-carlo construit un échantillon en tenant compte de la loi à suivre.

Elle doit pouvoir simuler le : On observe un évènement X fois. On a une série de X résultats avec lesquels on bosse.
Ben selon la loi que suit l'évènement, tes X résultats (échantillon) ne sont pas les mêmes.

thedream01
Membre Relatif
Messages: 289
Enregistré le: 20 Avr 2007, 12:57

par thedream01 » 18 Juil 2012, 18:30

Mathusalem a écrit:La fonction rand() va te générer un nombre d'évènements. Cependant, tu vas accumuler à partir d'une distrubtion uniforme sur [0,1].
Ce serait une méthode de Monte Carlo si ta distribution était uniforme sur [0,1].
Si tu as une distribution normale, tu dois générer des échantillons qui suivent une loi normale.

En très imagé :
La loi est [0,1]
échantillon généré à partir de la loi : beaucoup de valeurs distribuées uniformément dans [0,1]

La loi est N(0,1) (normale centrée sur 0 d'ecart type 1)
échantillon généré à partir de la loi : beaucoup de valeurs autour de 0, peu de valeurs loin de 0.

Ta méthode de monte-carlo construit un échantillon en tenant compte de la loi à suivre.

Elle doit pouvoir simuler le : On observe un évènement X fois. On a une série de X résultats avec lesquels on bosse.
Ben selon la loi que suit l'évènement, tes X résultats (échantillon) ne sont pas les mêmes.


Je te remercie! Ta réponse est très claire.

Si je comprends bien, si je génère un échantillon avec la fonction Excel Loi.normale(), celui-ci ne suivera pas une loi normale mais sera un échantillon d'un échantillon de données qui suivent une loi normale?

Où puis-je trouver l'algorithme de la méthode de monte carlo?

Mathusalem
Membre Irrationnel
Messages: 1837
Enregistré le: 14 Sep 2008, 05:41

par Mathusalem » 19 Juil 2012, 08:36

thedream01 a écrit:Je te remercie! Ta réponse est très claire.

Si je comprends bien, si je génère un échantillon avec la fonction Excel Loi.normale(), celui-ci ne suivera pas une loi normale mais sera un échantillon d'un échantillon de données qui suivent une loi normale?

Où puis-je trouver l'algorithme de la méthode de monte carlo?



Si tu génères des évènements avec la fonction Loi.normale(), ces évènements constitueront un bon échantillon d'une observation suivant la loi normale. Les évènements, dans leur fréquence suivront la loi normale, ou n'importe quelle loi avec la quelle tu les génères (sampling).

L'algorithme monte-carlo, c'est pas un truc unique. Donc trouver un algorithme tout fait sur le net c'est pas top. Va chercher du côté de l'algorithme de Metropolis - appliqué à Montecarlo. C'est une certaine manière de générer des évènements à partir d'une distribution de probabilités.

Il faudrait aussi connaître tes données de départ pour savoir ce que tu veux et comment tu veux simuler.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite