#Pregunta 2

Enunciado:

Una empresa realiza el mantenimiento preventivo de copiadoras importadas. Los datos de 45 llamadas recientes para realizar mantenimiento preventivo se recopilaron, y se analizaron en un modelo de regresión lineal. Los datos disponibles incluyen: - X: Número de copiadoras atendidas en cada llamada de servicio. - Y: El tiempo total (en minutos) que el técnico pasó en la llamada de servicio.

# a) Ajustar el modelo de regresión lineal
modelo <- lm(Y ~ X, data = datos)

# Mostrar el resumen del modelo
summary(modelo)
## 
## Call:
## lm(formula = Y ~ X, data = datos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -22.7723  -3.7371   0.3334   6.3334  15.4039 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -0.5802     2.8039  -0.207    0.837    
## X            15.0352     0.4831  31.123   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.914 on 43 degrees of freedom
## Multiple R-squared:  0.9575, Adjusted R-squared:  0.9565 
## F-statistic: 968.7 on 1 and 43 DF,  p-value: < 2.2e-16
# b) Graficar los datos y la regresión
plot(datos$X, datos$Y, main = "Regresión Lineal", xlab = "Número de equipos", ylab = "Tiempo (min)")
abline(modelo, col = "red")

# c) Interpretación de los coeficientes
coef(modelo)
## (Intercept)           X 
##  -0.5801567  15.0352480
# d) Predicción para un número específico de equipos (X = 5)
nuevos_datos <- data.frame(X = 5)
prediccion <- predict(modelo, nuevos_datos)
prediccion
##        1 
## 74.59608
# e) Obtener los residuales y la suma de los cuadrados de los residuales
residuales <- residuals(modelo)
SSE <- sum(residuales^2)
SSE
## [1] 3416.377
# f) Estimadores puntuales de sigma^2 y sigma
sigma2 <- SSE / df.residual(modelo)  
sigma <- sqrt(sigma2)  
sigma2
## [1] 79.45063
sigma
## [1] 8.913508
# g) Intervalo de confianza para el cambio en el tiempo de servicio por cada copiadora adicional
confint(modelo, level = 0.90)["X", ]
##      5 %     95 % 
## 14.22314 15.84735
# h) Prueba t para determinar si existe relación lineal entre X y Y
t_test <- summary(modelo)$coefficients["X", "t value"]
p_value <- summary(modelo)$coefficients["X", "Pr(>|t|)"]
t_test
## [1] 31.12326
p_value
## [1] 4.009032e-31
# i) Comparación entre los resultados de g) y h) 
# El intervalo de confianza debe coincidir con los resultados de la prueba t si es significativo.

# j) Prueba para determinar si el incremento en el tiempo es menor de 14 minutos por equipo
hipotesis_nueva <- coef(modelo)["X"] < 14
hipotesis_nueva
##     X 
## FALSE
# k) Interpretar el valor de beta_0
beta_0 <- coef(modelo)["(Intercept)"]
beta_0
## (Intercept) 
##  -0.5801567
# l) Intervalo de confianza al 90% para el servicio a seis equipos
nuevos_datos_6 <- data.frame(X = 6)
intervalo_6 <- predict(modelo, nuevos_datos_6, interval = "confidence", level = 0.90)
intervalo_6
##        fit      lwr     upr
## 1 89.63133 87.28387 91.9788
# m) Intervalo de predicción para la próxima solicitud con seis equipos
intervalo_pred_6 <- predict(modelo, nuevos_datos_6, interval = "prediction", level = 0.90)
intervalo_pred_6
##        fit      lwr      upr
## 1 89.63133 74.46433 104.7983
# n) Intervalo de confianza por equipo en solicitudes de seis equipos
intervalo_por_equipo <- intervalo_6 / 6
intervalo_por_equipo
##        fit      lwr     upr
## 1 14.93856 14.54731 15.3298
# o) Límites de la banda de confianza del 90% cuando Xh = 6
bandas_confianza <- predict(modelo, nuevos_datos_6, interval = "confidence", level = 0.90)
bandas_confianza
##        fit      lwr     upr
## 1 89.63133 87.28387 91.9788
# p) Tabla ANOVA del modelo ajustado
anova(modelo)
## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value    Pr(>F)    
## X          1  76960   76960  968.66 < 2.2e-16 ***
## Residuals 43   3416      79                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# q) Prueba F para determinar si existe una relación lineal
summary(modelo)$fstatistic
##    value    numdf    dendf 
## 968.6572   1.0000  43.0000
pf(summary(modelo)$fstatistic[1], summary(modelo)$fstatistic[2], summary(modelo)$fstatistic[3], lower.tail = FALSE)
##        value 
## 4.009032e-31
# r) Reducción relativa de la variación total
r_squared <- summary(modelo)$r.squared
r_squared
## [1] 0.9574955
# s) Cálculo de r (correlación)
r <- cor(datos$X, datos$Y)
r
## [1] 0.978517
# t) Gráfica de los residuales contra Y ajustado y contra X
plot(fitted(modelo), residuales, main = "Residuos vs Y ajustado", xlab = "Y ajustado", ylab = "Residuos")

plot(datos$X, residuales, main = "Residuos vs X", xlab = "X", ylab = "Residuos")