Los diagramas de dispersión, o scatterplots son gráficos que comparan una variable cuantitativa, numérica, con otra, de manera que se pueden analizar las tendencias o la relación entre variables cuantitatativas. Este tipo de gráficos las vamos a analizar con datos del proyecto GapMinder que contienen los datos históricos país a país de renta per cápita (Producto Interior Bruto per capita, Gross Domestic Product) y esperanza de vida. Se podría analizar si a mayor renta, más esperanza de vida.
La función genérica plot()
nos permite generar estos gráficos, introduciendo como parámetros dos variables cuantitativas de un marco de datos, o dos vectores de la misma longitud. A menos que especifiquemos otra cosa, la primera variable que metamos irá al eje x, la segunda al y.
Vamos a ver la relación entre la renta y la esperanza de vida. En el siguiente código reproducimos lo que hemos hecho en el videotutorial cuando pinchábamos sobre nuestro archivo "life-expectancy-vs-gdp-per-capita.csv"
y le pedíamos a Rstudio que lo importara. También hemos cambiado el nombre de las columnas.
library(readr) #paquete de tidyverse para leer archivos
life_expectancy_vs_gdp_per_capita <- read_csv("life-expectancy-vs-gdp-per-capita.csv",
col_types = cols(`GDP per capita ($)` = col_double(),
`Life expectancy at birth (years)` = col_double()))
View(life_expectancy_vs_gdp_per_capita) #vista de los datos
life<-life_expectancy_vs_gdp_per_capita #hago un objeto con un nombre más corto
colnames(life)<-c("Country","Code","Year","Life","GDP","Pop") #especifico otros nombres
Una vez que lo tengo, simplemente tengo que llamar a mi función básica plot()
y decirle qué dos columnas me debe mostrar:
plot(x=life$GDP,y=life$Life)
Tenemos nuestro primer gráfico, pero hay algunos problemas: a pesar de que se ve alguna tendencia proporcional entre la renta y la esperanza de vida, los datos son demasiados datos, y hay artefactos extraños producto de haber mezclado la información de series de datos muy largas. Vamos a seleccionar con subset()
únicamente los datos correspondientes al año 2016 y guardarlos en un nuevo objeto:
life2016<-subset(life,Year==2016)
plot(x=life2016$GDP,y=life2016$Life)
Este gráfico nos permite visualizar mejor nuestros datos donde se observa tanto la relación directa entre renta per cápita y esperanza de vida, hasta un punto donde ya no puede crecer más. Observamos un dato extremos a la derecha. La altísima renta de Qatar producto de la extracción de petróleo no se corresponde con la mayor esperanza de vida del mundo, es ligeramente inferior de lo esperado. Entre otras cosas, este país tiene una población profundamente afectada por la contaminación del aire debido a lo mismo.