Visualiser une matrice de corrélation par un corrélogramme
- Introduction
- Installer le package corrplot
- Donn?es pour l?analyse de corr?lation
- Calcule de la matrice de corr?lation
- Corr?logramme : Visualisation de la matrice de corr?lation
- M?thodes de visualisation
- Les diff?rentes dispositions du corr?logrammes
- R?ordonner la matrice de corr?lation
- Changement de la couleur du corr?logramme
- Changement de la couleur et de la rotation des ?tiquettes de textes
- Combiner le corr?logramme avec le test de significativit?
- Personnaliser le corr?logramme
- Conclusions
- Infos
Introduction
Cet article d?crit comment dessiner un corr?logramme dans R. Un corr?logramme repr?sente le graphique d?une matrice de corr?lation. Le corr?logramme est tr?s important pour mettre en ?vidence les variables les plus corr?l?es. Dans cet type de graphique, les coefficients de corr?lation sont color?s en fonction de leur valeur. La matrice de corr?lation peut ?tre aussi r?ordonn?e en fonction du degr? de corr?lation entre les variables. Le package corrplot de R est utilis? dans ce document.
Installer le package corrplot
Le package corrplot est n?cessaire pour ex?cuter le code R dans cet article.
install.packages("corrplot")
Donn?es pour l?analyse de corr?lation
La table de donn?es mtcars est utilis?e pour calculer la matrice de corr?lation.
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
Calcule de la matrice de corr?lation
M<-cor(mtcars)
head(round(M,2))
mpg cyl disp hp drat wt qsec vs am gear carb
mpg 1.00 -0.85 -0.85 -0.78 0.68 -0.87 0.42 0.66 0.60 0.48 -0.55
cyl -0.85 1.00 0.90 0.83 -0.70 0.78 -0.59 -0.81 -0.52 -0.49 0.53
disp -0.85 0.90 1.00 0.79 -0.71 0.89 -0.43 -0.71 -0.59 -0.56 0.39
hp -0.78 0.83 0.79 1.00 -0.45 0.66 -0.71 -0.72 -0.24 -0.13 0.75
drat 0.68 -0.70 -0.71 -0.45 1.00 -0.71 0.09 0.44 0.71 0.70 -0.09
wt -0.87 0.78 0.89 0.66 -0.71 1.00 -0.17 -0.55 -0.69 -0.58 0.43
Corr?logramme : Visualisation de la matrice de corr?lation
La fonction corrplot est utilis?e pour faire le graphique de la **matrice de corr?lation.
Le format simplifi? de la fonction est:
corrplot(corr, method="circle")
| Arguments | Description |
|---|---|
| corr | La matrice de corr?lation ? visualiser. Pour visualiser une matrice quelconque, utiliser is.corr=FALSE. |
| method | M?thodes de visualisation : ?circle?, ?color?, ?number?, etc. |
M?thodes de visualisation
Sept m?thodes de visualisation diff?rentes peuvent ?tre utilis?es : ?circle?, ?square?, ?ellipse?, ?number?, ?shade?, ?color?, ?pie?.
library(corrplot)
corrplot(M, method="circle")

corrplot(M, method="pie")

corrplot(M, method="color")

Les corr?lations positives sont affich?es en bleu et les corr?lations n?gatives en rouge. L?intensit? de la couleur et la taille des cercles sont proportionnelles aux coefficients de corr?lation. A droite du corr?logramme, la l?gende de couleurs montre les coefficients de corr?lation et les couleurs correspondantes.
Afficher les coefficients de corr?lation :
corrplot(M, method="number")

Les diff?rentes dispositions du corr?logrammes
Il y a 3 dispositions diff?rentes :
- ?full? (par d?faut) : Affiche la Matrice de corr?lation en entier.
- ?upper?: Affiche le triangle sup?rieur de la matrice de corr?lation.
- ?lower?: Affiche le triangle inf?rieur de la matrice de corr?lation.
corrplot(M, type="upper")

corrplot(M, type="lower")

R?ordonner la matrice de corr?lation
La matrice de corr?lation peut ?tre r?ordonn?e en fonction du coefficient de corr?lation. Ceci est important pour identifier des profiles cach?s dans la matrice. La m?thode hclust (pour hierarchical clustering) est utilis?e dans les exemples ci-dessous.
# Corr?logramme avec rearrengement de type hclust
corrplot(M, type="upper", order="hclust")

