Matrice de corrélation avec R: Analyse et visualisation

C?est quoi une matrice de corr?lation?

Une matrice de corr?lation est utilis?e pour ?valuer la d?pendence entre plusieurs variables en m?me temps. Le r?sultat est une table contenant les coefficients de corr?lation entre chaque variable et les autres. Il existe diff?rentes m?thodes de test de corr?lation : Le test de corr?lation de Pearson, la corr?lation de Kendall et de Spearman qui sont des tests bas?s sur le rang. Ces m?thodes sont discut?es dans les sections suivantes. La matrice de corr?lation peut ?tre visualis?e en utilisant un corr?logramme. L?objectif de cet article est de vous montrer comment calculer et visualiser une matrice de corr?lation dans R.
Notez qu?un logiciel web est disponible ici pour calculer une matrice de corr?lation et dessiner un corr?logramme sans aucune installation.

Analyse de corr?lation dans R


La fonction cor() de R peut ?tre utilis?e pour calculer la matrice de corr?lation. Un format simplifi? de la fonction est :

# x est une variable de type matrix ou data.frame
cor(x, method = c("pearson", "kendall", "spearman"))

L?argument method= indique le type coefficient de corr?lation ? calculer. La valeur par d?faut est le coefficient de corr?lation de pearson, lequel mesure une d?pendence lin?aire entre deux variables. Les m?thodes de corr?lation kendall et spearman sont des tests de corr?lation non-param?triques bas? sur un test de rang.

Donn?es pour le test de corr?lation

La table de donn?es mtcars disponible dans R est utilis?e dans les exemples suivants 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

Matrice de corr?lation

mcor <- cor(mtcars)
mcor
       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
qsec  0.42 -0.59 -0.43 -0.71  0.09 -0.17  1.00  0.74 -0.23 -0.21 -0.66
vs    0.66 -0.81 -0.71 -0.72  0.44 -0.55  0.74  1.00  0.17  0.21 -0.57
am    0.60 -0.52 -0.59 -0.24  0.71 -0.69 -0.23  0.17  1.00  0.79  0.06
gear  0.48 -0.49 -0.56 -0.13  0.70 -0.58 -0.21  0.21  0.79  1.00  0.27
carb -0.55  0.53  0.39  0.75 -0.09  0.43 -0.66 -0.57  0.06  0.27  1.00

Dans la table ci-dessus les coefficients de corr?lation sont montr?es entre les diff?rentes paires possibles de variables.

Si vos donn?es contiennent des valeurs manquantes, utiliser le code R suivant qui va automatiquement les g?rer en les supprimant.

cor(mtcars, use = "complete.obs")

Test de significativit? de la corr?lation (p-value)

Le r?sultat de la fonction cor() est une table de coefficients de corr?lation entre chaque variable et les autres. Malheureusement, cette fonction n?affiche pas la significativit? de la corr?lation (p-value). Dans la section suivante, nous allons utiliser le package Hmisc de R pour calculer la p-value de la corr?lation.

La fonction rcorr() du package Hmisc peut ?tre utilis?e pour calculer le niveau de significativit? pour les corr?lations de pearson et de spearman. En utilisant cette fonction le coefficient de corr?lation r de Pearson ou rho de Spearman est calculer pour toutes les paires de variables possibles dans la table de donn?e.

Un format simplifi? de la fonction est:

rcorr(x, type=c("pearson","spearman"))

x doit ?tre un objet de type matrix. Le type de corr?lation peut ?tre soit pearson ou spearman.

library(Hmisc)
rcorr(as.matrix(mtcars[,1:7]))
       mpg   cyl  disp    hp  drat    wt  qsec
mpg   1.00 -0.85 -0.85 -0.78  0.68 -0.87  0.42
cyl  -0.85  1.00  0.90  0.83 -0.70  0.78 -0.59
disp -0.85  0.90  1.00  0.79 -0.71  0.89 -0.43
hp   -0.78  0.83  0.79  1.00 -0.45  0.66 -0.71
drat  0.68 -0.70 -0.71 -0.45  1.00 -0.71  0.09
wt   -0.87  0.78  0.89  0.66 -0.71  1.00 -0.17
qsec  0.42 -0.59 -0.43 -0.71  0.09 -0.17  1.00
n= 32 
P
     mpg    cyl    disp   hp     drat   wt     qsec  
