Come creare una mappa termica di correlazione in r (con esempio)


È possibile utilizzare la seguente sintassi di base per creare una mappa termica di correlazione in 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’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: creare una mappa termica di correlazione in R

Supponiamo di avere il seguente frame di dati in R che mostra varie statistiche per otto diversi giocatori di basket:

 #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

Supponiamo di voler creare una mappa termica di correlazione per visualizzare il coefficiente di correlazione tra ciascuna combinazione di variabili a coppie nel frame di dati.

Prima di creare la mappa termica di correlazione, dobbiamo prima calcolare il coefficiente di correlazione tra ciascuna variabile utilizzando cor() e quindi trasformare i risultati in un formato utilizzabile utilizzando la funzione melt() reshape2 del pacchetto:

 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 assist points -0.27
3 rebound points -0.16
4 block points 0.10
5 assist points -0.27
6 assists assists 1.00

Successivamente, possiamo utilizzare la funzione geom_tile() dal pacchetto ggplot2 per creare una mappa termica di correlazione:

 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()) 

mappa termica di correlazione in R

Il risultato è una mappa termica di correlazione che ci consente di visualizzare il coefficiente di correlazione tra ciascuna combinazione di variabili a coppie.

In questa particolare mappa termica, i coefficienti di correlazione assumono i seguenti colori:

  • Azzurri se sono chiusi a -1
  • Bianco se sono vicini allo 0
  • Rosso se sono vicini a 1

Sentiti libero di utilizzare i colori che desideri per gli argomenti basso e alto nella funzione scale_fill_gradient2() .

Ad esempio, puoi utilizzare “rosso” per un valore basso e “verde” per un valore alto:

 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()) 

mappa termica di correlazione in R con colori personalizzati

Nota : puoi anche specificare codici colore esadecimali da utilizzare se desideri un controllo ancora maggiore sui colori esatti nella mappa termica di correlazione.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in ggplot2:

Come ruotare le etichette degli assi in ggplot2
Come impostare le interruzioni degli assi in ggplot2
Come impostare i limiti degli assi in ggplot2
Come modificare le etichette della legenda in ggplot2

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *