Avis sur la corrélation

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Romain Lecachey
Messages : 33
Enregistré le : 10 Avr 2007, 08:57

Avis sur la corrélation

Messagepar Romain Lecachey » 18 Mai 2007, 09:28

Bonjour à tous !
je suis en ce moment en train d'implémenter des fonctions statistiques sous R dans le but de les intégrer dans un WebService.
Je voudrais avoir votre avis sur la façon de représenter l'existence ou non de corrélations entre les variables de ma BD. Je parle essentiellement du point de vue graphique !
Je pensais à une matrice colorée en fonction du niveau de corrélation mais je ne vois pas trop comment m'y prendre !
Merci d'avance pour toutes suggestions !
@+

lufcagqudhqqf

dtrbt81 nepykgcxmnl40

Messagepar lufcagqudhqqf » 18 Mai 2007, 10:43

best site! thanks!
<a href="http://eyfzdu./" >eyfzdu.</a>

Samir Messad
Messages : 76
Enregistré le : 10 Jan 2005, 20:56

Messagepar Samir Messad » 18 Mai 2007, 12:57

voir également l'item Correlation Matrix sur le site R graph Gallery :
http://addictedtor.free.fr/graphiques/R ... ?graph=137
Il s'agit d'une fonction optionnelle à appliquer à pairs()

Cordialement.

Samir Messad

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 18 Mai 2007, 12:58

Voir aussi ?pairs ou son équivalent ?splom dans le package lattice. Moins immédiat à visualiser que

Code : Tout sélectionner

image(cor(data))

mais présente le gros avantage (décisif, à mon avis) de représenter la forme de la relation entre les variables: on peut avoir une excellente corrélation et une relation franchement non linéaire.

Renaud

Romain Lecachey
Messages : 33
Enregistré le : 10 Avr 2007, 08:57

Messagepar Romain Lecachey » 18 Mai 2007, 13:55

Merci à vous !
maintenant j'ai de quoi faire, je penche plutôt sur l'exemple donné sur le site R graph Gallery, il m'a l'air bien sympa !
Encore merci et bonne continuation...

Romain Lecachey
Messages : 33
Enregistré le : 10 Avr 2007, 08:57

Messagepar Romain Lecachey » 18 Mai 2007, 14:07

Escusez moi de vous redéranger mais j'ai tenté de reprendre le code donné en exemple mais avec mes modifications, j'obtiens une erreur :

Erreur dans postscript(file = cmd, width = width, height = height, pointsize = pointsize, :
trop de périphériques ouverts


Savez ce que ça veut dire et à quoi peut être dûe cette erreur ?
ps : j'ai le même code que l'exemple ( pour tester ) sauf que je veux sauvegarder mon image grâce à

Code : Tout sélectionner

bitmap("/home/rom/cor","png256",width=10,height=10,res=72,pointsize=12)
pairs(tab[,c(1,2)], lower.panel=panel.smooth, upper.panel=testCorr)
dev.off()


C'est à cause de ça ?
Merci d'avance pour votre aide !
@+

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 18 Mai 2007, 19:12

Je pense que vous avez différents devices ouverts que vous avez dû oublier de refermer. Faire un graphics.off() par mesure de précaution.

A part ça, utiliser plutôt bmp. La fonction bitmap suppose en effet que vous avez le logiciel ghostscript installé sur votre machine et la variable d'environnement PATH correctement configurée pour son utilisation à partir de n'importe quel répertoire.

Renaud

Romain Lecachey
Messages : 33
Enregistré le : 10 Avr 2007, 08:57

Messagepar Romain Lecachey » 21 Mai 2007, 08:28

Bonjour,

Le problème persiste...
J'ai pourtant rajouté un graphics.off() comme tu l'as conseillé et j'ai opté pour un "png" pour remplacer mon "bitmap" (car il ne connaissait pas "bmp" :? )
Voici ma fonction :

Code : Tout sélectionner

panel.cor <- function(echantillon1, echantillon2, digits=2, prefix="", cex.cor)
{
    usr <- par("usr"); on.exit(par(usr))
    par(usr = c(0, 1, 0, 1))
    r <- abs(cor(echantillon1, echantillon2))
    txt <- format(c(r, 0.123456789), digits=digits)[1]
    txt <- paste(prefix, txt, sep="")
    if(missing(cex.cor)) cex <- 0.8/strwidth(txt)

    test <- cor.test(echantillon1, echantillon2)
    # borrowed from printCoefmat
    Signif <- symnum(test$p.value, corr = FALSE, na = FALSE,
                  cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1),
                  symbols = c("***", "**", "*", ".", " "))

    text(0.5, 0.5, txt, cex = cex * r)
    text(.8, .8, Signif, cex=cex, col=2)

png("/home/rom/cor",width=10,height=10,res=72,pointsize=12)
tabCo=data.frame(echantillon1, echantillon2)
pairs(tabCo[,c(1,2)],
  lower.panel=panel.smooth, upper.panel=panel.cor)
dev.off()
graphics.off()
}


