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 :

Passer d'une loi Uniforme à une loi Normale


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Passer d'une loi Uniforme à une loi Normale
    Bonjour à tous,

    Dans le cadre d'un projet que je réalise sur Matlab, je n'arrive pas à coder une étape.

    J'ai pour le moment une fonction de densité avec comme variables deux fonctions de répartitions. J'ai donc un graphique 3d avec en x et en y une fonction de répartion sur [0-1] et en z ma fonction de densité.

    Je dois maintenant passer sur des axes x et y [-3;3] c'est à dire des variables N(0,1). Il faut donc que je transforme mes variables et ma fonction de densité.

    Est-ce que quelqu'un a déjà été confronté à ce problème et connait le code matlab??? Ou alors qq'un a t-il une intuition???

    Merci pour vos réponses!
    Chloé

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut fonction de repartition inverse
    Bonjour,

    J'attire déjà ton attention sur le fait qu'une gaussienne prends des valeurs non bornées (et donc > 3).

    Il me semble que ce que tu essayes de faire, c'est d'appliquer le lemme suivant:
    si U suit une loi uniforme sur [0,1], alors X= F^(-1)(U) suit la loi de fonction de distribution F..

    Pour une loi avec des atomes, F^(-1) est l'inverse généralisée, mais tu n'aura pas ce problème avec le loi Gaussienne.

    Si tes deux coordonnées (U1,U2) sont indépendantes, le problème sera beaucoup plus simple (inverser la fonction de répartition gaussienne monovariée sur chaque coordonnées -> fonction norminv() sous matlab).

    Si tes 2 coordonnées sont dépendantes, il faut utiliser pour F la fonction de répartition du couple, ce qui est plus désagréable à inverser (fonction de 2 variables).
    Note de plus que mathématiquement, il est tout à fait possible dans ce cas que même si les coordonnées obtenues sont chacune gaussienne, le couple (X1,X2) ne soit pas gaussien.

    Une solution intermédiaire consiste à inverser chaque coordonnée comme si elle étaient indépendantes, et à tenir ensuite compte de la corrélation. C'est ce que je te conseille de faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    T=1000;
    U= rand(T,2);
    X1 = norminv(U(:,1),0,1);
    X2 = norminv(U(:,2),0,1);
    plot(X1,X2,'k.');
    -VV

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci d'avoir répondu à mon message ^^

    Je vais essayer de faire ce que tu m'as dis,cependant je ne pense pas que ca résolve tout mon problème. En effet, voila ce que je cherche à faire :
    http://www.thierry-roncalli.com/down...pula-Ensai.pdf

    page 14 de l'article (graphique en 3D et contour plot sur axe univarié puis sur N(o,1) )

    Je ne sais pas si tu t'y connais en copulas! Pour le moment j'ai estimé mes marges (fonction de répartition) puis estimé la densité de la copule avec un kernel.. j'ai fait un graphique 3D puis un contour plot et j'obtiens donc les premiers graphes. Je dois maintenant tout transformé pour passer sur du N(0,1).

    Penses-tu que je peux utiliser ce que tu m'as dis dans ce cas? (Faire de manière séparée?) Car le but d'une copule est de garder la dépendance...

  4. #4
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Je pense que ca répond à ton problème, pour plusieurs raisons:

    - La très grande majorité des applications utilisant des copules le font coordonnée à coordonnée, tout simplement car ce n'est pas viable en grande dimension

    - Même en traitant chaque coord. séparement, tu conserve une dépendance (si les transformées étaient indépendante, les uniformes originales le seraient également -quelquesoit f,g mesurable blablabla).

    - Note que dans ce cas il peut etre dangereux de croire que le vecteur transformé est gaussien. En effet, en cas de corrélation nulle, tu va croire les variables indépendantes alors que ce n'est pas forcément le cas. Ici le pb vient d'une utilisation abusive de la gaussienne, pas du principe des copules. C'est pourquoi je préfère personnellement utiliser une copule uniforme plutot que gaussienne sur données réelles.

    - Sur le graphe page 14, les coord. ont l'air indépendantes. Dis toi aussi qu'il existe une infinité de loi d'un couple à marginale uniforme ayant une correl donnée.

    Sinon, vous avez l'air de bien vous amusez à 'ENSAI ;-)

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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