En este artículo, veamos cómo trazar un mapa de calor de correlación en el lenguaje de programación R.
El análisis de datos generalmente implica un análisis detallado de cada función y cómo se correlaciona entre sí. Es esencial encontrar la fuerza de la relación entre cada característica o, en otras palabras, cómo se mueven dos variables asociadas entre sí. Si las variables crecen juntas en la misma dirección, es una correlación positiva, de lo contrario, una correlación negativa. Esta correlación se puede visualizar a través de varios gráficos, como diagramas de dispersión, etc.
Cargando datos
Carguemos el conjunto de datos ambientales y veamos las primeras 6 filas de los datos usando la función head().
R
# Loading package,data and # viwing 1st 6 rows of data install.packages("lattice") library(lattice) # Load the New York City # environmental dataset. data(environmental) data <-environmental head(data)
Salida :
Crear array de correlación
Vamos a crear una array de correlación para nuestros datos usando la función cor() y redondeemos cada valor a 2 decimales. Esta array se puede utilizar para crear fácilmente el mapa de calor.
R
# create a correlation matrix of the data # rounding to 2 decimal places corr_mat <- round(cor(data),2) head(corr_mat)
Salida :
Mapa de calor de correlación usando ggplot2
Usando ggplot2, visualicemos la array de correlación en un mapa de calor.
Función: ggplot(data = NULL, mapeo = aes(), … , entorno = parent.frame())
Argumentos:
- data: conjunto de datos predeterminado para usar en la gráfica.
- mapeo: lista predeterminada de mapeos estéticos para usar en la trama
- entorno – DESAPROBADO. Usado antes de una evaluación ordenada
Reduzcamos el tamaño de la array de correlación trazando el mapa de calor usando la función melt() y usando ggplot para trazar el mapa de calor. A partir de este mapa de calor, podemos interpretar fácilmente qué variables/características están más correlacionadas y usarlas para un análisis de datos en profundidad. La función ggplot acepta una array de correlación reducida y mapeos estéticos.
R
# Install and load reshape2 package install.packages("reshape2") library(reshape2) # creating correlation matrix corr_mat <- round(cor(data),2) # reduce the size of correlation matrix melted_corr_mat <- melt(corr_mat) # head(melted_corr_mat) # plotting the correlation heatmap library(ggplot2) ggplot(data = melted_corr_mat, aes(x=Var1, y=Var2, fill=value)) + geom_tile()
Salida :
Reordenar la array de correlación y trazar el mapa de calor
Reordenar u ordenar la array de correlación con respecto al coeficiente nos ayuda a identificar fácilmente patrones entre las características/variables. Veamos cómo reordenar la array de correlación usando la función hclust() agrupando las características jerárquicamente (agrupación jerárquica).
R
# Code to plot a reorederd heatmap # Install and load reshape2 package install.packages("reshape2") library(reshape2) # creating correlation matrix corr_mat <- round(cor(data),2) # reorder corr matrix # using corr coefficient as distance metric dist <- as.dist((1-corr_mat)/2) # hierarchical clustering the dist matrix hc <- hclust(dist) corr_mat <-corr_mat[hc$order, hc$order] # reduce the size of correlation matrix melted_corr_mat <- melt(corr_mat) #head(melted_corr_mat) #plotting the correlation heatmap library(ggplot2) ggplot(data = melted_corr_mat, aes(x=Var1, y=Var2, fill=value)) + geom_tile()
Salida :
Adición de coeficientes de correlación al mapa de calor
Los coeficientes de correlación son una medida que representa qué tan fuerte es la relación entre dos variables. Cuanto mayor sea el valor absoluto del coeficiente, mayor será la correlación.
Visualicemos un mapa de calor de correlación junto con los coeficientes de correlación en el mapa usando la columna «valor» en la array de correlación como texto. Usando la función geom_text( ), se pueden agregar anotaciones en el mapa de calor y usar «valor» como etiquetas.
R
# Install and load reshape2 package install.packages("reshape2") library(reshape2) # creating correlation matrix corr_mat <- round(cor(data),2) # reduce the size of correlation matrix melted_corr_mat <- melt(corr_mat) head(melted_corr_mat) # plotting the correlation heatmap library(ggplot2) ggplot(data = melted_corr_mat, aes(x=Var1, y=Var2, fill=value)) + geom_tile() + geom_text(aes(Var2, Var1, label = value), color = "black", size = 4)
Salida :
Mapa de calor de correlación usando heatmaply
Usemos el paquete heatmaply en R para trazar un mapa de calor de correlación usando la función heatmaply_cor(). La correlación de los datos es la array de entrada con la columna «Características» como parámetros de los ejes x e y.
Función: heatmaply_cor(x, limites = c(-1, 1), xlab, ylab, colors = cool_warm,k_row, k_col…)
Argumentos:
- x: puede ser un objeto heatmapr o una array numérica
- límites: un vector numérico bidimensional que especifica el rango de datos para la escala
- colors: un vector de colores para usar en el color del mapa de calor
- k_row: un escalar entero con el número deseado de grupos para colorear el dendrograma
- ramas en las filas
- k_col: un escalar entero con el número deseado de grupos para colorear las ramas del dendrograma en las columnas
- xlab: un título de carácter para el eje x.
- ylab: un título de carácter para el eje y.
R
# Load and install heatmaply package install.packages("heatmaply") library(heatmaply) # plotting corr heatmap heatmaply_cor(x = cor(data), xlab = "Features", ylab = "Features", k_col = 2, k_row = 2)
Salida :
Mapa de calor de correlación usando ggcorplot
Usemos el paquete ggcorplot en R para trazar un mapa de calor de correlación usando la función ggcorrplot(). La array de correlación de los datos se proporciona como array de corrección de entrada.
Función: ggcorrplot(corr,método = c(“cuadrado”, “círculo”) … )
Argumentos:
- corr – la array de correlación para visualizar
- método: carácter, el método de visualización de la array de correlación que se utilizará
R
# load and install ggcorplot install.packages("ggcorplot") library(ggcorrplot) # plotting corr heatmap ggcorrplot::ggcorrplot(cor(data))
Salida :
Trazar el triángulo inferior del mapa de calor de correlación
Veamos cómo trazar el triángulo inferior del mapa de calor de correlación y visualizarlo. Esto se puede hacer reemplazando los valores del triángulo superior de la array de correlación como NA y luego esta array se reduce mediante el proceso de fusión y se representa gráficamente.
R
# get the corr matrix corr_mat <- round(cor(data),2) # replace NA with upper triangle matrix corr_mat[upper.tri(corr_mat)] <- NA # reduce the corr matrix melted_corr_mat <- melt(corr_mat) # plotting the corr heatmap library(ggplot2) ggplot(data = melted_corr_mat, aes(x=Var1, y=Var2, fill=value)) + geom_tile()
Salida :
Trazar el triángulo superior del mapa de calor de correlación
Veamos cómo trazar el triángulo superior del mapa de calor de correlación y visualizarlo. Esto se puede hacer reemplazando los valores del triángulo inferior de la array de correlación como NA y luego esta array se reduce mediante el proceso de fusión y se representa gráficamente.
R
# get the corr matrix corr_mat <- round(cor(data),2) # replace NA with lower triangle matrix corr_mat[lower.tri(corr_mat)] <- NA # reduce the corr matrix melted_corr_mat <- melt(corr_mat) # plotting the corr heatmap library(ggplot2) ggplot(data = melted_corr_mat, aes(x=Var1, y=Var2, fill=value)) + geom_tile()
Salida :
Creación de un mapa de calor de correlación interactivo
Un gráfico interactivo muestra información detallada de cada punto de datos cuando el usuario se desplaza sobre el gráfico. Veamos cómo trazar un mapa de calor de correlación interactivo usando la array de correlación y la array de valor p. La función ggplotly() toma una array de correlación de los datos y proporciona un gráfico de mapa de calor interactivo y los detalles se pueden ver al pasar el mouse sobre el mapa.
Función: ggplotly( p = ggplot2::last_plot(), ancho = NULL, alto = NULL … )
Argumentos:
- p – un objeto ggplot
- ancho: ancho de la trama en píxeles (opcional, predeterminado para el tamaño automático)
- altura: altura de la trama en píxeles (opcional, predeterminado para el tamaño automático)
R
# install and load the plotly package install.packages("plotly") library(plotly) library(ggcorrplot) # create corr matrix and # corresponding p-value matrix corr_mat <- round(cor(data),2) p_mat <- cor_pmat(data) # plotting the interactive corr heatmap corr_mat <- ggcorrplot( corr_mat, hc.order = TRUE, type = "lower", outline.col = "white", p.mat = p_mat ) ggplotly(corr_mat)
Salida :
Publicación traducida automáticamente
Artículo escrito por saaiswethasret y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA