1. Comportamiento de los datos

Se observa el comportamiento de los datos

# Cargamos base de datos
library(readxl) 
## Warning: package 'readxl' was built under R version 4.4.3
Ejemplo <- read_excel("C:/Users/LLUVIA MARIA/OneDrive - usco.edu.co/Escritorio/Investigación I/Ejem.xlsx")
# Grafico de dispersión
pairs(Ejemplo$promedio~Ejemplo$Horas_sueno) 

De acuerdo con la gráfica de dispersión se puede observar que al aumentar las horas de sueño, el promedio tambien aumenta

2. Prueba de normalidad

#Prueba de normalidad para la variable independiente
shapiro.test(Ejemplo$Horas_sueno)
## 
##  Shapiro-Wilk normality test
## 
## data:  Ejemplo$Horas_sueno
## W = 0.8646, p-value = 0.0004204
#Prueba de normalidad para la variable dependiente 
shapiro.test(Ejemplo$promedio)
## 
##  Shapiro-Wilk normality test
## 
## data:  Ejemplo$promedio
## W = 0.92264, p-value = 0.01506

Ambas variables no se distribuyen de manera normal, ya que el valor de p según la prueba de Shapiro-Wilk para la variable de horas de sueños es 0.0004 y la variable del promedio es 0.015.

3. Correlación

Se determinara la relación entre ambas variables, de esta manera se aplica la prueba de correlación de Pearson, Spearman y Kendall.

# Correlación de Person

cor.test(Ejemplo$Horas_sueno,Ejemplo$promedio, method="pearson")
## 
##  Pearson's product-moment correlation
## 
## data:  Ejemplo$Horas_sueno and Ejemplo$promedio
## t = 13.273, df = 34, p-value = 5.25e-15
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.8395419 0.9564076
## sample estimates:
##       cor 
## 0.9155509
# Correlación de Spearman

cor.test(Ejemplo$Horas_sueno,Ejemplo$promedio,method="spearman") # Los datos no son ordinales y no normales por ende, se acomoda mejor al comportamiento de los datos
## Warning in cor.test.default(Ejemplo$Horas_sueno, Ejemplo$promedio, method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  Ejemplo$Horas_sueno and Ejemplo$promedio
## S = 932.86, p-value = 1.568e-12
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##       rho 
## 0.8799402
# Correlación de Kendall

cor.test(Ejemplo$Horas_sueno,Ejemplo$promedio, method="kendall") # Los datos no son ordinales y son normales por ende, no se puede calcular el valor exacto de p-value
## Warning in cor.test.default(Ejemplo$Horas_sueno, Ejemplo$promedio, method =
## "kendall"): Cannot compute exact p-value with ties
## 
##  Kendall's rank correlation tau
## 
## data:  Ejemplo$Horas_sueno and Ejemplo$promedio
## z = 6.0936, p-value = 1.104e-09
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##       tau 
## 0.7837403

La relación entre las horas de sueño y el promedio es fuerte ya que el coeficiente de pearson arrojo 0.9155.n

4. Modelo Lineal

#Ajustar modelo
modelo<-lm(Ejemplo$promedio ~ Ejemplo$Horas_sueno)

#Resumen del modelo
summary(modelo)
## 
## Call:
## lm(formula = Ejemplo$promedio ~ Ejemplo$Horas_sueno)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.49438 -0.32849 -0.06144  0.25445  0.92268 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          0.99204    0.20551   4.827 2.87e-05 ***
## Ejemplo$Horas_sueno  0.41706    0.03142  13.273 5.25e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4109 on 34 degrees of freedom
## Multiple R-squared:  0.8382, Adjusted R-squared:  0.8335 
## F-statistic: 176.2 on 1 and 34 DF,  p-value: 5.25e-15

\[R^2=0.8382\] Con un \(83\%\) de la variabilidad del promedio esta relacionada con la Hora de Sueño.

\[R^2(Ajustado)=0.8335\] Al ajustar el modelo, con un \(83\%\) de la variabilidad del promedio esta relacionada con la Hora de Sueño.

\[F-statistic: \quad 176.2 \quad on \quad 1 \quad and \quad 34 DF,\quad p-value:\quad 5.25e-15\] El modelo es altamente significativo, indicando que la variable independiente realmente ayuda a predecir la variable dependiente.

5. Elementos del modelo

\[ y=0.41706x+0.992 \] Donde \(x\) son las Horas de sueño y \(y\) es el Promedio, por otra parte cuando las horas de sueño son 0, el promedio es de 0.99 \(\approx\) 1 y el incremento en el promedio por cada hora extra de sueño es de 0.41706.

6. Predicciones

Se realizaran predicciones:

\[\hat{y_i} = 0.9916 + 0.4179 × (Horas \quad de \quad Sueño)\] El residuo para cualquier individuo:

\[e_i = yi − \hat{y_i}\]

# Ajustar el modelo
modelo <- lm(Ejemplo$promedio ~ Ejemplo$Horas_sueno)
# Predicciones
predicciones <- predict(modelo)
# Residuos
residuos <- residuals(modelo)
# Crear una tabla
resultado <- data.frame(
  "Horas de Sueno" = Ejemplo$Horas_sueno,
  "Promedio Real" = Ejemplo$promedio,
  "Prediccion" = predicciones,
   Residuo = residuos
)
print(resultado)
##    Horas.de.Sueno Promedio.Real Prediccion    Residuo
## 1               3           2.5   2.243210  0.2567901
## 2               2           2.0   1.826153  0.1738467
## 3               1           1.0   1.409097 -0.4090968
## 4               6           3.0   3.494379 -0.4943795
## 5               8           4.0   4.328493 -0.3284925
## 6               8           4.5   4.328493  0.1715075
## 7               9           5.0   4.745549  0.2544509
## 8               5           3.5   3.077323  0.4226771
## 9               6           3.0   3.494379 -0.4943795
## 10              6           3.2   3.494379 -0.2943795
## 11              7           3.8   3.911436 -0.1114360
## 12              8           4.0   4.328493 -0.3284925
## 13              7           4.0   3.911436  0.0885640
## 14              8           5.0   4.328493  0.6715075
## 15              5           4.0   3.077323  0.9226771
## 16              3           2.5   2.243210  0.2567901
## 17              2           2.0   1.826153  0.1738467
## 18              1           1.0   1.409097 -0.4090968
## 19              6           3.0   3.494379 -0.4943795
## 20              8           4.0   4.328493 -0.3284925
## 21              8           4.5   4.328493  0.1715075
## 22              9           5.0   4.745549  0.2544509
## 23              5           3.5   3.077323  0.4226771
## 24              6           3.0   3.494379 -0.4943795
## 25              6           3.2   3.494379 -0.2943795
## 26              7           3.8   3.911436 -0.1114360
## 27              8           4.0   4.328493 -0.3284925
## 28              7           4.0   3.911436  0.0885640
## 29              8           5.0   4.328493  0.6715075
## 30              5           4.0   3.077323  0.9226771
## 31              8           4.5   4.328493  0.1715075
## 32              8           4.2   4.328493 -0.1284925
## 33              8           4.1   4.328493 -0.2284925
## 34              7           3.9   3.911436 -0.0114360
## 35              7           3.6   3.911436 -0.3114360
## 36              6           3.0   3.494379 -0.4943795

De acuerdo con la tabla anterior, se muestra que cuando un estudiante duerme 6 horas, su promedio real es de 3.0 y por medio del modelo obtenido se predice que su nota promedio es 3.5, donde el residuo es de -0.49, teniendo en cuenta que la nota promedio observada es menor a la nota promedio estimada.Por otra parte un estudiante que tenga 2 horas de dormir, tendra en promedio una nota de 2.0, luego se precide a partir del modelo que su nota promedio es de 1.8 con un residuo de 0.17, en este caso la nota promedio observada es mayor a la nota promedio estimada.

7. Verificación de supuestos de Regresión Lineal

Verificaciónn de Supuestos en el Modelo de Regresión Lineal

7.1. Linealidad

La relación entre la variable independiente (Horas de sueño) y la dependiente (promedio) debe ser lineal, es decir, describirse bien con una lınea recta.

plot(Ejemplo$Horas_sueno, Ejemplo$promedio, main = "Relacion Horas de Sueno vs Promedio", xlab = "Horas de Sueno", ylab = "Promedio")
abline(modelo, col = "red", lwd = 2)