mpg         0.0000 0.0000 0.0000 0.0000 0.0000 0.0171
cyl  0.0000        0.0000 0.0000 0.0000 0.0000 0.0004
disp 0.0000 0.0000        0.0000 0.0000 0.0000 0.0131
hp   0.0000 0.0000 0.0000        0.0100 0.0000 0.0000
drat 0.0000 0.0000 0.0000 0.0100        0.0000 0.6196
wt   0.0000 0.0000 0.0000 0.0000 0.0000        0.3389
qsec 0.0171 0.0004 0.0131 0.0000 0.6196 0.3389       

Comme r?sultat, la fonction rcorr() renvoie une liste avec les ?l?ments suivants : - r : la matrice de corr?lation. - n : La matrice du nombre d?observations utilis? dans l?analyse de chaque paire de variables. - P : les p-values correspondant aux niveaux de significativit? des corr?lations.

Corr?logramme : visualisation d?une matrice de corr?lation

Plusieurs m?thodes sont disponibles dans R pour dessiner un corr?logramme. Vous pouvez utiliser soit la fonction symnum(), la fonction corrplot() ou des nuages de points pour faire le graphique de la matrice de corr?lation.

Utiliser la fonction symnum

La fonction symnum de R remplace les coefficients de corr?lation par des symboles en fonction de la valeur. Elle prend la matrice de corr?lation comme argument:

symnum(mcor, abbr.colnames=FALSE)
     mpg cyl disp hp drat wt qsec vs am gear carb
mpg  1                                           
cyl  +   1                                       
disp +   +   1                                   
hp   ,   +   ,    1                              
drat ,   ,   ,    .  1                           
wt   +   ,   +    ,  ,    1                      
qsec .   .   .    ,          1                   
vs   ,   +   ,    ,  .    .  ,    1              
am   .   .   .       ,    ,          1           
gear .   .   .       ,    .          ,  1        
carb .   .   .    ,       .  ,    .          1   
attr(,"legend")
[1] 0 ' ' 0.3 '.' 0.6 ',' 0.8 '+' 0.9 '*' 0.95 'B' 1

Comme indiqu? dans la l?gende, les coefficients de corr?lation entre 0 et 0.3 sont remplac?s par un espace (" ?); les coefficients de corr?lation entre 0.3 et 0.6 sont remplac?s par?.?; etc ?

Faire un corr?logramme avec la fonction corrplot de R

Vous devez installer le package corrplot qui permet de faire une visualisation graphique de la matrice de corr?lation.

Pour lire plus ? propos de la fonction corplot() cliquez ici : visualiser une matrice de corr?lation avec la fonction corrplot.

La fonction corrplot prend la matrice de corr?lation comme premier argument. Le second argument (type=?upper?) est utilis? pour afficher seulement le triangle sup?rieur de la matrice de corr?lation.

library(corrplot)
corrplot(mcor, type="upper", order="hclust", tl.col="black", tl.srt=45)

plot of chunk correlogram

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.

La matrice de corr?lation est r?arrang?e en fonction des coefficients de corr?lation en utilisant la m?thode hclust. tl.col (text label color) et tl.srt (text label string rotation) sont utilis?s pour changer la couleur et la rotation des ?tiquettes de texte.

conclusions


  • Utiliser la fonction cor() pour une simple analyse de corr?lation
  • Utiliser la fonction rcorr() du package Hmisc pour calculer la matrice de coefficients de corr?lation ainsi que la matrice de p-value en une seule ?tape.
  • Utiliser la fonction symnum() ou corplot()[du package R corrplot] pour faire le graphique de la matrice de corr?lation.

Infos

Cette analyse a ?t? faite avec R (ver. 3.1.0).


Enjoyed this article? I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Twitter, Facebook or Linked In.

Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
Avez vous aimé cet article? Je vous serais très reconnaissant si vous aidiez à sa diffusion en l'envoyant par courriel à un ami ou en le partageant sur Twitter, Facebook ou Linked In.

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!





Cette page a été vue 58876 fois
Licence - Pas d?Utilisation Commerciale - Partage dans les M?mes Conditions
Licence Creative Commons