Comment créer une carte thermique de corrélation dans R (avec exemple)



Vous pouvez utiliser la syntaxe de base suivante pour créer une carte thermique de corrélation dans R :

#calculate correlation between each pairwise combination of variables
cor_df <- round(cor(df), 2)

#melt the data frame
melted_cormat <- melt(cor_df)

#create correlation heatmap
ggplot(data = melted_cormat, aes(x=Var1, y=Var2, fill=value)) + 
  geom_tile() +
  geom_text(aes(Var2, Var1, label = value), size = 5) +
  scale_fill_gradient2(low = "blue", high = "red",
                       limit = c(-1,1), name="Correlation") +
  theme(axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        panel.background = element_blank())

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : créer une carte thermique de corrélation dans R

Supposons que nous ayons le bloc de données suivant dans R qui montre diverses statistiques pour huit joueurs de basket différents :

#create data frame
df <- data.frame(points=c(22, 25, 30, 16, 14, 18, 29, 22),
                 assists=c(4, 4, 5, 7, 8, 6, 7, 12),
                 rebounds=c(10, 7, 7, 6, 8, 5, 4, 3),
                 blocks=c(12, 4, 4, 6, 5, 3, 8, 5))

#view data frame
df

  points assists rebounds blocks
1     22       4       10     12
2     25       4        7      4
3     30       5        7      4
4     16       7        6      6
5     14       8        8      5
6     18       6        5      3
7     29       7        4      8
8     22      12        3      5

Supposons que nous souhaitions créer une carte thermique de corrélation pour visualiser le coefficient de corrélation entre chaque combinaison par paire de variables dans le bloc de données.

Avant de créer la carte thermique de corrélation, nous devons d’abord calculer le coefficient de corrélation entre chaque variable à l’aide de cor() puis transformer les résultats dans un format utilisable à l’aide de la fonction melt() du package reshape2 :

library(reshape2)

#calculate correlation coefficients, rounded to 2 decimal places
cor_df <- round(cor(df), 2)

#melt the data frame
melted_cor <- melt(cor_df)

#view head of melted data frame
head(melted_cor)

      Var1    Var2 value
1   points  points  1.00
2  assists  points -0.27
3 rebounds  points -0.16
4   blocks  points  0.10
5   points assists -0.27
6  assists assists  1.00

Ensuite, nous pouvons utiliser la fonction geom_tile() du package ggplot2 pour créer une carte thermique de corrélation :

library(ggplot2)

#create correlation heatmap
ggplot(data = melted_cor, aes(x=Var1, y=Var2, fill=value)) + 
  geom_tile() +
  geom_text(aes(Var2, Var1, label = value), size = 5) +
  scale_fill_gradient2(low = "blue", high = "red",
                       limit = c(-1,1), name="Correlation") +
  theme(axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        panel.background = element_blank())

carte thermique de corrélation dans R

Le résultat est une carte thermique de corrélation qui nous permet de visualiser le coefficient de corrélation entre chaque combinaison de variables par paire.

Dans cette carte thermique particulière, les coefficients de corrélation prennent les couleurs suivantes :

  • Bleu s’ils sont proches de -1
  • Blanc s’ils sont proches de 0
  • Rouge s’ils sont proches de 1

N’hésitez pas à utiliser les couleurs de votre choix pour les arguments bas et haut dans la fonction scale_fill_gradient2() .

Par exemple, vous pouvez utiliser « rouge » pour la valeur faible et « vert » pour la valeur élevée :

library(ggplot2)

#create correlation heatmap
ggplot(data = melted_cor, aes(x=Var1, y=Var2, fill=value)) + 
  geom_tile() +
  geom_text(aes(Var2, Var1, label = value), size = 5) +
  scale_fill_gradient2(low = "red", high = "green",
                       limit = c(-1,1), name="Correlation") +
  theme(axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        panel.background = element_blank())

carte thermique de corrélation dans R avec des couleurs personnalisées

Remarque : Vous pouvez également spécifier des codes de couleur hexadécimaux à utiliser si vous souhaitez encore plus de contrôle sur les couleurs exactes dans la carte thermique de corrélation.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans ggplot2 :

Comment faire pivoter les étiquettes des axes dans ggplot2
Comment définir des sauts d’axe dans ggplot2
Comment définir les limites de l’axe dans ggplot2
Comment changer les étiquettes de légende dans ggplot2

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *