En el presente análisis se utilizará la base de datos Student Performance Factor para explorar la relación entre las horas de estudio (Hours_Studied) y el desempeño académico (Exam_Score) de los estudiantes. El objetivo principal es determinar si el tiempo dedicado al estudio tiene un efecto significativo en los resultados obtenidos en los exámenes. Para ello, se aplicará un modelo de regresión lineal simple, considerando Exam_Score como variable dependiente y Hours_Studied como variable independiente.
library(ggplot2)
library(dplyr)
library(readr)
library(knitr)
database = read.csv("C:/Users/Daniel/Documents/Especializacion en Estadistica/Taller 1 Modelo de Regresion Lineal/StudentPerformanceFactors.csv")
set.seed(123)
database = database[sample(nrow(database), 100), ]
pairs(database$Hours_Studied~ database$Exam_Score, labels=c("Horas de Estudio", "Puntuacion Examen"))
Figura 1. Relación entre horas de estudio y puntaje en el examen
La Figura 1 muestra una relación dispersa entre las horas de estudio (Hours_Studied) y el puntaje en el examen (Exam_Score). Aunque los puntos están distribuidos de manera dispersa, se observa un indicio de relación positiva: a medida que aumentan las horas de estudio, parece haber una tendencia a obtener mejores puntajes en el examen, lo que sugiere una correlación positiva entre estas dos variables.
Dado que la relación entre las variables es un paso preliminar para el análisis de regresión, se llevará a cabo una prueba de normalidad para evaluar si ambas variables siguen una distribución normal, lo cual es un supuesto importante para aplicar una regresión lineal. En las siguientes etapas del análisis, se realizará una prueba de normalidad utilizando Shapiro-Wilk, y en caso de que los datos no sigan una distribución normal, se considerarán posibles transformaciones de las variables o el uso de otro tipo de modelos.
shapiro_horasestudio = shapiro.test(database$Hours_Studied)
shapiro_horasestudio
##
## Shapiro-Wilk normality test
##
## data: database$Hours_Studied
## W = 0.9874, p-value = 0.4652
shapiro_puntajeexam = shapiro.test(database$Exam_Score)
shapiro_puntajeexam
##
## Shapiro-Wilk normality test
##
## data: database$Exam_Score
## W = 0.98776, p-value = 0.4903
Se realizaron pruebas de normalidad para las variables Horas de Estudio y Puntaje en el Examen utilizando la prueba de Shapiro-Wilk.
Dado que tanto las horas de estudio como el puntaje en el examen siguen distribuciones normales, se cumple uno de los supuestos clave para realizar la regresión lineal. Por lo tanto, podemos proceder con la Regresión Lineal para modelar la relación entre estas dos variables.
Se realizará el cálculo del coeficiente de correlación de Pearson para evaluar la relación lineal entre las variables Horas de Estudio y Puntaje en el Examen. Este análisis determinará la fuerza y dirección de la relación entre ambas variables, lo que ayudará a evaluar si una puede predecir la otra en un modelo de regresión lineal.
En esta sección, se llevará a cabo el cálculo del coeficiente de correlación de Pearson para medir la relación lineal entre las variables Horas de Estudio y Puntaje en el Examen.
correlacion_pearson = cor.test(database$Hours_Studied,database$Exam_Score, method = "pearson")
correlacion_pearson
##
## Pearson's product-moment correlation
##
## data: database$Hours_Studied and database$Exam_Score
## t = 7.9278, df = 98, p-value = 3.615e-12
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.4886720 0.7316749
## sample estimates:
## cor
## 0.6250913
El coeficiente de correlación de Pearson calculado entre las variables Horas de Estudio y Puntaje en el Examen es 0.625, lo que indica una correlación positiva moderada entre ambas variables. Esto sugiere que, en general, a medida que las horas de estudio aumentan, el puntaje en el examen tiende a mejorar, aunque la relación no es perfecta.
Este valor sugiere que existe una asociación lineal significativa, lo que justifica la aplicación de un modelo de regresión lineal para explorar más a fondo cómo las horas de estudio pueden influir en el rendimiento en el examen.
Con base en el análisis de correlación de Pearson, donde se observó una correlación positiva moderada entre las variables Horas de Estudio y Puntaje en el Examen, se procederá a construir un modelo de regresión lineal. Este modelo tiene como objetivo predecir el puntaje en el examen en función de las horas de estudio, evaluando la fuerza y la dirección de esta relación.
La regresión lineal permite identificar cómo una variable independiente (en este caso, las horas de estudio) influye en una variable dependiente (el puntaje en el examen), proporcionando una ecuación que describe esta relación. Este análisis permitirá hacer predicciones sobre el rendimiento en los exámenes en función de las horas dedicadas al estudio.
modelo = lm(database$Exam_Score ~ database$Hours_Studied)
summary(modelo)
##
## Call:
## lm(formula = database$Exam_Score ~ database$Hours_Studied)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.3003 -1.6292 0.1208 2.0598 6.7235
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 59.74075 0.96933 61.631 < 2e-16 ***
## database$Hours_Studied 0.37798 0.04768 7.928 3.61e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.791 on 98 degrees of freedom
## Multiple R-squared: 0.3907, Adjusted R-squared: 0.3845
## F-statistic: 62.85 on 1 and 98 DF, p-value: 3.615e-12
El modelo de regresión lineal muestra los siguientes resultados:
Los valores de t value y p-value indican la significancia estadística de los coeficientes:
Los residuos del modelo, que representan las diferencias entre los valores observados y los predichos son los siguientes:
En general, los residuos tienen una distribución relativamente equilibrada, con valores cercanos a cero, lo que sugiere que el modelo de regresión no presenta un sesgo claro (es decir, no tiende sistemáticamente a sobrestimar o subestimar los puntajes). La dispersión entre los valores mínimos y máximos, sin embargo, indica que hay casos en los que el modelo tiene errores de predicción considerables, lo que es común en los modelos de regresión lineal.
El R-cuadrado es 0.3907, lo que significa que aproximadamente el 39.07% de la variabilidad en el puntaje del examen puede ser explicada por las horas de estudio. Este es un valor moderado, lo que sugiere que las horas de estudio tienen una influencia significativa pero no explican toda la variabilidad en los puntajes. Sin embargo, el R-cuadrado ajustado de 0.3845 ajusta este valor para tener en cuenta el número de variables en el modelo, indicando que, después de ajustar por la cantidad de predictores, el modelo sigue explicando una parte importante de la variabilidad.
El F-statistic de 62.85 y el p-value de 3.615e-12 muestran que el modelo en su conjunto es altamente significativo. Es decir, al menos una de las variables en el modelo (en este caso, las Horas de Estudio) tiene un impacto significativo en el Puntaje en el Examen, lo que valida que el modelo es útil y no es producto del azar.
En conclusión, el modelo de regresión muestra una relación positiva significativa entre las Horas de Estudio y el Puntaje en el Examen, aunque el modelo no explica toda la variabilidad en el rendimiento, sugiriendo que otros factores también podrían influir en los puntajes de los exámenes.
1. Supuesto de Linealidad:
El supuesto de linealidad implica que la relación entre las variables independientes y la dependiente es lineal. Para verificarlo, se puede graficar los residuos frente a los valores predichos. Si la relación es lineal, los residuos deben estar distribuidos aleatoriamente alrededor de la línea horizontal sin formar patrones sistemáticos.
predicciones <- predict(modelo)
residuos <- residuals(modelo)
plot(predicciones, residuos, main="Residuos vs Predicciones",
xlab="Valores Predichos", ylab="Residuos", pch=19, col="blue")
abline(h=0, col="red") # Línea horizontal en cero
Figura 2. Residuos vs Predicciones
Los puntos en la gráfica están dispersos aleatoriamente alrededor de cero, lo que sugiere que no hay un patrón claro en los residuos. Este comportamiento indica que la relación entre las variables Horas de Estudio y Puntaje de Examen sigue una tendencia lineal, cumpliendo así con el supuesto de linealidad en el modelo de regresión.
2. Supuesto de Independencia de los Errores:
El supuesto de independencia implica que los residuos no están correlacionados entre sí. Para verificar este supuesto, podemos utilizar el test de Durbin-Watson. Un valor cercano a 2 indica que no hay autocorrelación.
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.4.2
## Warning: package 'zoo' was built under R version 4.4.2
dwtest(modelo)
##
## Durbin-Watson test
##
## data: modelo
## DW = 1.9739, p-value = 0.4456
## alternative hypothesis: true autocorrelation is greater than 0
Este test se utiliza para verificar la presencia de autocorrelación en los residuos de un modelo de regresión. La autocorrelación puede influir en la validez de las conclusiones del modelo. A continuación, se presentan los resultados del test.
DW = 1.9739: Este valor está muy cerca de 2, lo que sugiere que no hay autocorrelación significativa en los residuos. Un valor cercano a 2 indica que los errores no están correlacionados, lo cual es deseable en un modelo de regresión.
p-value = 0.4456: El p-value es mayor que 0.05, por lo que no hay evidencia suficiente para rechazar la hipótesis nula. Esto implica que no se detecta autocorrelación significativa en los residuos del modelo.
Con base en los resultados obtenidos, podemos concluir que los residuos del modelo no presentan autocorrelación significativa. Este es un buen resultado, ya que indica que los residuos cumplen con el supuesto de independencia, lo que fortalece la validez del modelo de regresión ajustado.
3. Supuesto de Homoscedasticidad:
La homoscedasticidad supone que la varianza de los residuos es constante para todos los niveles de las variables independientes. Se puede verificar mediante un gráfico de dispersión de los residuos frente a los valores predichos o con el test de Breush - Pagan .
library(lmtest)
bptest(modelo)
##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 0.070869, df = 1, p-value = 0.7901
Resultados:
Con base en los resultados, podemos concluir que los residuos del modelo no presentan heteroscedasticidad. Este es un buen resultado, ya que indica que la varianza de los residuos es constante en todo el rango de la variable independiente, lo cual fortalece la validez del modelo de regresión ajustado.
4. Supuesto de Normalidad de los Errores:
El supuesto de normalidad implica que los residuos siguen una distribución normal. Para verificarlo, podemos utilizar el test de Shapiro-Wilk y el gráfico Q-Q.
shapiro.test(residuos)
##
## Shapiro-Wilk normality test
##
## data: residuos
## W = 0.98914, p-value = 0.5958
El valor de W = 0.98914 y el p-value = 0.5958 indican que no hay suficiente evidencia para rechazar la hipótesis nula de normalidad. Esto sugiere que los residuos siguen una distribución normal, lo cual es un buen resultado para el modelo de regresión lineal.
qqnorm(residuos)
qqline(residuos, col="red")
Figura 3.Q-Q Plot Residuos
QQ-Plot: La Figura 3 muestra que los residuos siguen aproximadamente una línea recta, lo que también respalda la conclusión de que los residuos tienen una distribución normal.
El análisis realizado proporciona evidencia de que las Horas de Estudio tienen un impacto positivo en el Puntaje de Examen de los estudiantes. Además, todos los supuestos de la regresión lineal, incluyendo normalidad, homoscedasticidad, autocorrelación y linealidad, se cumplen de manera adecuada, lo que valida el modelo de regresión utilizado. Aunque el modelo explica una proporción moderada de la variabilidad en el puntaje del examen, sugiere que existen otros factores que también podrían influir en el rendimiento académico y que podrían ser explorados en análisis futuros.