Et le message d'erreur :

> panel.cor(b,c)
Erreur dans png("/home/rom/cor", width = 10, height = 10, res = 72, pointsize = 12) :
trop de périphériques ouverts


Quelqu'un voit-il d'où cela pourrait venir ?
Merci d'avance pour votre aide, je galère !
@+

Romain Lecachey
Messages : 33
Enregistré le : 10 Avr 2007, 08:57

Messagepar Romain Lecachey » 22 Mai 2007, 09:45

Re-bonjour tout le monde !

Je suis toujours sur ma fonction et j'aurais besoin d'une petite précision :
ma fonction marche nickel mais je souhaiterais remplacer les étoiles servant à distinguer le degré de signification par un remplissage de différentes couleurs en font de chaque case !
Je ne sais pas si c'est possible mais je ne trouve pas grand chose permettant de le faire dans la fonction "symnum".
Voici ma fonction :

Code : Tout sélectionner

testCorr <- function(nomFichier , type_image , donnees , NbVariables)
{

panel.cor <- function(echantillon1, echantillon2, digits=1, prefix="", cex.cor)
{
    usr <- par("usr"); on.exit(par(usr))
    par(usr = c(0, 1, 0, 1))
    r <- abs(cor(echantillon1, echantillon2))
    txt <- format(c(r, 0.123456789), digits=digits)[1]
    txt <- paste(prefix, txt, sep="")
    if(missing(cex.cor)) cex <- 0.8/strwidth(txt)

    test <- cor.test(echantillon1, echantillon2)
    # borrowed from printCoefmat
    Signif <- symnum(test$p.value, corr = FALSE, na = FALSE,
                  cutpoints = c(0, 0.5, 0.7, 0.85, 0.95, 1),
                  symbols = c("***","**","*","."," "))
                  # col = c("green", "blue","orange","yellow","white"))
                  # -> dans ce genre mais ça ne marche pas ;-) : une idée ?
    if (txt > 0.5)
       text(0.5, 0.5, txt, cex = cex * r)
    else
       text(0.5, 0.5, txt, cex = 8 * cex * r)
           
 text(.75, .8, Signif, cex=cex, col=2)

}

bitmap(nomFichier,type_image,width=10,height=10,res=72,pointsize=12)
pairs(donnees[,c(1:NbVariables)],lower.panel=panel.smooth, upper.panel=panel.cor)
dev.off()
graphics.off()
}


Si quelqu'un avait donc une idée, ce serait cool !
Merci d'avance !
@+

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 22 Mai 2007, 12:28

Bonjour,

Je pense que tu peux arrivé au résultat en remplaçant :
Romain Lecachey a écrit :

Code : Tout sélectionner

Signif <- symnum(test$p.value, corr = FALSE, na = FALSE,
                  cutpoints = c(0, 0.5, 0.7, 0.85, 0.95, 1),
                  symbols = c("***","**","*","."," "))
                  # col = c("green", "blue","orange","yellow","white"))
                  # -> dans ce genre mais ça ne marche pas ;-) : une idée ?
    if (txt > 0.5)
       text(0.5, 0.5, txt, cex = cex * r)
    else
       text(0.5, 0.5, txt, cex = 8 * cex * r)
           
 text(.75, .8, Signif, cex=cex, col=2)


Par :

Code : Tout sélectionner

Signif <- symnum(test$p.value, corr = FALSE, na = FALSE,
                  cutpoints = c(0, 0.5, 0.7, 0.85, 0.95, 1),
                  symbols = c("green", "blue","orange","yellow","white"))
         polygon(c(0,1,1,0),c(0,0,1,1),border="black",col=Signif)


Maxime

Fabien Papeil
Messages : 6
Enregistré le : 16 Avr 2007, 12:18

Messagepar Fabien Papeil » 22 Mai 2007, 13:34

Salut Romain, je peu malheursement pas t'aider mais jte souhaite un bon courage pour ton stage :wink:
Fabien

Romain Lecachey
Messages : 33
Enregistré le : 10 Avr 2007, 08:57

Messagepar Romain Lecachey » 22 Mai 2007, 13:53

Merci Maxime ça marche nickel !
à bientôt peut-être !



Salut à toi aussi Mister Fabien !
Héhé, bien utile les forums ( surtout celui-ci ! ils sont calés les gars ! )
Bon courage à toi aussi pour ton stage ; ça se termine !
Il va falloir que je pense sérieusement à mon rapport ;-)
@+


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité