Correlación - Tip para graficos listos para publicar
Introducción a ggpubr
- Los diagramas de dispersión se utilizan para mostrar la relación entre dos variables, x - y.
- En esta lección, vamos a crear gráficos de dispersión en R y a añadir información adicional para hacerlos más informativos y atractivos.
- Utilizaremos funciones auxiliares del paquete
ggpubr
de R para mostrar automáticamente el coeficiente de correlación y el nivel de significancia en el gráfico. - Este paquete utiliza una sintaxis similar a
ggplot2
, pero está diseñado para hacer que los gráficos sean más fáciles de personalizar y añadir información adicional, como el coeficiente de correlación.
Instalar y cargar paquetes necesarios
Para instalar el paquete ggpubr
, puedes usar el siguiente comando:
install.packages("ggpubr")
Si tienes problemas con el comando anterior, también puedes instalarlo desde github con el siguiente comando:
# Install
if(!require(devtools)) install.packages("devtools")
::install_github("kassambara/ggpubr") devtools
Para cargar el paquete ggpubr
, puedes usar el siguiente comando:
Para este ejemplo, vamos a usar el conjunto de datos mtcars
que viene incluido en R. Este conjunto de datos contiene información sobre diferentes modelos de automóviles, incluyendo el número de cilindros, la potencia bruta, la velocidad máxima, y otras variables.
Crear un gráfico de dispersión con ggpubr
- Para crear un gráfico de dispersión con
ggpubr
, usaremos la funciónggscatter()
del paqueteggpubr
. - Esta función es similar a
ggplot2::geom_point()
, pero añade automáticamente el coeficiente de correlación y el nivel de significancia en el gráfico. - A continuación, vamos a crear un gráfico de dispersión entre la variable
mpg
(millas por galón) y la variablewt
(peso en miles de libras) del conjunto de datosmtcars
. - Observa que la estructura de la función
ggscatter()
es similar a la deggplot2
, con algunas diferencias en los argumentos; por ejemplo,add = "reg.line"
añade una línea de regresión al gráfico. - Sin embargo, la idea es similar: especificamos el tipo de gráfico, los datos, las variables
x y
, y otros argumentos para personalizar el gráfico.
- Con tan solo unas pocas líneas de código, hemos creado un gráfico de dispersión informativo y atractivo que muestra la relación entre las variables
mpg
ywt
del conjunto de datosmtcars
. - El gráfico incluye:
- una línea de regresión, la cual muestra la tendencia general de los datos
- el coeficiente de correlación de Pearson, que indica la fuerza y la dirección de la relación entre las variables.
- el nivel de significancia (p-valor) del coeficiente de correlación, que indica si la relación es estadísticamente significativa. Todavía no vemos a fondo los valores p, pero recuerda que un valor p menor a 0.05 generalmente se considera estadísticamente significativo, es decir, se rechaza la hipótesis nula de que no hay relación entre las variables.
Agrupar por una variable categórica
- Como hemos visto en otros gráficos, podemos especificar una variable categórica para agrupar los puntos en el gráfico de dispersión.
- Por ejemplo, podemos usar la variable
cyl
(número de cilindros) para agrupar los puntos en el gráfico de dispersión. Además, podemos personalizar los colores y las formas de los puntos para cada grupo.- En ggplot, hacíamos esto de esta manera:
(aes(shape = cyl, color = cyl))
.
- En ggplot, hacíamos esto de esta manera:
- En ggpubr, es muy similar, con la ventaja que ahora podemos añadir el coeficiente de correlación y el nivel de significancia para cada grupo. Todo de manera automática.
- Para obtener el coeficiente de correlación por grupos, usamos
stat_cor(aes(color = cyl), label.x = 25)
. Esto añade el coeficiente de correlación para cada grupo en la posiciónx = 25
. El eje y se ajusta automáticamente.
- Para obtener el coeficiente de correlación por grupos, usamos
- Usamos
palette = "jco"
para especificar una paleta de colores predefinida. En ggpubr, hay varias paletas de colores disponibles para personalizar los gráficos. Incluye paletas de journals científicos como “jco” (Journal of Cell), “npg” (Nature Publishing Group), y “lancet”. Puedes conocer más sobre las paletas de colores en la documentación del paquete (en este enlace)
Agregar gráficos marginales
- Otra característica interesante de
ggpubr
es la capacidad de añadir gráficos marginales a los gráficos de dispersión. - Los gráficos marginales muestran la distribución de las variables
x
ey
en los márgenes del gráfico de dispersión. - Como vimos previamente, para visualizar la distribución de una variable, podemos usar histogramas, densidades y/o boxplots.
- Para esto, usamos otro paquete de ayuda llamado
ggExtra
, que nos permite añadir gráficos marginales a los gráficos de dispersión. Puedes instalarlo con el siguiente comando:install.packages(“ggExtra”)
.- Primero, guardamos el gráfico de dispersión en un objeto
p
. - Luego, usamos la función
ggMarginal()
para añadir un gráfico marginal al gráfico de dispersión. Especificamos el tipo de gráfico marginal con el argumentotype
. Por ejemplo,type = "density"
añade un gráfico de densidad en los márgenes, ytype = "boxplot"
añade un gráfico de caja y bigotes (boxplot) en los márgenes.
- Primero, guardamos el gráfico de dispersión en un objeto
Recursos adicionales
- Documentación oficial de
ggpubr
: enlace - Tutorial de
ggpubr
en DataNovia: enlace - Paletas de colores disponibles en
ggpubr
: enlace