5 Geometrías para mostrar relación entre variables

En los Capítulos 3 y 4 discutimos las visualizaciones más comunes para mostrar la distribución y la evolución de una o más variables. En este capítulo continuaremos nuestro estudio de diferentes capas de Geometría para concentrarnos en aquellas que nos permiten mostrar la relación entre variables (ver parte sombreada de la Figura 5.1).



Figura 5.1: Tipos de gráficos más comunes según lo que se desea comunicar y la clase de variable

Tipos de gráficos más comunes según lo que se desea comunicar y la clase de variable
Fuente: Adaptación de Alonso y González (2012).



La gráfica más empleada para mostrar la relación entre dos variables es el diagrama de dispersión. Esta visualización es muy versátil y nos permite incluir aún más variables si jugamos con el tamaño de los puntos (conocido como gráfico de burbujas), su color o su tamaño. En este capítulo nos concentraremos en este gráfico.

5.1 Diagrama de dispersión

Cuando se busca mostrar una relación entre dos variables numéricas, lo mejor es hacer uso de un diagrama de dispersión. En la Figura 5.2 se muestra un ejemplo de la relación entre la expectativa de vida y el PIB percápita para todos los países en 2007. Este fue el primer gráfico que aprendimos ha construir en el Capítulo 2.

Recuerda que este gráfico lo podemos generar con la función geom_point() empleando el siguiente código:

# cargamos los paquetes
library(ggplot2)
library(dplyr)
library(gapminder)

# se emplea el operador pipe para 
# pasar los datos y filtrar los 
# datos

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(aes(x = gdpPercap, y = lifeExp)) +
  geom_point() +
  labs(  x="PIB percápita", y="Esp. de vida") +
  theme_minimal()



Figura 5.2: PIB percápita y expectativa de vida al nacer por país (2007).

PIB percápita y expectativa de vida al nacer por país (2007).
Fuente: Datos del paquete gapminder.



Es importante anotar que en algunas ocasiones se pueden tener muchos puntos que se superponen (en inglés over-plotting) y se tapan entre sí cuando se mapean. En esos casos nos podemos dar unas libertades “artísticas” añadiendo una pequeña cantidad de variación aleatoria a la ubicación de cada punto. De esta manera, los puntos no se sobreponen y la visualización nos permitirá endender mejor los datos. Esto se logra con la función geom_jitter() . Por ejemplo, en el panel a de la Figura 5.3 se muestra un diagrama de dispersión con todos los datos de gapminder con el año en el eje horizontal y la esperanza de vida al nacer en el vertical empleando la función geom_point(). Observa que los puntos se ven sobre puestos. Esta visaulización es apenas natural (asegúrate que te queda claro el porqué obtenemos esta visualización).



Figura 5.3: Relación entre la expectativa de vida al nacer y el año.

Relación entre la expectativa de vida al nacer y el año.
Fuente: Datos del paquete gapminder.



En el panel b de la Figura 5.3 se muestran los mismo datos, pero tomándonos una libertad “artística” de mover un poco horizontal y verticalmente los puntos para que no se sobrepongan. Esta vizualización fue creada con la función geom_jitter() . Si bien, esta visualización no es exacta, brinda una mejor idea de cómo se relacionan el año y la esperanza de vida al nacer. Del contexto de tu visualización, podrás tomar la decisión de si tiene o no sentido emplear la función geom_jitter() en vez de geom_point(). La Figura 5.3 fue creada con el siguiente código:

# panel a 
ggplot(gapminder, aes(x = year, y = lifeExp)) +
                geom_point() + 
                labs(title = "Panel a con geom_point()", 
                     x="Año", y="Esp. de vida") +  
               theme_minimal() 
# panel b
ggplot(gapminder, aes(x = year, y = lifeExp)) +
                geom_jitter() + 
                labs(title = "Panel b con geom_jitter()",
                     x="Año", y="Esp. de vida") +  
               theme_minimal() 

5.2 Gráfico de burbujas

En algunas situaciones será interesante incluir una tercera variable numérica a nuestra visualización. El diagrama de dispersión permite una tercera variable numérica si la mapeamos al tamaño del punto. Esto tendrá una apariencia de burbujas, por eso el nombre de esta visualización. En general será mucho más clara y transmitirá mejor el mensaje que emplear gráficas en tres dimensiones.

Generarla es muy sencillo, tendremos que mapear nuestra tercera variable numérica al argumento size de la capa Aesthetic. La Figura 5.4 presenta un gráfico de burbujas construido con el siguiente código:

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(aes(x = gdpPercap, y = lifeExp,
             size = pop)) +
  geom_point(col = "royalblue2") +
  labs(  x="PIB percápita ($US)", 
         y="Esp. de vida", 
         size="Población") +
  theme_minimal()



Figura 5.4: PIB percápita, expectativa de vida al nacer y población por país (2007)

PIB percápita,  expectativa de vida al nacer y población por país (2007)
Fuente: Datos del paquete gapminder.



5.3 Diagrama de dispersión y variables cualitativas

También podemos incluir variables cualitativas en un diagrama de dispersión. Esto lo podemos hacer mapeando la variable cualitativa al color de los puntos. Esto nos da bastante flexibilidad en nuestros gráficos. Es más, podríamos incluir una quinta variable en nuestro diagrama de dispersión si mapeamos una variable cualitativa a la forma del punto. Pero tenemos que ser cuidadosos de no saturar nuestra visualización. Típicamente en las visualizaciones “menos es más”.

Por ejemplo, incluyamos la variable continente a nuestro gráfico de burbujas. El siguiente código permite generar la Figura 5.5.

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(aes(x = gdpPercap, y = lifeExp,
             size = pop, col = continent )) +
  geom_point() +
  labs(  x = "PIB percápita ($US)", 
         y = "Esp. de vida", 
         size = "Población",
         col = "Continente") +
  theme_minimal()



Figura 5.5: PIB percápita, expectativa de vida al nacer y población por país (2007)

PIB percápita,  expectativa de vida al nacer y población por país (2007)
Fuente: Datos del paquete gapminder.



5.4 Comentarios finales

En este capítulo hemos trabajado tres visualizaciones más, con esto completamos 9 tipos de visualizaciones que nos permiten mostrar distribución, evolución y relación entre variables. Ya tienes en tu caja de herramientas estas poderosas funciones que te permitirán mostrar conjuntos de datos grandes o pequeños. En el Capítulo 6 discutiremos unas estrategias para mejorar la apariencia de tus visualizaciones.