Comment puis-je créer une matrice de corrélation de R?
J'ai 92 ensemble de données de même type.
Je veux faire une matrice de corrélation pour toutes les deux combinaison possible.
c'est à dire je veux une matrice de 92 x92.
tels que l'élément (ci,cj) devrait être de corrélation entre ci et cj.
Comment dois-je faire?
- Jetez un oeil à la
cor
fonction, ou à larcorr
fonction dans leHmisc
paquet - Je suis en mesure de trouver le co entre les deux paramètres. Le truc, c'est la façon de les disposer dans la matrice?
- Comment pouvait-il donc beaucoup de upvotes?
Vous devez vous connecter pour publier un commentaire.
Un exemple,
Vous pouvez utiliser 'corrplot' paquet.
Plus d'informations ici: http://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html
La cor fonction utilise les colonnes de la matrice dans le calcul de la corrélation. Ainsi, le nombre de lignes doit être le même entre votre matrice x et de la matrice y. Ex.:
Edit:
Voici un exemple de ligne personnalisée et des étiquettes de colonne sur une matrice de corrélation calculé avec une seule matrice:
image(x=seq(dim(x)[2]), y=seq(dim(y)[2]), z=COR, col=rev(heat.colors(20)), xlab="x column", ylab="y column")
image
fonction ne fait pas automatiquement prendre la ligne et la colonne des noms, donc, ce doit être ajouté.Ont un coup d'oeil à qtlcharts. Il permet de créer des interactive des matrices de corrélations:
C'est plus impressionnant quand vous corrélation de plusieurs variables, comme dans le package de la vignette:
Il y a d'autres façons de faire cela ici: (Parcelle matrice de corrélation dans un graphique), mais j'aime bien ta version avec les corrélations dans les cases. Est-il possible d'ajouter les noms de variables de x et y de la colonne, au lieu de seulement ces numéros d'index? Pour moi, ce qui ferait une parfaite solution. Merci!
edit: j'ai essayé de commenter le post de [Marc dans la boîte], mais je ne sais pas ce que je fais. Toutefois, j'ai réussi à répondre à cette question pour moi.
si d est la matrice (ou l'original de la trame de données) et les noms de colonne sont ce que vous voulez, puis les ouvrages suivants:
las=0 retourner les noms de retour à leur position normale, la mine ont été long, j'ai donc utilisé las=2 pour les rendre perpendiculaire à l'axe.
edit2: pour supprimer l'image() la fonction d'impression de numéros sur la grille (sinon ils se chevauchent votre variable d'étiquettes), ajouter xaxt= "n", par exemple: