2018-09-04

Gráficos de An Introduction to Statistical Learning con ggplot2 - Figura 2.2.

Gráfico a replicar

Continuamos con la serie iniciada sobre la creación de gráficos del libro An Introduction to Statistical Learning. En esta ocasión replicaremos los gráficos de la figura 2.2. Utiliza el conjunto de datos Income (renta). A la izquierda los puntos rojos representan los valores observados de renta (en miles de dólares) y los años de educación de 30 individuos. A la derecha la curva azul representa la verdadera relación subyacente entre la renta y los años de educación, que es generalmente desconocida (pero es conocida en este caso porque los datos fueron simulados). Las líneas negras representan el error asociado con cada observación. Hay errores positivos (si la observación se sitúa por encima de la curva azul) y negativos (si la observación se sitúa por debajo de la curva). En total, la media de estos errores es aproximadamente cero.

Solución

Necesitamos crear un nuevo data frame, en el que añadimos una nueva columna con los valores ajustados calculado por el modelo usado por ggplot2 (el método loess es usado para menos de 1.000 observaciones)

library(ggplot2)
library(cowplot)
income_1 <- read.csv("http://www-bcf.usc.edu/~gareth/ISL/Income1.csv")

# Gráfico A
p1 <- ggplot(income_1, aes(x= Education, y = Income)) + 
  geom_point()+
  geom_smooth()

# Gráfico B
mod <- loess(Income ~ Education, data = income_1)
income <- transform(income_1, fitted = fitted(mod))
p2 <- ggplot(income, aes(x= Education, y = Income)) + 
  geom_point(colour = "red")+
  geom_smooth(se = FALSE)+
  geom_segment(aes(x = Education, y = Income,
                   xend = Education, yend = fitted))

# Ambos gráficos
theme_set(theme_grey()) # Mantiene theme_grey
plot_grid(p1, p2 , labels = "AUTO")

Entradas relacionadas

Referencias

No hay comentarios:

Publicar un comentario

Nube de datos