Curso
La visualización de datos es una habilidad esencial para los científicos de datos. Combina estadística y diseño de forma significativa y adecuada. Por un lado, la visualización de datos es una forma de análisis gráfico, que pone el foco en la representación precisa y la interpretación de los datos. Por otro, depende de buenas decisiones de diseño para que los gráficos resulten atractivos y faciliten tanto la comprensión como la comunicación de los resultados. Además, hay un componente creativo, porque en esencia la visualización de datos es una forma de comunicación visual.

Es importante distinguir entre visualizaciones exploratorias y explicativas. Las exploratorias se generan con facilidad, cargadas de datos, y están pensadas para una audiencia técnica y reducida, como tú y tu equipo: su objetivo principal es el análisis gráfico. Las explicativas requieren más trabajo, son específicas de los datos y se dirigen a una audiencia más amplia, por ejemplo en publicaciones o presentaciones: forman parte del proceso de comunicación. Como científico de datos, necesitas explorar datos con rapidez, pero también tendrás que explicar tus resultados a las partes interesadas. Un buen diseño empieza pensando en la audiencia, y a veces esa audiencia somos nosotros mismos.

Diagrama de dispersión
A continuación, tenemos un conjunto de datos con los pesos medios del cerebro y del cuerpo de 62 mamíferos.
MASS::mammals
body brain
Arctic fox 3.385 44.50
Owl monkey 0.480 15.50
Mountain beaver 1.350 8.10
Cow 465.000 423.00
Grey wolf 36.330 119.50
Goat 27.660 115.00
Roe deer 14.830 98.20
...
Pig 192.000 180.00
Echidna 3.000 25.00
Brazilian tapir 160.000 169.00
Tenrec 0.900 2.60
Phalanger 1.620 11.40
Tree shrew 0.104 2.50
Red fox 4.235 50.40
Para entender la relación, el primer paso más obvio es crear un diagrama de dispersión como el de abajo:
ggplot(mammals, aes(x = body, y = brain)) +
geom_point()

Dos mamíferos, los elefantes africano y asiático, tienen pesos corporales y cerebrales muy grandes, lo que provoca un sesgo positivo en ambos ejes.
Modelo lineal
Si aplicáramos un modelo lineal aquí, sería una mala elección porque unos pocos valores extremos ejercen mucha influencia.
ggplot(mammals, aes(x = body, y = brain)) +
geom_point(alpha = 0.6) +
stat_smooth(
method = "lm",
color = "red",
se = FALSE
)

Aplicar una transformación logarítmica a ambas variables permite un mejor ajuste.
ggplot(mammals, aes(x = body, y = brain)) +
geom_point(alpha = 0.6) +
coord_fixed() +
scale_x_log10() +
scale_y_log10() +
stat_smooth(
method = "lm",
color = "#C42126",
se = FALSE,
size = 1
)

Así que, aunque empezamos con un gráfico exploratorio sencillo, nos ayudó a entender nuestros datos y a llegar a un resultado significativo.
Gráficos de Anscombe
Cuando imaginamos un modelo lineal, como en este gráfico anónimo, pensamos que estamos describiendo datos que se parecen a esto.

Pero ese mismo modelo podría estar describiendo un conjunto de datos muy distinto, como una relación parabólica, que exigiría otro modelo.

O datos en los que un valor extremo tiene un gran efecto, algo que se hace evidente al eliminar el valor atípico.

Y, a veces, el modelo puede describir una relación donde en realidad no hay ninguna, porque algunos valores extremos pueden ser incorrectos.

Si nos limitáramos al resultado numérico sin representar los datos, pasaríamos por alto patrones subyacentes claros e interesantes.

Vemos que la visualización de datos tiene raíces en la estadística y el análisis gráfico, pero también es un proceso creativo que implica cierta experimentación.
Ejemplo interactivo
En el siguiente ejemplo, primero cargarás el paquete ggplot2 con library(). Después, usarás str() para explorar la estructura del conjunto de datos mtcars.
Por último, visualizarás el ggplot e intentarás entender qué hace ggplot con los datos.
Utilizarás el conjunto de datos mtcars, que contiene información sobre 32 coches de un número de 1973 de la revista Motor Trend. Es un dataset pequeño, intuitivo y con una variedad de variables continuas y categóricas.
# Load the ggplot2 package
library(ggplot2)
# Explore the mtcars data frame with str()
str(mtcars)
# Execute the following command
p <- ggplot(mtcars, aes(cyl, mpg)) +
geom_point()
Al ejecutar el código anterior, se obtiene el siguiente resultado:
data.frame': 32 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
$ disp: num 160 160 108 258 360 ...
$ hp : num 110 110 93 110 175 105 245 62 95 123 ...
$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
$ wt : num 2.62 2.88 2.32 3.21 3.44 ...
$ qsec: num 16.5 17 18.6 19.4 17 ...
$ vs : num 0 0 1 1 0 1 0 1 1 1 ...
$ am : num 1 1 1 0 0 0 0 0 0 0 ...
$ gear: num 4 4 4 3 3 3 3 4 4 4 ...
$ carb: num 4 4 1 1 2 1 4 2 2 4 ...

Para aprender más sobre la visualización de datos con ggplot, echa un vistazo a este vídeo de nuestro curso Introduction to Data Visualization with ggplot2. Además, ten a mano nuestra ggplot2 Cheat Sheet como referencia rápida.
Este contenido está extraído del curso Introduction to Data Visualization with ggplot2 de DataCamp, por Rick Scavetta.