De acuerdo con la gráfica, se puede comprobar que los datos no tienen un comportamiento lineal, ya que existen valores que no se encuentran sobre la linea de tendencia.

7.2. Independencia de los errores

Los residuos (errores) del modelo deben ser independientes entre si, sin autocorrelación.

library(lmtest) 
## Warning: package 'lmtest' was built under R version 4.4.3
## Cargando paquete requerido: zoo
## Warning: package 'zoo' was built under R version 4.4.3
## 
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
dwtest(modelo)
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 0.99102, p-value = 0.0003737
## alternative hypothesis: true autocorrelation is greater than 0

Test de Durbin-Watson

  • Hipótesis nula (H₀): No hay autocorrelación en los residuos.(Los errores son independientes), donde p-value > 0.05

  • Hipótesis alternativa (H₁): Hay autocorrelación en los residuos. (Normalmente se prueba autocorrelación positiva, pero también se puede investigar negativa), donde p-value < 0.05

Decisión: Dado que el p-valor = 0.0003 es menor a 0.05, rechazamos la hipotesis nula y aceptamos la alternativa, donde se confirma que existe dependencia entre los errores.

7.3. Homoscedasticidad

La varianza de los residuos debe ser constante para todos los valores de la variable independiente.

# Graficar residuos vs. valores ajustados
plot(modelo$fitted.values, resid(modelo),
     xlab = "Valores ajustados",  # fitted values
     ylab = "Residuos",
     main = "Grafico de residuos vs. valores ajustados",
     pch = 19, col = "pink")
abline(h = 0, col = "purple", lty = 2)

Los valores de los residuales deberian agruparse sobre la linea de referencia (0), que indica si el modelo de regresión es bueno, donde se evidencia que los valores no presentan un patron definido, es decir estan dispersos de manera homogenea. Por tanto se concluye que hay homoscedasticidad.