# Utilisation de differents spectres de couleurs
col<- colorRampPalette(c("red", "white", "blue"))(20)
corrplot(M, type="upper", order="hclust", col=col)

# Changer la couleur de fond en lightblue
corrplot(M, type="upper", order="hclust", col=c("black", "white"),
bg="lightblue")

Changement de la couleur du corr?logramme
Comme montr? dans les sections ci-dessus, la couleur du corr?logramme peut ?tre personnalis?e. Les palettes de couleurs du package RcolorBrewer sont utilis?es dans le script ci-dessous :
library(RColorBrewer)
corrplot(M, type="upper", order="hclust",
col=brewer.pal(n=8, name="RdBu"))

corrplot(M, type="upper", order="hclust",
col=brewer.pal(n=8, name="RdYlBu"))

corrplot(M, type="upper", order="hclust",
col=brewer.pal(n=8, name="PuOr"))

Changement de la couleur et de la rotation des ?tiquettes de textes
tl.col (for text label color) et tl.srt (for text label string rotation) sont utilis?s pour changer la couleur et l?angle de rotation des textes.
corrplot(M, type="upper", order="hclust", tl.col="black", tl.srt=45)

Combiner le corr?logramme avec le test de significativit?
Calcul de la p-value des corr?lations
Pour calculer la p-value des matrices, nous allons utiliser une fonction personnalis?e:
# mat : matrice de donn?e
# ... : Arguments suppl?mentaire ? passer ? la fonction cor.test
cor.mtest <- function(mat, ...) {
mat <- as.matrix(mat)
n <- ncol(mat)
p.mat<- matrix(NA, n, n)
diag(p.mat) <- 0
for (i in 1:(n - 1)) {
for (j in (i + 1):n) {
tmp <- cor.test(mat[, i], mat[, j], ...)
p.mat[i, j] <- p.mat[j, i] <- tmp$p.value
}
}
colnames(p.mat) <- rownames(p.mat) <- colnames(mat)
p.mat
}
# Matrice de p-value de la corr?lation
p.mat <- cor.mtest(mtcars)
head(p.mat[, 1:5])
mpg cyl disp hp drat
mpg 0.000e+00 6.113e-10 9.380e-10 1.788e-07 1.776e-05
cyl 6.113e-10 0.000e+00 1.803e-12 3.478e-09 8.245e-06
disp 9.380e-10 1.803e-12 0.000e+00 7.143e-08 5.282e-06
hp 1.788e-07 3.478e-09 7.143e-08 0.000e+00 9.989e-03
drat 1.776e-05 8.245e-06 5.282e-06 9.989e-03 0.000e+00
wt 1.294e-10 1.218e-07 1.222e-11 4.146e-05 4.784e-06
Ajout du niveau de significativit? au corr?logramme
# Indication des corr?lations non significatives
#par une croix
corrplot(M, type="upper", order="hclust",
p.mat = p.mat, sig.level = 0.01)

# Remplacement des corr?lations non significatives
#par du blanc
corrplot(M, type="upper", order="hclust",
p.mat = p.mat, sig.level = 0.01, insig = "blank")

Dans la figure ci-dessus, les corr?lations avec une p-value > 0.01 sont consid?r?es comme non significatives. Dans ce cas les valeurs du coefficient de corr?lation sont remplac?es par du blanc ou barr?es par une croix.
Personnaliser le corr?logramme
col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))
corrplot(M, method="color", col=col(200),
type="upper", order="hclust",
addCoef.col = "black", # Ajout du coefficient de corr?lation
tl.col="black", tl.srt=45, #Rotation des etiquettes de textes
# Combiner avec le niveau de significativit?
p.mat = p.mat, sig.level = 0.01, insig = "blank",
# Cacher les coefficients de corr?lation sur la diagonale
diag=FALSE
)

Conclusions
Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
Montrez-moi un peu d'amour avec les like ci-dessous ... Merci et n'oubliez pas, s'il vous plaît, de partager et de commenter ci-dessous!
Recommended for You!
Click to follow us on Facebook:
Comment this article by clicking on "Discussion" button (top-right position of this page)







