IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Simulation de variables gaussiennes dépendantes [Débutant]


Sujet :

MATLAB

  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut Simulation de variables gaussiennes dépendantes
    Bonjour,

    je veux simuler des Zi qui suivent une loi normale mais qui sont dépendantes.
    Plus exactement, j'ai une matrice de covariance E et je connais u.
    Zi ~ N(u,Eii) ET cov (Zi,Zj)=Eij.
    Avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    u+sqrtm(Eii)*randn(1,1)
    j'obtiens des variables de lois N(u,Eii) mais je ne vois pas comment faire entrer la covariance en jeu?

    Tout ce que j'ai trouvé, c'est la méthode de Box-Muller qui, justement, donne des variables indépendantes

    Quelqu'un aurait une piste, svp?
    Merci d'avance !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 134
    Points : 129
    Points
    129
    Par défaut
    Si tes variables sont indépendantes alors celles-ci sont non corrélées (de covariance nulle). Par conséquent la matrice de variance-covariance de telles variables est une matrice diagonale (dont les éléments diagonaux sont les variances correspondantes).

    Donc ; Zi ~ N(u, Eii) avec COV(Zi,Zj)=0, i≠j.

    randn(taille de l'échatillon, nombre de variables)*E+u
    Au taf : Quad Core/8Go de RAM sous Win Seven 64 - Matlab 2009b 64bit.
    Perso : Core 2 Duo/8Go de RAM Mac OS X 10.6 - Matlab 2009b 64bit

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    Citation Envoyé par HAL-9000 Voir le message
    Si tes variables sont indépendantes alors celles-ci sont non corrélées (de covariance nulle). Par conséquent la matrice de variance-covariance de telles variables est une matrice diagonale (dont les éléments diagonaux sont les variances correspondantes).

    Donc ; Zi ~ N(u, Eii) avec COV(Zi,Zj)=0, i≠j.

    randn(taille de l'échatillon, nombre de variables)*E+u
    Merci pour cette réponse.
    Malheureusement, mon problème est justement que les variables sont dépendantes (avec des covariances non nulles).
    Si vous avez une idée ou une référence sur l'introduction des covarianvces dans la simulation, svp

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 134
    Points : 129
    Points
    129
    Par défaut
    la formule ne change pas ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    randn(taille de l'échatillon, nombre de variables)*E+u
    Au taf : Quad Core/8Go de RAM sous Win Seven 64 - Matlab 2009b 64bit.
    Perso : Core 2 Duo/8Go de RAM Mac OS X 10.6 - Matlab 2009b 64bit

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par lilly74 Voir le message
    Bonjour,

    je veux simuler des Zi qui suivent une loi normale mais qui sont dépendantes.
    Plus exactement, j'ai une matrice de covariance E et je connais u.
    Zi ~ N(u,Eii) ET cov (Zi,Zj)=Eij.
    Avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    u+sqrtm(Eii)*randn(1,1)
    j'obtiens des variables de lois N(u,Eii) mais je ne vois pas comment faire entrer la covariance en jeu?

    Tout ce que j'ai trouvé, c'est la méthode de Box-Muller qui, justement, donne des variables indépendantes

    Quelqu'un aurait une piste, svp?
    Merci d'avance !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Z = u(:,ones(1,N)) + chol(E)'*randn(d,N);

    avec d la dimension de ton vecteur et N le nombre d'échantillons à générer

    Toute matrice de covariance S s'écrit sous la forme S = R'R.

  6. #6
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut Merci!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Z = u(:,ones(1,N)) + chol(E)'*randn(d,N);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Simulation de variables gaussiennes dépendantes
    Par joyeux_lapin13 dans le forum MATLAB
    Réponses: 4
    Dernier message: 06/12/2009, 23h16
  2. [C#] Simuler une variable de session en C#
    Par dinbougre dans le forum C#
    Réponses: 11
    Dernier message: 01/10/2007, 12h01
  3. générer des variables gaussiennes
    Par deubelte dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 08/05/2007, 10h41
  4. Réponses: 4
    Dernier message: 18/04/2007, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo