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

Tests d'hypothèse Discussion :

kolmogorov-smirnov et histogrammes


Sujet :

Tests d'hypothèse

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut kolmogorov-smirnov et histogrammes
    Bonjour,

    j'ai un petit problème, voici mon code :

    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
    comparaison<-function(A,B){
      mydata1<-read.csv(A,sep="\t",header=TRUE)
      mydata2<-read.csv(B,sep="\t",header=TRUE)
    liste_champs<-c(5,9,12)
    for (i in 1:length(liste_champs)){
      indice<-liste_champs[i];
      new_column2<-mydata1[,indice]
      old_column2<-mydata2[,indice]
      kolgo<-ks.test(new_column2,old_column2)
     
    ======================================
     
      print(kolgo)
      par("mfrow"=c(2,1))
      hist1<-hist(new_column2,col="red",freq=FALSE,xlab="Valeurs",breaks=50,main=paste("new: ",names_new2[indice]))
      hist2<-hist(old_column2,col="blue",freq=FALSE,xlab="Valeurs",breaks=50,main=paste("old: ",names_old2[indice]))
     
    }
    J'ai donc 2 fichiers à traiter simultanément. J'aimerais en fonction du résultat du test de kolmogorov smirnov, ne pas réaliser d'histogramme si on ne rejette pas l'hypothèse et réaliser 2 histogrammes afin de comparer la distributivité des variables si on rejette l'hypothèse de départ. Est-ce possible? Et si oui, comment? la portion de code manquante est symbolisée par les "================="
    J'espère avoir été clair.

  2. #2
    Membre habitué
    Homme Profil pro
    Analyste
    Inscrit en
    Février 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Février 2012
    Messages : 62
    Points : 143
    Points
    143
    Par défaut
    Bonjour,

    Vous y étiez pourtant presque ! Mais pour commencer, si mes souvenirs sont bons, l'hypothèse H0 est rejetée si la p_value est inférieure au seuil de risque choisi (c'est bien cela ?). Dans ce cas il suffit d'utiliser une condition if sur le résultat de votre test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (kolgo$p.value < 0.05){
           faire deux histogrammes
    }else{
           ne rien faire ou faire autre chose
    }
    Ici j'ai choisi le seuil le plus fréquent : 5%.
    En espérant avoir été utile,

    Bonne journée.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    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
    comparaison<-function(A,B){
      mydata1<-read.csv(A,sep="\t",header=TRUE)
      mydata2<-read.csv(B,sep="\t",header=TRUE)
      names_mydata1<-c("GbinNumber","ExtSourceId","alpha","delta","Distance","muAlpha","muDelta","RV","mass","magG","V-I","noComponents","compExtSourceId1","OrbitPeiod1","mass1","magG1","V-I1","compExtSourceId2","OrbitPeriod2","mass2","magG2","V-I2","compExtSourceId3","OrbitPeriod3","mass3","magG3","V-I3","compExtSourceId4","OrbitPeriod4","mass4","magG4","V-I4","compExtSourceId5","OrbitPeriod5","mass5","magG5","V-I5")
      names_mydata2<-c("GbinNumber","ExtSourceId","alpha","delta","Distance","muAlpha","muDelta","RV","mass","magG","V-I","noComponents","compExtSourceId1","OrbitPeiod1","mass1","magG1","V-I1","compExtSourceId2","OrbitPeriod2","mass2","magG2","V-I2","compExtSourceId3","OrbitPeriod3","mass3","magG3","V-I3","compExtSourceId4","OrbitPeriod4","mass4","magG4","V-I4","compExtSourceId5","OrbitPeriod5","mass5","magG5","V-I5")
    liste_champs<-c(5,9,12)
    for (i in 1:length(liste_champs)){
      indice<-liste_champs[i];
      new_column2<-mydata1[,indice]
      old_column2<-mydata2[,indice]
      kolgo<-ks.test(new_column2,old_column2)
      print(kolgo)
      if (kolgo$p.value < 0.05){
      par("mfrow"=c(2,1))
      hist1<-hist(new_column2,col="red",freq=FALSE,xlab="Valeurs",breaks=50,main=paste("new: ",names_mydata1[indice]))
      hist2<-hist(old_column2,col="blue",freq=FALSE,xlab="Valeurs",breaks=50,main=paste("old: ",names_mydata2[indice]))
      summary(old_column2)
      summary(new_column2)
      }else{
        ;
      }
      }
    }
    avec ceci , j'obtiens ce message d'erreur lorsque je teste ma fonction et je ne vois pas pourquoi :
    Erreur dans `[.data.frame`(mydata1, , indice) : undefined columns selected

  4. #4
    Membre habitué
    Homme Profil pro
    Analyste
    Inscrit en
    Février 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Février 2012
    Messages : 62
    Points : 143
    Points
    143
    Par défaut
    Sans informations supplémentaires sur les données, j'ai bien peur de ne pas pouvoir aider. Combien de colonnes contiennent vos data frames ?

    PS : D'un point de vue purement esthétique vous pouvez supprimer le else s'il n'y a aucun script à exécuter en cas de p_value > 0.05 .

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Oui , en effet, Merci.
    J'ai au total 37 colonnes , mais je ne fais les histogrammes que sur les colonnes 5, 9 et 12 pour le test.

  6. #6
    Membre habitué
    Homme Profil pro
    Analyste
    Inscrit en
    Février 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Février 2012
    Messages : 62
    Points : 143
    Points
    143
    Par défaut
    Je viens de tester votre code avec des data frames de 37 colonnes chacun et... il tourne.

    Toujours l'erreur de votre côté?

Discussions similaires

  1. Distance de Kolmogorov Smirnov entre deux courbes
    Par julinge dans le forum MATLAB
    Réponses: 3
    Dernier message: 22/10/2014, 14h49
  2. Test de Kolmogorov-Smirnov
    Par Mill5 dans le forum SAS STAT
    Réponses: 7
    Dernier message: 29/12/2011, 18h39
  3. Test de Kolmogorov Smirnov
    Par yemal dans le forum MATLAB
    Réponses: 0
    Dernier message: 07/12/2011, 20h22
  4. [Débutant] stat du test de kolmogorov-smirnov
    Par bastonman dans le forum MATLAB
    Réponses: 15
    Dernier message: 30/07/2009, 13h08
  5. Code Test Kolmogorov-Smirnov 2D 2echantillons Matlab
    Par DDDDfish dans le forum MATLAB
    Réponses: 3
    Dernier message: 21/07/2008, 11h07

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