¿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!