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

R Discussion :

analyse croisée de toutes les variables d'un tableau


Sujet :

R

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut analyse croisée de toutes les variables d'un tableau
    Bonjour
    J'ai un data.frame à 32 variables (en colonnes) et 125 individus en ligne.
    J'aimerais effectuer un test croisé (du chi² en l'occurence) de toutes les variables entre elles.
    J'arrive a croiser une variable avec toutes les autres avec cette instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    round((sapply(tableauanalysechideux[,2:32],function(x)chisq.test(tableauanalysechideux$SEXE,x)$p.value)),3)
    ou celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    chisq.pvalue <- function(x) {
             chisq.test(tableauanalysechideux$SEXE,x)$p.value
    }
    sapply(tableauanalysechideux[,2:32],chisq.pvalue)
    mais pas de toutes les variables entre-elles.
    J'ai essayé ceci mais sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    analysechideux <- function(x) chisq.test(table(ex$x,ex$y))
    x<- tableauanalysechideux[,2:32]
    y<- tableauanalysechideux[,2:32]
    analysechideux(x,y)
    Je pense que la solution est assez simple mais je stagne depuis un bout de temps.

    merci d'avance de vos suggestions

  2. #2
    Membre confirmé
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (i in 1:(ncol(USJudgeRatings) - 1)) {
     for (j in (i+1):ncol(USJudgeRatings)) {
      print(paste("Chisq.test between : ", colnames(USJudgeRatings)[i], " and ", colnames(USJudgeRatings)[j], sep=""))
      print(chisq.test(USJudgeRatings[, i], USJudgeRatings[, j])$p.value)
     }
    }
    Un truc dans ce genre là, non?

    HTH

    Vincent

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse.
    Je vais l'essayer pour voir.

    Pour n'obtenir que la valeur p d'un test du chi² :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    resultatschi²<-matrix(0,nrow=dim(variablesqualitatives)[2],ncol=dim(variablesqualitatives)[2])
    colnames(resultatschi²)<-names(variablesqualitatives)
    rownames(resultatschi²)<-names(variablesqualitatives)
    for(i in 1:(dim(variablesqualitatives)[2])){
       for(j in i:(dim(variablesqualitatives)[2])){
           resultatschi²[i,j]<-chisq.test(variablesqualitatives[,i],variablesqualitatives[,j])$p.value
           }
       }
    round((resultatschi²),4)
    Pour n'obtenir que la valeur de p pour une régression linéaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #construction du tableau
    resultatsreglin<-matrix(0,nrow=dim(variablesquantitatives)[2],ncol=dim(variablesquantitatives)[2])
    colnames(resultatsreglin)<-names(variablesquantitatives)
    rownames(resultatsreglin)<-names(variablesquantitatives)
     
    # boucle de programmation
    for(i in 1:(dim(variablesquantitatives)[2])){
       for(j in i:(dim(variablesquantitatives)[2])){
           resultatsreglin[i,j]<-round((summary(lm(variablesquantitatives[,i]~variablesquantitatives[,j], data=variablesquantitatives))$coef[,"Pr(>|t|)",drop=F][2,]),4)
           }
       }
    resultatsreglin
    Je galère maintenant pour ajouter automatiquement la droite de régression sur l'ensemble de mes graphiques "plot".

    Merci.


    [EDIT]

    Pour les graphiques j'ai trouvé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    par(ask=T,mfrow=c(5,5))
    for(i in 1:(dim(variablesquantitatives)[2])){
       for(j in i:(dim(variablesquantitatives)[2])){
           plot(variablesquantitatives[,i],variablesquantitatives[,j], ylab=names(variablesquantitatives)[j],xlab=names(variablesquantitatives)[i],col="blue")
           abline(lm(variablesquantitatives[,i]~variablesquantitatives[,j], data=variablesquantitatives),col="red")
    }
       }

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

Discussions similaires

  1. [XL-2010] Sélectioner toutes les variables de mon tableau de variable prédéfinie?
    Par Enjou dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/02/2015, 11h58
  2. Réponses: 6
    Dernier message: 04/03/2007, 19h16
  3. Comment effacer toutes les variables de sessions en une fois
    Par dessinateurttuyen dans le forum Langage
    Réponses: 4
    Dernier message: 03/08/2006, 09h20
  4. Récupérer toutes les variables commençant pareil
    Par Leobaillard dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2006, 15h14
  5. [FLASH 8] Toutes les variables
    Par Destiny dans le forum Flash
    Réponses: 2
    Dernier message: 08/03/2006, 16h20

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