¿Cómo Añadir una Recta de Regresión a un ggplot?

Se podría decir que la regresión lineal es el modelo estadístico más utilizado. Este modelo es sencillo y produce resultados que son fáciles de interpretar. Puesto que la regresión lineal esencialmente ajusta una línea recta a un conjunto de puntos, también puede ser visualizada fácilmente. Este artículo se centra en cómo hacer esto en R usando el paquete {ggplot2}.

Comenzamos creando un gráfico de dispersión de las variables weight (wt) vs. horse power (hp) del conjunto de datos mtcars.

library(ggplot2)
data(mtcars)
p <- ggplot(mtcars, aes(wt, hp)) +
  geom_point()
p

Es obvio que hay una relación positiva visible: mientras más pesado es un coche, tiende a tener más caballos de potencia.

A continuación añadimos una línea de suavizado para que esa tendencia sea todavía más visible.

p + geom_smooth()

Por defecto, geom_smooth() añade un suavizado LOESS a los datos, aunque esto no es lo que queremos. Para que geom_smooth() dibuje una recta de regresión lineal tenemos que establecer el parámetro method a "lm", que es la abreviatura de “modelo lineal”.

p + geom_smooth(method = "lm")

El sombreado gris alrededor de la línea representa el intervalo de confianza al 95%. El nivel del intervalo de confianza se puede modificar cambiando el parámetro level. Un valor de 0.8 representa un intervalo de confianza del 80%.

p + geom_smooth(method = "lm", level = 0.8)

Para que no se muestre el intervalo de confianza se debe establecer el parámetro se a FALSE.

p + geom_smooth(method = "lm", se = FALSE)

En algunas ocasiones una recta no se adapta correctamente a los datos pero un ajuste polinómico sí. Entonces, ¿cómo se añade una línea de regresión polinómica al gráfico? Para esto se usa igualmente geom_smooth() con el parámetro method = "lm" pero además se debe especificar el parámetro formula. El valor por defecto de formula es y ~ x (se lee: y en función de x). Para dibujar un polinomio de grado n se cambia la fórmula a y ~ poly(x, n). A continuación se muestra un ejemplo de ajuste con una curva de regresión polinómica de 2º grado (ajuste cuadrático).

ggplot(mtcars, aes(qsec, hp)) +
  geom_point() +
  geom_smooth(method = "lm", formula = y ~ poly(x, 2))

¡Ahora es tú turno! Inicia una nueva sesión de R, carga unos datos y crea un gráfico ggplot con su línea de regresión. ¡Feliz programación!