REGRESION LINEAL SIMPLE

Es un modulo estadístico que establece una relación entre dos variables: una independiente (predictora) y una dependiente (de respuesta). El modelo de regresión líneal para este taller (lm) donde el resultado de examen es la variable dependiente (lo que queremos predecir) y las horas de estudio es la variable independiente (lo que usamos para predecir)

library(readxl)
bd_regresion_lineal1 <- read_excel("C:/Users/USUARIO/Downloads/bd_regresion_lineal1.xlsx")
View(bd_regresion_lineal1)

datos=read_excel("C:/Users/USUARIO/Downloads/bd_regresion_lineal1.xlsx")

## GRAFICO DE DISPERSION 

library(ggplot2)
ggplot(datos, aes(x = HorasEstudio, y = ResultadoExamen)) +
  geom_point(size = 3) +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  theme_minimal() +
  labs(title = "Relación entre Horas de Estudio y ResultadoExamen",
       x = "Horas",
       y = "Resultado")#
## `geom_smooth()` using formula = 'y ~ x'

pairs(datos$HorasEstudio ~ datos$ResultadoExamen)

# INTERPRETACION: 
#Como podemos observar en la gráfica de dispersión, existe una #centralización de los datos, en donde la linea es ascendente y los #puntos presentan un a alineación moderada, lo que nos sugiere que #podría existir una relacion positva entre las variables horas de #estudio y resultado de los exámenes.

PRUEBA NORMALIDAD SHAPIRO WILK

shx= shapiro.test(datos$HorasEstudio)
shx
## 
##  Shapiro-Wilk normality test
## 
## data:  datos$HorasEstudio
## W = 0.96143, p-value = 0.6294
shy= shapiro.test(datos$ResultadoExamen)
shy
## 
##  Shapiro-Wilk normality test
## 
## data:  datos$ResultadoExamen
## W = 0.94701, p-value = 0.3801
#INTERPRETACION:

#prueba de normalidad variable HorasEstudio, como p-valuo arrojo #0.6294, y es mayor que 0.05, se determina que no hay evidencia #sufuciente para afirma que los datos no tienen una distribucion #normal, por lo que se concluye que la variable esta normalemnte #distribudida.

#prueba de normalidad variable ResultadoEXamen, como p-valuo arrojo #0.3801, y es mayor que 0.05, se determina que no hay evidencia #sufuciente para afirma que los datos no tienen una distribucion #normal, por lo que se concluye que la variable esta normalemnte #distribudida.

PRUEBA DE CORRELACION DE PEARSON

crtp = cor.test(datos$HorasEstudio,datos$ResultadoExamen,method = "pearson")
crtp
## 
##  Pearson's product-moment correlation
## 
## data:  datos$HorasEstudio and datos$ResultadoExamen
## t = 23.629, df = 16, p-value = 7.214e-14
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.9618728 0.9948789
## sample estimates:
##       cor 
## 0.9859725
#INTERPRETACION:

#Como se puede observar en la prueba de correlación de perarsen #(0.98), la relacion entre las variables de estudio es positiva y #fuerte , es decir cuanto mas horas estudie un estudiante mejor #seran los resultados en los examenes.

AJUSTES DEL MODELO

modelo <- lm(datos$ResultadoExamen ~ datos$HorasEstudio )
modelo
## 
## Call:
## lm(formula = datos$ResultadoExamen ~ datos$HorasEstudio)
## 
## Coefficients:
##        (Intercept)  datos$HorasEstudio  
##             51.359               2.933
summary(modelo)
## 
## Call:
## lm(formula = datos$ResultadoExamen ~ datos$HorasEstudio)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -6.292 -1.254  1.077  1.546  3.110 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         51.3595     1.3435   38.23  < 2e-16 ***
## datos$HorasEstudio   2.9329     0.1241   23.63 7.21e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.732 on 16 degrees of freedom
## Multiple R-squared:  0.9721, Adjusted R-squared:  0.9704 
## F-statistic: 558.3 on 1 and 16 DF,  p-value: 7.214e-14
predichos = predict(modelo)
predichos
##         1         2         3         4         5         6         7         8 
##  54.29240  57.22532  60.15824  63.09116  66.02408  68.95700  71.88992  74.82284 
##         9        10        11        12        13        14        15        16 
##  77.75576  80.68868  83.62160  86.55452  89.48744  92.42036  95.35329  98.28621 
##        17        18 
## 101.21913 104.15205
# INTERPRETACION:

