La regresión lineal simple es una técnica estadística que permite estudiar la relación entre una variable independiente (X) y una variable dependiente (Y). Su objetivo es obtener una ecuación matemática que permita explicar y predecir el comportamiento de una variable a partir de otra.
En este ejemplo se analiza la relación entre las horas de estudio y la calificación obtenida por un grupo de estudiantes.
horas <- c(1,2,3,4,5,6,7,8,9,10)
calificacion <- c(55,60,65,70,72,78,82,88,91,95)
datos <- data.frame(horas, calificacion)
datos
## horas calificacion
## 1 1 55
## 2 2 60
## 3 3 65
## 4 4 70
## 5 5 72
## 6 6 78
## 7 7 82
## 8 8 88
## 9 9 91
## 10 10 95
plot(horas,
calificacion,
main = "Horas de Estudio vs Calificación",
xlab = "Horas de Estudio",
ylab = "Calificación",
pch = 19,
col = "blue")
El gráfico de dispersión permite visualizar la posible relación entre ambas variables.
modelo <- lm(calificacion ~ horas)
modelo
##
## Call:
## lm(formula = calificacion ~ horas)
##
## Coefficients:
## (Intercept) horas
## 51.133 4.448
summary(modelo)
##
## Call:
## lm(formula = calificacion ~ horas)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.3758 -0.5046 -0.1000 0.4349 1.2788
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 51.13333 0.58197 87.86 3.14e-13 ***
## horas 4.44848 0.09379 47.43 4.32e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.8519 on 8 degrees of freedom
## Multiple R-squared: 0.9965, Adjusted R-squared: 0.996
## F-statistic: 2250 on 1 and 8 DF, p-value: 4.318e-11
El resumen proporciona información importante sobre el ajuste del modelo, incluyendo:
intercepto <- coef(modelo)[1]
pendiente <- coef(modelo)[2]
cat("Ecuación del modelo:\n")
## Ecuación del modelo:
cat("Y =", round(intercepto,4), "+", round(pendiente,4), "* X")
## Y = 51.1333 + 4.4485 * X
La ecuación obtenida permite estimar la calificación esperada para cualquier número de horas de estudio.
plot(horas,
calificacion,
main = "Recta de Regresión",
xlab = "Horas de Estudio",
ylab = "Calificación",
pch = 19,
col = "blue")
abline(modelo,
col = "red",
lwd = 3)
La línea roja representa la recta de regresión ajustada a los datos.
r2 <- summary(modelo)$r.squared
r2
## [1] 0.9964563
El coeficiente de determinación indica qué porcentaje de la variabilidad de la variable respuesta es explicado por la variable independiente.
Supongamos que deseamos estimar la calificación de un estudiante que estudia 12 horas.
nuevo <- data.frame(horas = 12)
predict(modelo, nuevo)
## 1
## 104.5152
datos$prediccion <- predict(modelo)
datos
## horas calificacion prediccion
## 1 1 55 55.58182
## 2 2 60 60.03030
## 3 3 65 64.47879
## 4 4 70 68.92727
## 5 5 72 73.37576
## 6 6 78 77.82424
## 7 7 82 82.27273
## 8 8 88 86.72121
## 9 9 91 91.16970
## 10 10 95 95.61818
residuos <- residuals(modelo)
residuos
## 1 2 3 4 5 6
## -0.58181818 -0.03030303 0.52121212 1.07272727 -1.37575758 0.17575758
## 7 8 9 10
## -0.27272727 1.27878788 -0.16969697 -0.61818182
plot(fitted(modelo),
residuos,
main = "Gráfico de Residuos",
xlab = "Valores Ajustados",
ylab = "Residuos",
pch = 19)
abline(h = 0,
col = "red",
lwd = 2)
Este gráfico permite evaluar si los residuos se distribuyen aleatoriamente alrededor de cero.
## El modelo presenta un coeficiente de determinación R² de 99.65 %, lo que indica que una gran proporción de la variabilidad de las calificaciones puede explicarse mediante las horas de estudio.
La regresión lineal simple permitió identificar una relación positiva entre las horas de estudio y las calificaciones obtenidas. El modelo ajustado proporciona una herramienta útil para realizar predicciones y comprender cómo cambia la variable respuesta conforme aumenta la variable explicativa.
La calidad del ajuste puede evaluarse mediante el coeficiente de determinación (R²) y el análisis gráfico de los residuos.