Librería

corrplot

Datos de muestra

El paquete corrplot permite visualizar matrices de correlación en R de una forma muy sencilla. Proporciona varios métodos de visualización y opciones para reordenar las variables, mostrar solo la mitad de la matriz, mostrar los coeficientes de correlación o resaltar las correlaciones significativas.

En este tutorial vamos a utilizar la matriz de correlación de las variables del conjunto de datos mtcars, calculada con la función cor. Ten en cuenta que corrplot necesita una matriz de correlación, no los datos originales, por lo que tendrás que calcularla primero.

M <- cor(mtcars)

La función corrplot

Pasa la matriz de correlación a la función corrplot para crear un gráfico de correlación. Por defecto, cada correlación se representa con un círculo cuyo tamaño y color dependen del valor de la correlación: azul para las correlaciones positivas y rojo para las negativas.

# install.packages("corrplot")
library(corrplot)

corrplot(M)

Gráfico de correlación en R con la función corrplot

Método de visualización

Matriz de correlación con elipses en corrplot

El argumento method permite elegir cómo representar las correlaciones. Las opciones disponibles son "circle" (por defecto), "square", "ellipse", "number", "shade", "color" y "pie". En el siguiente ejemplo utilizamos elipses, que son más estrechas cuanto más fuerte es la correlación.

corrplot(M, method = "ellipse")

Si prefieres un mapa de calor puedes establecer method = "color", que rellena cada celda con el color correspondiente a la correlación. Este método es muy útil si lo combinas con los coeficientes de correlación, como se muestra en las siguientes secciones.

corrplot(M, method = "color")

Mapa de calor de correlaciones con corrplot

Triángulo superior o inferior

Triángulo superior de una matriz de correlación con corrplot

Como la matriz de correlación es simétrica, puedes mostrar solo una mitad con type = "upper" o type = "lower". Además, la diagonal solo contiene unos (la correlación de cada variable consigo misma), por lo que puedes eliminarla con diag = FALSE.

corrplot(M, type = "upper", diag = FALSE)

Reordenar las variables

Por defecto, las variables se muestran en el mismo orden que en la matriz. El argumento order permite reordenarlas para que los patrones se vean mejor. Las opciones son "original", "AOE" (orden angular de los vectores propios), "FPC" (primera componente principal), "hclust" (clúster jerárquico) y "alphabet".

Al usar order = "hclust" también puedes dibujar rectángulos alrededor de los clusters con addrect, indicando el número de clusters. El método de agrupamiento se puede cambiar con hclust.method.

corrplot(M, order = "hclust", addrect = 2)

Matriz de correlación ordenada con clúster jerárquico en corrplot

Coeficientes de correlación

Gráfico de correlación con los coeficientes de correlación en corrplot

Los coeficientes de correlación se pueden añadir sobre el gráfico con addCoef.col, que establece el color de los números, mientras que su tamaño se puede cambiar con number.cex. Si solo quieres mostrar los números usa method = "number".

corrplot(M, method = "color", type = "upper", diag = FALSE,
         addCoef.col = "black", number.cex = 0.7)

Gráfico de correlación mixto

La función corrplot.mixed permite usar un método diferente para cada mitad de la matriz. Por defecto, el triángulo inferior muestra los coeficientes de correlación y el superior muestra círculos, pero puedes cambiarlos con los argumentos lower y upper.

corrplot.mixed(M, lower = "number", upper = "ellipse",
               tl.col = "black", number.cex = 0.7)

Gráfico de correlación mixto con corrplot.mixed

Significación de las correlaciones

Gráfico de correlación con las correlaciones no significativas tachadas en corrplot

La función cor.mtest calcula los p-valores de los tests de correlación para cada par de variables. Pasa la matriz de p-valores a p.mat y establece el nivel de significación con sig.level para tachar las correlaciones no significativas. Si prefieres eliminarlas establece insig = "blank".

p <- cor.mtest(mtcars, conf.level = 0.95)

corrplot(M, type = "upper", diag = FALSE,
         p.mat = p$p, sig.level = 0.05)

Colores

La paleta de colores se puede personalizar con el argumento col. corrplot incluye las funciones COL1 (secuenciales) y COL2 (divergentes), que proporcionan paletas de RColorBrewer, como "RdBu", "PiYG" o "PuOr". También puedes crear tu propia paleta con colorRampPalette o elegir otras paletas de colores.

corrplot(M, type = "upper", diag = FALSE,
         col = COL2("PuOr"))

Cambiar los colores de un gráfico de correlación en corrplot

Etiquetas y leyenda

Personalizar las etiquetas y la leyenda de un gráfico de correlación en corrplot

Los argumentos que empiezan por tl permiten personalizar las etiquetas de texto: tl.col establece el color, tl.srt la rotación y tl.cex el tamaño. La posición de la leyenda de colores se puede cambiar con cl.pos, que puede ser "r" (derecha), "b" (abajo) o "n" (sin leyenda).

corrplot(M, type = "lower", diag = FALSE,
         tl.col = "black", tl.srt = 45, tl.cex = 0.9,
         cl.pos = "b")

Si prefieres ggplot2 puedes crear una matriz de correlación con ggcorrplot o un mapa de calor con geom_tile. Además, si quieres mostrar los gráficos de dispersión de cada par de variables junto a las correlaciones consulta la función ggpairs. Ten en cuenta que el paquete corrplot es diferente de la función corPlot del paquete psych.

MASTER - STATISTICS DOT COM

Master Statistics

Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad

Ir al sitio
R PACKAGES IO

R Packages

Explora y descubre miles de paquetes, funciones y datasets de R

Ir al sitio

También te puede interesar