#Como resultado del modelo de regresion lineal podemos realizar la #siguiente ecuacion: ResultadoExamen = 51.36+2.93 x HoraEstudio, es #decir, que si alguien no estudia nada(0)  se podria esperar un #resultado de de 51.36 en los examenes, iguamente por cada hora #adicional que se estudie la nota podria aumentar un promedio de  #2.93 puntos

#Interpretacion coeficientes: intercepto que es de 51.36, es #significativo p < 2e-16, lo que se puede concluir que aunque las #horas de estudio sea 0, se estima con una alta confianza, horas de #estudio es de 2.93 y significantivo lo que sugiere que las horas de #estudio tiene un efecto positivo en el resultado de los examenes.

#Errores del modelo: los residuos van -6.292 a 3.110, la mediana se #acerca a o lo cual sugiere que no hay sesgos, y la distribucion es #muy simetrica y lineal.

#Bondad de ajuste: R² =0.9721: El modelo explica el 97.21% la #variabilidad de los datos de la variables resultados examenes, R² #ajustado = 0.9704 esto significa que aun incorporando nuevas #variables el modelo sigue siendo robusto.

# Min: el error m´as negativo fue -6.292
#1Q (primer cuartil): el 25% de los residuos est´an por debajo de #-1.254
#Median: el residuo t´ıpico (mediano) fue 1.077 
#3Q: el 75% de los residuos est´an en 1.546
#Max: el error m´as grande fue 3.110

SUPUESTO DE LINEALIDAD

ggplot(datos, aes(x = ResultadoExamen, y = predichos)) +
  geom_point(size = 3) +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  theme_minimal() +
  labs(title = "Relación entre Horas de Estudio y ResultadoExamen",
       x = "Horas",
       y = "Resultado")

#INTERPRETACION: Como se puede observar que la relacion entre las variables independiente(horasEstudio) y la dependiente (ResultadoExamen) es casi lineal. 

SUPUESTO NORMALIDAD DE LOS ERRORES

library(dplyr)
residuos = residuals(modelo)
residuos
##          1          2          3          4          5          6          7 
## -6.2923977 -3.2253182 -1.1582387  0.9088407  1.9759202  3.0429997  3.1100791 
##          8          9         10         11         12         13         14 
##  2.1771586  1.2442380  1.3113175  1.3783970  1.4454764  0.5125559  1.5796354 
##         15         16         17         18 
##  0.6467148 -1.2862057 -3.2191262 -4.1520468
qqnorm(residuos)

qqline(residuos,col= "orange") 

#INTERPRETACION:como se puede observar en la grafica los residuos tienden a seguir una disstribucion normal, lo que significa que el supuesto se acomoda al modelo.

Supuesto Homocedasticidad

ggplot(datos,aes(x = predichos, y = residuos)) +
  geom_point(size = 3) +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  theme_minimal() +
  labs(title = "Relación entre Horas de Estudio y ResultadoExamen",
       x = "Horas",
       y = "Resultado")

##INTERPRETACION: como se puede observar en la grafica los residuos evidencian un patron de heterocedasticidad, demostrando que los errores de la varianza no son constantes y el modelo se quedaria corto para los siiguientes datos, eesto puede deberse al numero reducido de la base de datos.

Independecia de los errores

library(lmtest)
IE= dwtest(modelo)
IE
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 0.27807, p-value = 7.319e-09
## alternative hypothesis: true autocorrelation is greater than 0
#INTERPRETACION:El estadistico de DW, para la indeprendia de errores con un resultado de 0.27807 lo que sugiere una alta correlacion positiva.

VALORES AJUSTADOS

valores_ajustados = fitted(modelo)
valores_ajustados
##         1         2         3         4         5         6         7         8 
##  54.29240  57.22532  60.15824  63.09116  66.02408  68.95700  71.88992  74.82284 
##         9        10        11        12        13        14        15        16 
##  77.75576  80.68868  83.62160  86.55452  89.48744  92.42036  95.35329  98.28621 
##        17        18 
## 101.21913 104.15205