#Pregunta 2
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")