Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 19-08-2010 14:58:15

marin marais
Membre
Inscription : 25-07-2010
Messages : 41

Simulation de variables normales corrélées

Bonjour à tous et à toutes,

Dans le cadre de simulations de Monte-Carlo, je dois générer avec MatLab p valeurs de n variables gaussiennes corrélées xi, pour i allant de 1 à n.
Je connais les espérances mathématiques de mes n variables ainsi que la matrice de variance-covariance entre ces n variables.

En général, je trouve des descriptions de la méthode à appliquer pour générer deux variables corrélées... Mais pour n variables, je n'arrive pas à trouver des infos, si ce n'est une allusion dans le cours suivant. Ce cours (très bien fait cela étant) parle d'un programme en FORTRAN, mais sans autres descriptions.

Si quelqu'un a un tuyau à me donner, ce serait formidable.

Merci !
Cordialement,
Thomas.

Dernière modification par marin marais (19-08-2010 14:58:50)

Hors ligne

#2 19-08-2010 15:35:32

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Simulation de variables normales corrélées

Salut,

le cours que tu mets en lien est de toute beauté. Je suggère qu'il soit lu par le plus grand nombre qui souhaite en savoir un peu plus sur les probas, et je pense en particulier à yoshi qui commence à avoir de bons réflexes en probabilité et à nerosson pour maintenir grand ouvert son esprit sagace.

je reviens te dire comment on fait pour générer des va gaussiennes non indépendantes, mais j'ai presque envie de te murmurer qu'avec un minimum de réflexion sur ce que sont des variables aléatoires liées, tu devraient facilement trouver.

Par exemple, si Y est une va corrélée à X, il te suffit d'écrire [tex]Y=aX+b+\epsilon[/tex] avec X VA gaussienne et Epsilon va gaussienne centrée réduite et hop, tu as la somme de deux va gaussiennes = une va gaussienne dont tu peux calculer l'espérance,  la variance et la corrélation avec X. Qu'en penses tu ?

La seule vraie astuce à connaître est comment générer un va uniforme (ou gaussienne).

Dernière modification par freddy (20-08-2010 09:03:21)

Hors ligne

#3 19-08-2010 15:43:43

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 385

Re : Simulation de variables normales corrélées

Salut,

Je ne connais rien à MatLab...
Cela dit, si tu me montres (ou freddy) un exemple numérique à la main, je peux probablement te bricoler un programme en Python, suffisamment documenté pour être adaptable à matlab par qq qui le connaît...
As-tu essayé le Forum de MatLab ?...
http://www.developpez.net/forums/f148/e … nt/matlab/

Cela, freddy pourra probablement te bricoler ça avec Excel, ensuite si nécessaire, je peux t'adapter ça  avec scalc, le tableur d'OpenOffice (je ne travaille plus avec la suite Office de chez PetitMou)

@+

PS
Bin vala, le temps que je remettre la main sur l'url du forum Matlab, freddy-zorro est arrivé...

Dernière modification par yoshi (19-08-2010 15:45:08)

Hors ligne

#4 19-08-2010 22:57:33

marin marais
Membre
Inscription : 25-07-2010
Messages : 41

Re : Simulation de variables normales corrélées

Bonsoir et merci,

