Correlación - Tip para graficos listos para publicar

Introducción a ggpubr

Author
Affiliation

Mtro. Santiago Ríos

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")
devtools::install_github("kassambara/ggpubr")

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ón ggscatter() del paquete ggpubr.
  • 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 variable wt (peso en miles de libras) del conjunto de datos mtcars.
  • Observa que la estructura de la función ggscatter() es similar a la de ggplot2, 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 y wt del conjunto de datos mtcars.
  • 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 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ón x = 25. El eje y se ajusta automáticamente.
  • 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 e y 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 argumento type. Por ejemplo, type = "density" añade un gráfico de densidad en los márgenes, y type = "boxplot" añade un gráfico de caja y bigotes (boxplot) en los márgenes.

Recursos adicionales

  • Documentación oficial de ggpubr: enlace
  • Tutorial de ggpubr en DataNovia: enlace
  • Paletas de colores disponibles en ggpubr: enlace