library(lmtest) 
bptest(modelo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 0.47948, df = 1, p-value = 0.4887

Test de Breusch

  • La hipótesis nula (H₀):Los residuos son homocedásticos (es decir, tienen varianza constante), donde el p-value > 0.05

  • La hipótesis alternativa (H₁): Hay heterocedasticidad (la varianza de los errores no es constante),donde el p-value < 0.05

Decisión: Dado que el p-valor = 0.4887 es mayor a 0.05, no rechazamos la hipótesis nula, por lo tanto los residuos son homoscedásticos.

7.4. Normalidad de los errores

Los residuos deberían seguir una distribución normal.

  • Histograma de residuos:
hist(modelo$residuals, 
     breaks = 10, 
     probability = TRUE,  # Para que el eje Y sea densidad
     main = "Histograma de los Residuos con Curvas de Densidad", 
     xlab = "Residuos", 
     col = "lightgray", 
     border = "white")

# Línea de densidad de los residuos
lines(density(modelo$residuals), 
      col = "purple", 
      lwd = 2)

# Línea de distribución normal teórica
curve(dnorm(x, mean = mean(modelo$residuals), sd = sd(modelo$residuals)), 
      col = "blue", 
      lwd = 2, 
      lty = 2, 
      add = TRUE)

Con base en el histograma se puede identificar que no existe normalidad en el comportamiento de los residuos.

  • QQ plot:
qqnorm(modelo$residuals)
qqline(modelo$residuals, col = "red", lwd = 2)

Según la grafica del QQ-Plot, se demuestra que los residuos no siguen una tendencia lineal, donde hay residuos atipicos y otros tienen un comportamiento escalonado.

  • Test formal de normalidad (Shapiro-Wilk test) :
shapiro.test(modelo$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo$residuals
## W = 0.91761, p-value = 0.01071

Test Shapiro Wilk

  • La hipótesis nula (H): Los errores siguen una distribución normal, donde el p-value > 0.05

  • La hipótesis alternativa (H₁):Los errores no siguen una distribución normal,donde el p-value < 0.05

Decisión: Dado que el p-valor = 0.01 es menor a 0.05, rechazamos la hipotesis nula, por lo tanto los errores no tienen una distribución normal.

CONCLUSIÓN GENERAL

## Error Cuadratico Medio (ECM)

ECM <- mean(residuos^2)
ECM
## [1] 0.1594437

Interpretación: El ECM nos dice en promedio cuánto se está equivocando el modelo, pero en unidades al cuadrado. tambien nos permite comparar el ajuste entre los modelos ya que entre mas bajo sea, mejor el ajuste.

RMSE<-sqrt(ECM)
RMSE
## [1] 0.399304

Interpretación: El RMSE indica, en promedio, cuánto se desvían las predicciones del modelo respecto a las notas reales, en la misma escala (0 a 5).

Modelo de Regresion Multiple

La regresión lineal múltiple es una extensión de la regresión lineal simple que permite modelar la relación entre una variable dependiente \(Y\) y múltiples variables independientes \(X_1, X_2, \dots, X_k\).

# Cargamos base de datos (Agregamos 2 nuevas variables Horas de estudio y Estrato Socioeconomico)

library(readxl)
Ejemplo <- read_excel("C:/Users/LLUVIA MARIA/OneDrive - usco.edu.co/Escritorio/Investigación I/Ejem.xlsx")

head(Ejemplo)
## # A tibble: 6 × 4
##   Horas_sueno Hora_Estudio Horas_frente_a_pantallas promedio
##         <dbl>        <dbl>                    <dbl>    <dbl>
## 1           3          2                       4.56      2.5
## 2           2          3                       3.91      2  
## 3           1          1.5                     2.86      1  
## 4           6          4                       5.31      3  
## 5           8          3.5                     7.19      4  
## 6           8          5                       9.74      4.5

Es un conjunto de datos que contiene 36 elementos con informacion sobre el rendimiento academico promedio de los estudiantes según sus horas de estudio, horas de sueño y Horas frente a la Pantalla.

Prueba de Normalidad - Shapiro Wilk

Hipotesis nula\(H_0\): Los datos siguen una distribucion normal, si p > 0.05 Hipotesis alterna\(H_1\): Los datos no siguen una distribucion normal, si p ≤ 0.05

#Prueba de normalidad para las variables independientes
shapiro.test(Ejemplo$Horas_sueno)
## 
##  Shapiro-Wilk normality test
## 
## data:  Ejemplo$Horas_sueno
## W = 0.8646, p-value = 0.0004204
shapiro.test(Ejemplo$Hora_Estudio)
## 
##  Shapiro-Wilk normality test
## 
## data:  Ejemplo$Hora_Estudio
## W = 0.96984, p-value = 0.4212
shapiro.test(Ejemplo$Horas_frente_a_pantallas)
## 
##  Shapiro-Wilk normality test
## 
## data:  Ejemplo$Horas_frente_a_pantallas
## W = 0.96554, p-value = 0.3164
#Prueba de normalidad para la variable dependiente 

shapiro.test(Ejemplo$promedio)
## 
##  Shapiro-Wilk normality test
## 
## data:  Ejemplo$promedio
## W = 0.92264, p-value = 0.01506

Las variables que se distribuyen de manera normal son la de Hora de Estudio y las Horas frente a la pantalla ya que, el valor de p según la prueba de Shapiro-Wilk es de 0.42 y 0.31 respectivamente, mientras que las variables de Hora de sueño y promedio no contienen una distribucion normal dado que su p-value es menor al 0.05.

Correlacion entre la variable dependiente e independientes

cor(Ejemplo$Horas_sueno,Ejemplo$promedio)
## [1] 0.9155509
cor(Ejemplo$Hora_Estudio,Ejemplo$promedio)
## [1] 0.6012921
cor(Ejemplo$Horas_frente_a_pantallas,Ejemplo$promedio)
## [1] 0.9652164

Como se puede evidenciar la correlacion entre las variables de horas de sueño y el promedio es positiva y fuerte ya que arrojo un 0.91, mientras que la de horas de estudio y el promedio es positiva pero moderada con un resultado de 0.6.Finalmente, la relacion que tiene la Hora frente a pantallas y el promedio es positivo indicando que es muy fuerte, en pocas palabras tiene relación.

Modelo regresion multivariado

modelo <- lm(Ejemplo$promedio ~ Ejemplo$Horas_sueno + Ejemplo$Hora_Estudio + Ejemplo$Horas_frente_a_pantallas)
summary(modelo)
## 
## Call:
## lm(formula = Ejemplo$promedio ~ Ejemplo$Horas_sueno + Ejemplo$Hora_Estudio + 
##     Ejemplo$Horas_frente_a_pantallas)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.45509 -0.20122  0.02773  0.17835  0.35543 
## 
## Coefficients:
##                                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                       0.09424    0.16831   0.560   0.5794    
## Ejemplo$Horas_sueno               0.10905    0.04468   2.441   0.0204 *  
## Ejemplo$Hora_Estudio              0.01585    0.02474   0.641   0.5262    
## Ejemplo$Horas_frente_a_pantallas  0.37496    0.04701   7.977 4.18e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2446 on 32 degrees of freedom
## Multiple R-squared:  0.9461, Adjusted R-squared:  0.941 
## F-statistic:   187 on 3 and 32 DF,  p-value: < 2.2e-16
  • Analisis de residuales:

    Min: El error más negativo fue -0.45

    1Q: El 25% de los residuos estan por debado de -0.20

    Mediana: El residuo tipico(mediano)fue -0,02 (Casi cero, muy bueno)

    3Q: El 75% de los residuos están por debajo de 0.17

    Max: El error más grande fue 0.35

    Se menciona que la variable de hora de estudio no es significativa en el modelo, en pocas palabras no le aporta en la predición.

  • Residual standard error: \[0.24\] Se puede evidenciar que existe un error estandar bajo, lo cual indica la existencia de errores pequeños y consistentes.De igual forma el promedio del tamaño de los errores es 0.24.

  • Multiple R-squared:

\[R^2=0.9461\] Con un \(95\%\) de la variabilidad del promedio esta relacionada con la Hora de Sueño, Hora de Estudio y Hora frente a la Pantalla que explican en gran parte el comportamiento del modelo.

  • Adjusted R-squared:

\[R^2(Ajustado)=0.941\] Al ajustar el modelo, con un \(94\%\) de la variabilidad del promedio esta relacionada con la Hora de Sueño, Hora de Estudio y Hora frente a la Pantalla del comportamiento del modelo. Por ende, se debe mirar si la variable que no le esta aportando en el como es la de Hora de estudio al eliminarla mejora ese r^2 ajustado o lo mantiene igual.

  • F-statistic y p-value:

\[F-statistic: 187 on 3 and 32 DF, p-value: < 2.2e-16\] El modelo es altamente significativo, indicando que la variables independientes realmente ayuda a predecir la variable dependiente.

Interpretacion detallada de los coeficientes

options(scipen = 999)
coeficientes <- summary(modelo)$coefficients
coeficientes
##                                    Estimate Std. Error   t value
## (Intercept)                      0.09424429 0.16831152 0.5599397
## Ejemplo$Horas_sueno              0.10905058 0.04468248 2.4405670
## Ejemplo$Hora_Estudio             0.01585464 0.02474383 0.6407514
## Ejemplo$Horas_frente_a_pantallas 0.37496495 0.04700584 7.9769864
##                                           Pr(>|t|)
## (Intercept)                      0.579419578662515
## Ejemplo$Horas_sueno              0.020380756471696
## Ejemplo$Hora_Estudio             0.526246574263524
## Ejemplo$Horas_frente_a_pantallas 0.000000004177787

Elementos del modelo multivariado

\[ y= 0.09424 + 0.10905x_1 + 0.01585x_2 + 0.37496x_3 \] - Intercepto (0.09): el promedio es de 0.09 cuando Horas de Estudio, Horas de Sueño y Hora frente a Pantalla son cero.

  • Horas_sueño (0.109): Por cada hora adicional de sueño, el promedio aumenta en 0.109 unidades, manteniendo Hora_Estudio y Hora_frente_a_Pantalla constantes. Este coeficiente es estadisticamente significativo (p= 0.020380756471696).

  • Horas_Estudio (0.0158): Por cada Hora de Estudio adicional, el promedio aumenta en 0.0158 unidades.Es de aclarar que esta variable no es significativo (p=0.526246574263524) siendo mayor a 0.05.

Horas_frente_a_Pantalla (0.37496): Por cada Hora de Estudio adicional, el promedio aumenta en 0.37496 unidades.Este coeficiente es estadisticamente significativo (p=0.000000004177787) siendo menor a 0.05.

Se determina si el orden de las variables altera el modelo

modelo2 <- lm(Ejemplo$promedio ~ Ejemplo$Hora_Estudio+ Ejemplo$Horas_frente_a_pantallas + Ejemplo$Horas_sueno)
summary(modelo2)
## 
## Call:
## lm(formula = Ejemplo$promedio ~ Ejemplo$Hora_Estudio + Ejemplo$Horas_frente_a_pantallas + 
##     Ejemplo$Horas_sueno)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.45509 -0.20122  0.02773  0.17835  0.35543 
## 
## Coefficients:
##                                  Estimate Std. Error t value      Pr(>|t|)    
## (Intercept)                       0.09424    0.16831   0.560        0.5794    
## Ejemplo$Hora_Estudio              0.01585    0.02474   0.641        0.5262    
## Ejemplo$Horas_frente_a_pantallas  0.37496    0.04701   7.977 0.00000000418 ***
## Ejemplo$Horas_sueno               0.10905    0.04468   2.441        0.0204 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2446 on 32 degrees of freedom
## Multiple R-squared:  0.9461, Adjusted R-squared:  0.941 
## F-statistic:   187 on 3 and 32 DF,  p-value: < 0.00000000000000022
coeficientes2 <- summary(modelo2)$coefficients
coeficientes2
##                                    Estimate Std. Error   t value
## (Intercept)                      0.09424429 0.16831152 0.5599397
## Ejemplo$Hora_Estudio             0.01585464 0.02474383 0.6407514
## Ejemplo$Horas_frente_a_pantallas 0.37496495 0.04700584 7.9769864
## Ejemplo$Horas_sueno              0.10905058 0.04468248 2.4405670
##                                           Pr(>|t|)
## (Intercept)                      0.579419578662509
## Ejemplo$Hora_Estudio             0.526246574263522
## Ejemplo$Horas_frente_a_pantallas 0.000000004177787
## Ejemplo$Horas_sueno              0.020380756471696
modelo3 <- lm(Ejemplo$promedio ~ Ejemplo$Horas_frente_a_pantallas + Ejemplo$Horas_sueno + Ejemplo$Hora_Estudio)
summary(modelo3)
## 
## Call:
## lm(formula = Ejemplo$promedio ~ Ejemplo$Horas_frente_a_pantallas + 
##     Ejemplo$Horas_sueno + Ejemplo$Hora_Estudio)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.45509 -0.20122  0.02773  0.17835  0.35543 
## 
## Coefficients:
##                                  Estimate Std. Error t value      Pr(>|t|)    
## (Intercept)                       0.09424    0.16831   0.560        0.5794    
## Ejemplo$Horas_frente_a_pantallas  0.37496    0.04701   7.977 0.00000000418 ***
## Ejemplo$Horas_sueno               0.10905    0.04468   2.441        0.0204 *  
## Ejemplo$Hora_Estudio              0.01585    0.02474   0.641        0.5262    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2446 on 32 degrees of freedom
## Multiple R-squared:  0.9461, Adjusted R-squared:  0.941 
## F-statistic:   187 on 3 and 32 DF,  p-value: < 0.00000000000000022
coeficientes3 <- summary(modelo3)$coefficients
coeficientes3
##                                    Estimate Std. Error   t value
## (Intercept)                      0.09424429 0.16831152 0.5599397
## Ejemplo$Horas_frente_a_pantallas 0.37496495 0.04700584 7.9769864
## Ejemplo$Horas_sueno              0.10905058 0.04468248 2.4405670
## Ejemplo$Hora_Estudio             0.01585464 0.02474383 0.6407514
##                                           Pr(>|t|)
## (Intercept)                      0.579419578662508
## Ejemplo$Horas_frente_a_pantallas 0.000000004177787
## Ejemplo$Horas_sueno              0.020380756471696
## Ejemplo$Hora_Estudio             0.526246574263524

Como se puede observar el orden no importa en este caso ya que, se arroja el mismo resultado dado a que los valores se calculan de forma independiente.

validacion o Diagnostico del modelo

Supuestos

1. Linealidad

La relación entre la variable independiente (Horas de sueño, Horas de Estudio y Horas frente a Pantalla) y la dependiente (promedio) debe ser lineal ya que, sus coeficientes son el resultado del modelo. Es de resaltar que se utilizan los residuales porque estos nos permiten ver el comportamiento de los residuos, en pocas palabras se ve si la relacion entre los predictores y la respuesta es realmente lineal.

plot(modelo$fitted.values, modelo$residuals,
     main = "Residuos vs Valores Ajustados",
     xlab = "Valores Ajustados", ylab = "Residuos", pch = 19, col = "darkgreen")
abline(h = 0, col = "blue", lty = 2)

Interpretacion: Los valores de los residuales estan repartidos aleatoreamente alrededor del eje 0, por ende no tienen un comportamiento claro.

2 Homocedasticidad

La varianza de los residuos debe ser constante para todos los valores de la variable independiente

library(lmtest) 
bptest(modelo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 1.7195, df = 3, p-value = 0.6326

Test de Breusch

  • La hipótesis nula (H₀):Los residuos son homocedásticos (es decir, tienen varianza constante), donde el p-value > 0.05

  • La hipótesis alternativa (H₁): Hay heterocedasticidad (la varianza de los errores no es constante),donde el p-value < 0.05

Decisión: Dado que el p-valor = 0.63 es mayor a 0.05, no rechazamos la hipótesis nula, por lo tanto los residuos son homoscedásticos.

3 Independencia de los errores

Los residuos (errores) del modelo deben ser independientes entre si, sin autocorrelación.

library(lmtest) 
dwtest(modelo)
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 1.9986, p-value = 0.4162
## alternative hypothesis: true autocorrelation is greater than 0

Test de Durbin-Watson

  • Hipótesis nula (H₀): No hay autocorrelación en los residuos.(Los errores son independientes), donde p-value > 0.05

  • Hipótesis alternativa (H₁): Hay autocorrelación en los residuos. (Normalmente se prueba autocorrelación positiva, pero también se puede investigar negativa), donde p-value < 0.05

Decisión: Dado que el p-valor = 0.41 es mayor a 0.05, por tanto, no existe suficiente evidencia cientifica para recharzar la hipotesis nula. En pocas palabras, los errores son independientes.

4 No Multicolinealidad

Puede afectar la estabilidad de los coeficientes. Si dos o más variables independientes están muy correlacionadas entre sí, los estimadores pueden volverse inestables. Se evalúa con el VIF (Variance Inflation Factor).

library(car)
## Warning: package 'car' was built under R version 4.4.3
## Cargando paquete requerido: carData
## Warning: package 'carData' was built under R version 4.4.3
vif(modelo)
##              Ejemplo$Horas_sueno             Ejemplo$Hora_Estudio 
##                         5.707049                         1.683843 
## Ejemplo$Horas_frente_a_pantallas 
##                         4.991918

VIF ≈ 1: No hay colinealidad.

VIF entre 1 y 5: Moderada colinealidad (aceptable).

VIF > 10: Colinealidad alta. Puede ser preocupante.

Con lo anterior, se puede decir que existe una colinealidad moderada de la variable Horas de Estudio y Horas frente a Pantallas con respecto a horas de sueño. Mientras que la variable Horas de Sueño tiene una multicolinealidad alta indicando que hay una correlacion fuerte entre ellas.

5 Normalidad de los residuos

residuos<-residuals(modelo)

library(ggplot2)
hist(modelo$residuals, 
     breaks = 10, 
     probability = TRUE,  # Para que el eje Y sea densidad
     main = "Histograma de los Residuos con Curvas de Densidad", 
     xlab = "Residuos", 
     col = "lightgray", 
     border = "white")

residuos<-residuals(modelo)
  lines(density(residuos), 
      col = "purple", 
      lwd = 2)

# Línea de distribución normal teórica
curve(dnorm(x, mean = mean(modelo$residuals), sd = sd(modelo$residuals)), 
      col = "blue", 
      lwd = 2, 
      lty = 2, 
      add = TRUE)

Con base en el histograma se puede identificar que existe normalidad en el comportamiento de los residuos.

  • QQ plot:
qqnorm(modelo$residuals)
  qqline(modelo$residuals, col = "red", lwd = 2)

Según la grafica del QQ-Plot, se demuestra que los residuos siguen una tendencia lineal, en donde existen residuos atipicos pero que se van aproximando a la linea de tendencia.

  • Test formal de normalidad (Shapiro-Wilk test) :
shapiro.test(modelo$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo$residuals
## W = 0.94455, p-value = 0.07048

Test Shapiro Wilk

  • La hipótesis nula (H): Los errores siguen una distribución normal, donde el p-value > 0.05

  • La hipótesis alternativa (H₁):Los errores no siguen una distribución normal,donde el p-value < 0.05

Decisión: Dado que el p-valor = 0.07 es mayor a 0.05, no existe suficiente evidencia cientifica para rechazar la hipotesis nula, por lo tanto los errores tienen una distribución normal.

Conclusion

  • Primero se aplicó la prueba de normalidad de Shapiro Wilk ya que la poblacion son 36 estudiantes considerandose pequeña, donde se evidencio que el comportamiento de 2 variables (Horas de Estudio y Horas frente a Pantalla son normales)mientras que la de Horas Sueño no lo fue, de tal manera se aplicó la correlación.Por otra parte, se determino un modelo de regresión lineal multivariado determinando que Horas de Sueño y Horas frente a Pantallas tenian un grado de significancia ya que el p-value es inferior al 0.05. Finalmente,se probaron algunas condiciones para revisar la fuerza del modelo, en ese sentido se evidencio que el modelo cumple con todos los supuestos, los cuales son linealidad, Independencia de los errores,Normalidad de los errores, No Multicolinealidad y Homocedasticidad, haciendo que el modelo estadistico sea solido, interpretable y confiable para poder realizar inferencias junto con las predicciones.

Anova

Anova Tipo 1

Revisa la variabilidad de las variables secuencial - Forma más pertinente y las variables significativa

anova(modelo)
## Analysis of Variance Table
## 
## Response: Ejemplo$promedio
##                                  Df  Sum Sq Mean Sq F value
## Ejemplo$Horas_sueno               1 29.7431 29.7431 497.195
## Ejemplo$Hora_Estudio              1  0.0191  0.0191   0.319
## Ejemplo$Horas_frente_a_pantallas  1  3.8066  3.8066  63.632
## Residuals                        32  1.9143  0.0598        
##                                                 Pr(>F)    
## Ejemplo$Horas_sueno              < 0.00000000000000022 ***
## Ejemplo$Hora_Estudio                            0.5761    
## Ejemplo$Horas_frente_a_pantallas        0.000000004178 ***
## Residuals                                                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#anova(modelo2)

#anova(modelo3)
  • DF (Grados de Libertad): El modelo contiene 3 grados de libertad dado a que, presenta las variables Horas Sueño, Hora Estudio y Horas frente a pantallas que tienen un solo efecto en el modelo.

  • Sum sq (suma de cuadrados) hace referencia a la cantidad de la variabilidad explicada: Para el modelo, la variable Horas Sueño es la que mejor explica ya que, el 29.7 unidades cuadráticas representa la variabilidad de los residuos por cada grado de libertad.Por otro lado,la variable de horas de estudio expresa la menor variabilidad interna dentro del modelo dado que, su valor es de 0.01 unidades cuadraditas que explican la variabilidad de los residuos por cada grado de libertad. Finalmente, la variable horas frente a pantallas presenta un valor moderado en su variabilidad puesto que, contiene un valor de 3.80 aproximadamente 4 unidades cuadradas por grado de libertad. En pocas palabras, se puede decir que el modelo es mejor explicado por la variable Horas de Sueño que por las varibables de Horas de pantallas y estudio.

  • F Value: La variable Horas sueño tiene un f-value igual 497 el cual muy alto y explica una gran proporcion de la variabilidad del promedio, asi como la variable Horas frente a pantallas con un f-value de 64, donde este tiene una variabilidad moderada frente a la variable hora de sueño, pero sigue manteniendo una relacion fuerte con respecto al promedio. Por otro lado, la variable horas de estudio cuenta con un f-value de 0,3 manifestando que este tiene una relacion debil con respecto al promedio.

  • P-Value: Podemos observar que las variables Hora sueño y Horas frente a pantallas son significativas en el modelo ya que, tienen un p-value menor al de 0.05, mientras que la variable Horas estudio no influye dentro de el dado que su p-value es superior a 0.05.

Conclusion

Es de resaltar que cuando el modelo contiene un F-value alto y un P-value bajo se determina que el modelo es altamente significativo.