En fait, la fonction existe sur MatLab... Je viens de la trouver à force de chercher sur le ouèb (l'aide en ligne de ce logiciel est très bien faite, quand le nom de la fonction est connu, sans ça...). Il s'agit de la fonction "mvnrnd". En input, il faut le vecteur des espérances mathématiques des n variables, la matrice de variance-covariance et le nombre de simulations.

Il eût été plus simple que je pose la question sur un forum MatLab. Tu as raison, Yoshi. Cependant, je remercie Freddy pour son invitation à la réflexion sur les variables corrélées. J'avais commencé à écrire un algorithme selon le même principe que ce que tu écris, Freddy, quand j'ai trouvé la fonction existante. Mais ce n'est pas du temps perdu. L'emploi d'une fonction toute prête peut s'avérer pernicieux s'il ne s'accompagne pas de la compréhension du principe sous-jacent.

J'en veux pour exemple l'enseignement que j'ai reçu, orienté ingénieur. En tant que géomètre, j'ai appris à utiliser les yeux fermés les compensations par moindres carrés, sans jamais réfléchir à la signification de la matrice de variance-covariance des paramètres qui intervient dans le calcul. Je n'aurais pas été amené à faire des simulations au cours de mon doctorat, je ne me serais sans doute jamais posé la question de ce qui lie, qualitativement et quantitativement des variables corrélées, ni de savoir quels sont les outils à disposition pour exploiter cette relation.

C'est aujourd'hui que je commence à entrevoir l'intérêt de ce que j'ai "avalé" en prépa... Mieux vaut tard que jamais... Je suis heureux d'avoir trouvé ce cours en ligne. Je crois que ça va bien m'aider à progresser.

Merci encore et bonne nuit.
Thomas.

Hors ligne

#5 21-08-2010 05:10:15

soufiwan
Invité

Re : Simulation de variables normales corrélées

Bonjour,
Il me semble qu'il y'a la décomposition de Cholesky qui doit répondre à ta problématique.
Cependant, l'application à plus de valeurs semble non trivial (a vrai dire, j'ai voulu essayer une fois et ca m'a bien piqué) mais faisable...
En tout cas merci, je vais pouvoir m'amuser avec mvnrnd :) qui était bien caché sous mon MATLAb
@ freddy, je cite:
"La seule vraie astuce à connaître est comment générer un va uniforme (ou gaussienne)."
je ne comprend pas trop ce qui ne va pas dans cet étape puisque les générateurs de nombres aléatoires sont très commode à utiliser (Exel, VBA et surtout MATLAB)
(désolé pour l'éventuel naïveté de la question)
Cordialement

#6 21-08-2010 10:11:03

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Simulation de variables normales corrélées

Salut soufiwan,

la théorie dit qu'il suffit d'avoir une générateur aléatoire d'une va uniforme pour simuler n'importe quelle va.

En pratique, les fonctions random présentent un sérieux défaut : si on se contente de quelques nombres "au hasard", OK ; si on en veut beaucoup, il y a de fortes chances que le générateur donne une suite périodique de nombre "au hasard". Donc des nombres plus du tout au hasard ...

Tu peux prendre connaissance de ces post : http://www.bibmath.net/forums/viewtopic.php?id=3876 et de http://fr.wikipedia.org/wiki/G%C3%A9n%C … %A9atoires pour voir où se trouve le problème.

Bonne lecture.

Hors ligne

#7 21-08-2010 19:23:26

soufi-one
Membre
Inscription : 21-08-2010
Messages : 1

Re : Simulation de variables normales corrélées

D'accord !
je crois que j'ai saisi la limite
dès que les simulations sont de l'ordre de millions d'observation....
Merci

Hors ligne

#8 21-08-2010 20:14:54

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Simulation de variables normales corrélées

Oh non, bien souvent, on atteint la limite à 1000 simulations ...

C'est pourquoi la méthode de mersernne twister est très puissante, mais lourde à mettre en place. Il faut de la puissance machine !

Hors ligne

#9 19-10-2012 11:15:54

ssako
Invité

Re : Simulation de variables normales corrélées

Bonjour,

Je souhaite générer un code VBA qui fera une simulation Monte Carlo d'actifs corrélés dont les données sont extraites de Bloomberg.
La première mission du code sera de récupérer la matrice de corrélation extraite de Bloomberg et stockée dans une feuille de calcul Excel.
Ensuite et s'agira d'effectuer la décomposition de Cholesky de cette matrice et enfin il faudra effectuer une simulation Monte Carlo sachant que le processus suivi par le prix des différents actifs corrélés est le suivant :
S(Tk) = S(Tk-1)exp[{(r)-0.5*sigma²}(Tk - Tk-1)+SQRT(Tk - Tk-1)Xi]
Etant un débutant en VBA, je ne sais comment démarrer et ) beaucoup de mal à mettre tout ça en oeuvre.

Par avance pour votre aide.

#10 20-10-2012 15:09:03

totomm
Membre
Inscription : 25-08-2011
Messages : 1 093

Re : Simulation de variables normales corrélées

Bonjour,

Excel, VBA,  j'ai pratiqué. alors s'il s'agit de l'accès au VBA fourni avec Excel je peux intervenir ; s'il s'agit des traitements spécifiques aux matrices et à la décomposition de Cholesky, ce n'est pas dans mon domaine.

Quand j'ai eu à programmer en VBA, j'ai commencé par enregistrer des macros. En accédant à la modification des macros on voit bien comment le VBA traite des liaisons entre des données des feuilles Excel et les données traitées en VB normal. Pour une programmation conséquente il vaut donc mieux prendre le VB extérieur à Excel (VB 2008 ou 2010 express) en acquérant le contenu initial des feuilles à traiter (on trouve comment faire chez Microsoft ou dans des tutoriels)

donc à+ si vous le désirez

Edit : suppression du t de "fournit avec Excel"

Dernière modification par totomm (20-10-2012 19:14:29)

Hors ligne

#11 21-12-2012 15:30:31

ssako
Invité

Re : Simulation de variables normales corrélées

Merci beaucoup pour votre réponse.

Pied de page des forums