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 :

[unicdf] et densite de probabilite


Sujet :

MATLAB

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 48
    Points
    48
    Par défaut [unicdf] et densite de probabilite
    Bonjour,

    J'ai une série temporelle (toms) dont les valeurs manquantes sont des nan. En utilisant la fonction , je vois bien que la distribution de ma série temporelles est quasi normale.

    Pour valider ces visualisations, j'aimerais calculer la densite de probabilité cumulée en utilisant . J'obtiens le message d'erreur suivant que je ne comprends pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    P = unidcdf(toms,min(toms):max(toms));
    ??? Error using ==> unidcdf
    Requires non-scalar arguments to match in size.
    De plus, si je veux effectuer un kstest sur ma série, j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [h,p] = kstest(toms,[])
     
    h =
     
         1
     
     
    p =
     
         0
    Je suis un peu perdu...

    merci de votre aide
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  2. #2
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    Salut,

    Avec ceci, tu devrait retrouver le chemin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    %
    % Densité & Tests Statistiques
    %
     
    clc
     
    % variable aléatoire suivant la loi N(5,4) ( E(X)=5 , var(X) = 4 ( donc std = 2) )
    varX = 5 + 2 * randn(1,500) + 0.5 * rand(1,500);
     
    % Estimé moyenne et écart type
    varE = mean(varX); 
    varS = std(varX);
     
    % La densité
    figure(1)
    plot(hist(varX))
     
    %
    % Test Loi Normal !!
    %
     
    % >> A ne pas faire 
    H = kstest(varX) 
    % H = 1 => hypothése rejetée (le test porte sur N(0,1))
     
    % >> A faire : réduire et centré la variable
    H = kstest((varX-varE)/varS) 
    % H = 0 => hypothése accépté à 5%,
    ++ bonne chance
    AlloSchool, votre école sur internet.

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    Merci pour le rappel, j'avais oublier de preciser que ma variable "toms" est centrée et réduite.
    Le résultat est toujours h=1 au kstest...
    Est-ce que la présence de nan dans ma série temporelle peux poser le probleme?
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  4. #4
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    Salut,

    pour éliminer les NAN :

    ++
    AlloSchool, votre école sur internet.

  5. #5
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    Merci pour le code, les nan j'ai appris à m'en défaire
    Mais malheureusement, ca ne change rien au resultat du kstest, toujours h=1...
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  6. #6
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    Le probleme persiste et je me demande comment faire une analyse spectrale (fft, ondelettes...) avec des nan dans la série temporelle d'origine à moins de se limiter aux valeurs réelles (sans nan).
    Certains "trous" dans la série sont "comblables" avec une interpolation linéaire mais d'autres non...
    J'imagine que la solution n'est pas toute prête mais si tu t'es déjà pensé dessus, je suis preneur de conseils.
    Egalement, s'il existe un test de stationnarité sous matlab ?
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  7. #7
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    Tu peux essayé par changer le risque dans tes tests, et aussi voir les autres tests statistiques.

    Je ne vois pas ce que tu veux dire par TROUS . En principe, éliminer des réalisations d'une variable aléatoire ne devrait pas changer sa loi . Tu n'es pas obligé de remplacer les NAN supprimés.

    ++
    AlloSchool, votre école sur internet.

  8. #8
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    En fait, les valeurs nan que j'ai correspondent à des périodes de "trous" dans les mesures (ici, mesures d'ozone intégré).

    Je ne penses pas que d'enlever des réalisations perturbe une distribution mais pour l'analyse spectrale ce n'est pas évident à gérer. De plus pour réaliser une analyse en ondelette, le choix de l'onde dépend de la distribution de la variable.

    Bonne soirée
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  9. #9
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    regardes du coté de la fonction INTERP.

    ++
    AlloSchool, votre école sur internet.

  10. #10
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 157
    Points : 107
    Points
    107
    Par défaut
    Salut,
    pour calculer ta densite de probabilité cumulée, tu peux peut être utiliser la fonction cdfcalc.m et pour la tracer: cdfplot.

    En ce qui concerne les tests de conformité à une loi normale, tu peux utiliser un test de shapiro-wilke (routine swtest.m trouvable sur internet) qui est plus robuste et plus conservateur.

    En espérant t'aider un peu

  11. #11
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    Merci ricololo, le tout fonctionne bien, y compris la routine swtest.m que j'ai effecitvement trouvé facilement.

    Par contre, ca ne change rien à mon probleme. Pour que tout soit clair, j'ai mis les figures concernant ma série temporelle (graph, histogramme, cdfplot et normplot) :

    http://www.woofiles.com/dl-172186-C5hukKBH-toms.jpg

    Le probleme reste que le resultat du test est toujours H=1 (voir ci-dessous) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    sst=toms;
    variance = std(sst(~isnan(sst)))^2;
    sst = (sst - mean(sst(~isnan(sst))))/sqrt(variance) ;
     
    [YCDF,XCDF] = cdfcalc(sst);
     
    [H, pValue, SWstatistic] = swtest(YCDF)
     
    H =
     
         1
     
     
    pValue =
     
         0
     
     
    SWstatistic =
     
        0.8663
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  12. #12
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    Salut,

    tu peux poster un fichier MAT contenant les observations?

    Sinon, SWTEST prend en entrée le vecteur des observations et non la fonction de répartition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [H, pValue, SWstatistic] = swtest(sst(~isnan(sst)))
    ++
    AlloSchool, votre école sur internet.

  13. #13
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    Voilou

    http://www.woofiles.com/dl-172190-weGYfx9m-toms.mat

    Pour le résultat du swtest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    [H, pValue, SWstatistic] = swtest(sst(~isnan(sst)))
    Warning: Shapiro-Wilk test might be inaccurate due to large sample size ( > 5000).
    > In swtest at 76
     
    H =
     
         1
     
     
    pValue =
     
         0
     
     
    SWstatistic =
     
        0.9918
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  14. #14
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    J'arrive pas à l'ouvrir.
    Met le en pièce jointe.

    ++
    AlloSchool, votre école sur internet.

  15. #15
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    désolé, j'espere que ca s'ouvrira mieux
    Fichiers attachés Fichiers attachés
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  16. #16
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    J'ai testé et j'ai le même résultat que toi .

    Conclusion: ta distribution ne suit pas une loi gaussienne.


    A voir la tête de la courbe de densité je dirais qu'il y a des chances que ça soit une distribution de Rayleigh.

    ++
    AlloSchool, votre école sur internet.

  17. #17
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 157
    Points : 107
    Points
    107
    Par défaut
    Salut,
    juste pour savoir:
    A quoi correspond géophysiquement ton vecteur sst?
    A+

  18. #18
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par mr_samurai Voir le message
    J'ai testé et j'ai le même résultat que toi .

    Conclusion: ta distribution ne suit pas une loi gaussienne.


    A voir la tête de la courbe de densité je dirais qu'il y a des chances que ça soit une distribution de Rayleigh.

    ++
    Merci d'avoir essayé, je vais pister du coté de la Rayleigh...
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  19. #19
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par ricololo Voir le message
    A quoi correspond géophysiquement ton vecteur sst?
    A+
    Le vecteur toms contient les valeurs des colonnes totales d'ozone mesurées par TOMS au dessus de la Réunion (ce qui explique le décalage horaire dans mes réponses)
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  20. #20
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 157
    Points : 107
    Points
    107
    Par défaut
    et le vecteur sst?

Discussions similaires

  1. Graphe de densité de probabilités
    Par henri228 dans le forum MATLAB
    Réponses: 4
    Dernier message: 04/05/2011, 14h23
  2. [Débutant] ajuster une densité de probabilité
    Par Elody73 dans le forum MATLAB
    Réponses: 4
    Dernier message: 18/05/2010, 22h54
  3. densité de probabilité d'un vecteur aléatoire
    Par Mrmeynis dans le forum MATLAB
    Réponses: 5
    Dernier message: 19/07/2009, 18h02
  4. Réponses: 2
    Dernier message: 13/11/2007, 15h37
  5. Densité de probabilité
    Par chianli dans le forum Probabilités
    Réponses: 3
    Dernier message: 07/11/2007, 09h35

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