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 :

Code Test Kolmogorov-Smirnov 2D 2echantillons Matlab


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    juillet 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : juillet 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Code Test Kolmogorov-Smirnov 2D 2echantillons Matlab
    Bonjour,
    Je travaille sur des données de terrain de mouvements d'animaux, et voudrais déterminer à l'aide d'un test statistique de KS2D2S si les données de 2 échantillons peuvent être considérées "indépendantes". J'ai lu la façon dont traiter le problème pour programmer un tel test, d'apres Peacock, Fasano et Franceschini... j'ai trouvé le code correspondant en langage C++(que je ne connais pas), mais aurais besoin d'un équivalent en langage Matlab. J'ai tenté de programmer moi-même ce test en Matlab, mais ne suis pas sur de ce que j'ai fait et je pense qu'il existe des solutions plus efficaces... Si quelqu'un avait une version de ce test en langage matlab, cela me serait donc d'une grande aide !
    Merci !!

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Bonjour,
    Je pense que tu dois pouvoir trouver déjà pas mal de codes sur le Net en cherchant un peu.
    Après si tu as déjà codé quelque chose et que tu veux des avis (optimisation, amélioration du code) là on pourra plus t'aider.
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    juillet 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : juillet 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Merci pour votre reponse. Apres avoir longuement cherche sur internet, je n'ai pas trouve de code pour ce test en langage matlab. J'ai donc code celui-ci, mais ne suis pas certain de l'exactitude de mon programme, et pense que celui-ci pourrait etre bien mieux optimise, de plus... (je suis loin d'etre confirme en programmation Matlab). Voici donc une partie du code :
    pour obtenir d1 :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    D1=zeros(length(K),4);
    nb1=zeros(length(K),4);
    nb2=zeros(length(K),4);
     
    for i=1:length(K)
     
        for j=1:length(K)
            if (K(j,1)>K(i,1))&&(K(j,2)>K(i,2))
                nb1(i,1)=nb1(i,1)+1;
            else  nb1(i,1)=nb1(i,1);
            end
     
            if (K(j,1)>K(i,1))&&(K(j,2)<K(i,2))
                nb1(i,2)=nb1(i,2)+1;
            else  nb1(i,2)=nb1(i,2);
            end
     
            if (K(j,1)<K(i,1))&&(K(j,2)<K(i,2))
                nb1(i,3)=nb1(i,3)+1;
            else nb1(i,3)=nb1(i,3);
            end
     
            if (K(j,1)<K(i,1))&&(K(j,2)>K(i,2))
                nb1(i,4)=nb1(i,4)+1;
            else nb1(i,4)=nb1(i,4);
            end
        end
     
        for j=1:length(Q)
            if (Q(j,1)>K(i,1))&&(Q(j,2)>K(i,2))
                nb2(i,1)=nb2(i,1)+1;
            else  nb2(i,1)=nb2(i,1);
            end
     
            if (Q(j,1)>K(i,1))&&(Q(j,2)<K(i,2))
                nb2(i,2)=nb2(i,2)+1;
            else  nb2(i,2)=nb2(i,2);
            end
     
            if (Q(j,1)<K(i,1))&&(Q(j,2)<K(i,2))
                nb2(i,3)=nb2(i,3)+1;
            else  nb2(i,3)=nb2(i,3);
            end
     
            if (Q(j,1)<K(i,1))&&(Q(j,2)>K(i,2))
                nb2(i,4)=nb2(i,4)+1;
            else  nb2(i,4)=nb2(i,4);
            end
        end
     
    D1(:,1)=abs((nb1(:,1)/length(K))-((nb2(:,1)/length(Q))));
    D1(:,2)=abs((nb1(:,2)/length(K))-((nb2(:,2)/length(Q))));
    D1(:,3)=abs((nb1(:,3)/length(K))-((nb2(:,3)/length(Q))));
    D1(:,4)=abs((nb1(:,4)/length(K))-((nb2(:,4)/length(Q))));
    D1
    d1=max(max(D1))
    Ensuite, je refais de meme pour obtenir d2...
    Puis essaie d'obtenir la probabilite, pour avoir le resultat du test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     d=0.5*(d1+d2);
     n1=length(K);
     n2=length(Q);
     n=n1*n2/(n1+n2);
     sqen=sqrt(n); 
     
    R1=corrcoef(K);
    r1=R1(2,1);
    R2=corrcoef(Q);
    r2=R2(2,1);
    rr=sqrt(1.0-0.5*(r1*r1+r2*r2));
     
    p=calc_prks(d*sqen/(1.0+rr*(0.25-0.75/sqen)));
    Merci d'avance pour vos suggestions !!

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    En fait il y a l'air d'avoir une fonction qui fait ça dans MATLAB SI tu as la Statistic Toolbox : KSTEST.
    Je ne sais pas ce qu'elle vaut, n'ayant d'une part pas cette Toolbox, et d'autre part des connaissances très floues et lointaines en stats.

    Je regarde quand même ton code juste d'un point de vue programmation mais je ne pourrais rien te dire quant aux résultats.
    Règles du Forum

    Adepte de la maïeutique

Discussions similaires

  1. Test de Kolmogorov-Smirnov
    Par Mill5 dans le forum SAS STAT
    Réponses: 7
    Dernier message: 29/12/2011, 18h39
  2. Test de Kolmogorov Smirnov
    Par yemal dans le forum MATLAB
    Réponses: 0
    Dernier message: 07/12/2011, 20h22
  3. [Débutant] stat du test de kolmogorov-smirnov
    Par bastonman dans le forum MATLAB
    Réponses: 15
    Dernier message: 30/07/2009, 13h08
  4. Code test formulaire
    Par jcaspar dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/04/2007, 09h46
  5. Réponses: 4
    Dernier message: 01/03/2007, 13h19

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