En el marco del proceso de elaboración de galletas, el mantenimiento oportuno de la maquinaria es un factor crítico para garantizar la continuidad operativa y minimizar los costos asociados a paradas no programadas. Actualmente, el centro de producción cuenta con un modelo de mantenimiento vigente, el cual ha sido utilizado como línea base para evaluar el desempeño del sistema.
Con el objetivo de mejorar los tiempos de respuesta ante fallas, un Data Scientist ha desarrollado un modelo de analítica prescriptiva y ha propuesto tres alternativas de mejora, basadas en distintas técnicas analíticas:
Cada una de estas alternativas fue evaluada mediante 30 réplicas experimentales, al igual que el modelo actual, con el fin de contar con evidencia suficiente para su comparación estadística.
El propósito de este informe es determinar, con un nivel de significancia del 5% (α = 0.05), si existen diferencias estadísticamente significativas entre el modelo actual y las propuestas de mejora, y en caso afirmativo, identificar cuál de ellas debería implementarse para reducir de manera efectiva el tiempo de fallas de las máquinas.
Para dar respuesta al objetivo planteado se siguió el siguiente procedimiento:
arbol <- c(23.81, 22.13, 22.64, 21.69, 23.58, 22.14, 18.73, 21.59,
20.36, 20.53, 20.11, 20.34, 19.19, 22.92, 18.65, 20.6,
19.83, 20.09, 19.43, 22.06, 21.15, 19.26, 18.08, 20.24,
18.75, 20.69, 21.62, 23.69, 23.93, 23.19)
redn <- c(23.24, 20.08, 18.01, 23.28, 19.23, 21.22, 21.47, 20.6,
21.11, 21.27, 21.03, 17.34, 22.8, 21.85, 17.85, 23.15,
19.57, 19.56, 20.79, 18.04, 20.95, 21.83, 18.17, 22.66,
18.29, 18.89, 19.49, 19.19, 26.47, 25.25)
regresion <- c(16.13, 17.84, 18.28, 15.61, 17.62, 16.12, 17.29, 16.13,
16.64, 15.03, 18.16, 16.82, 17.44, 16.76, 17.26, 15.55,
17.49, 18.42, 17.54, 17.13, 15.5, 16.8, 18.47, 18.42,
18.43, 15.56, 16.03, 15.39, 15.12, 17.77)
actual <- c(17.09, 15.77, 18.45, 16.55, 22.23, 22.11, 18.26, 18.04,
19.66, 19.76, 18.74, 19.02, 18.54, 16.7, 17.57, 19.89,
19.06, 18.7, 19.39, 19.68, 19.2, 16.85, 19.91, 19.82, 18.08,
19.38, 20.3, 21.6, 23.39, 19.33)
datos <- data.frame(
Tiempo = c(actual, arbol, redn, regresion),
Grupo = factor(rep(c("Actual", "Arbol", "RedNeuronal", "Regresion"), each = 30))
)
head(datos)
## Tiempo Grupo
## 1 17.09 Actual
## 2 15.77 Actual
## 3 18.45 Actual
## 4 16.55 Actual
## 5 22.23 Actual
## 6 22.11 Actual
agg <- aggregate(Tiempo ~ Grupo, data = datos,
FUN = function(x) c(n = length(x), media = mean(x),
sd = sd(x), mediana = median(x)))
agg
## Grupo Tiempo.n Tiempo.media Tiempo.sd Tiempo.mediana
## 1 Actual 30.000000 19.102333 1.729648 19.130000
## 2 Arbol 30.000000 21.034000 1.705609 20.645000
## 3 RedNeuronal 30.000000 20.756000 2.224344 20.870000
## 4 Regresion 30.000000 16.891667 1.103312 16.975000
boxplot(Tiempo ~ Grupo, data = datos,
col = c("gray80", "lightblue", "lightgreen", "salmon"),
main = "Comparación de tiempos de falla por propuesta",
ylab = "Tiempo de falla", xlab = "Modelo")
A partir de las estadísticas descriptivas y del boxplot se observa que la propuesta de Regresión presenta la media más baja de tiempo de falla, mientras que Árbol de decisión y Red Neuronal muestran medias superiores al modelo actual.
for (g in levels(datos$Grupo)) {
st <- shapiro.test(datos$Tiempo[datos$Grupo == g])
cat(sprintf("%-15s W = %.4f p-value = %.4f\n", g, st$statistic, st$p.value))
}
## Actual W = 0.9641 p-value = 0.3921
## Arbol W = 0.9581 p-value = 0.2768
## RedNeuronal W = 0.9578 p-value = 0.2723
## Regresion W = 0.9350 p-value = 0.0668
bartlett.test(Tiempo ~ Grupo, data = datos)
##
## Bartlett test of homogeneity of variances
##
## data: Tiempo by Grupo
## Bartlett's K-squared = 13.068, df = 3, p-value = 0.004493
levene_test <- function(y, group) {
group <- factor(group)
meds <- tapply(y, group, median)
abs_dev <- abs(y - meds[group])
summary(aov(abs_dev ~ group))
}
levene_test(datos$Tiempo, datos$Grupo)
## Df Sum Sq Mean Sq F value Pr(>F)
## group 3 10.01 3.337 3.046 0.0316 *
## Residuals 116 127.11 1.096
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
modelo <- aov(Tiempo ~ Grupo, data = datos)
summary(modelo)
## Df Sum Sq Mean Sq F value Pr(>F)
## Grupo 3 326.4 108.81 36.07 <2e-16 ***
## Residuals 116 349.9 3.02
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
kruskal.test(Tiempo ~ Grupo, data = datos)
##
## Kruskal-Wallis rank sum test
##
## data: Tiempo by Grupo
## Kruskal-Wallis chi-squared = 63.419, df = 3, p-value = 1.093e-13
pairwise.wilcox.test(datos$Tiempo, datos$Grupo,
p.adjust.method = "bonferroni", exact = FALSE)
##
## Pairwise comparisons using Wilcoxon rank sum test with continuity correction
##
## data: datos$Tiempo and datos$Grupo
##
## Actual Arbol RedNeuronal
## Arbol 0.00047 - -
## RedNeuronal 0.04091 1.00000 -
## Regresion 5.3e-06 3.3e-10 7.7e-09
##
## P value adjustment method: bonferroni
sort(tapply(datos$Tiempo, datos$Grupo, mean))
## Regresion Actual RedNeuronal Arbol
## 16.89167 19.10233 20.75600 21.03400
Los resultados de la prueba de Bartlett y de Levene indican que no se cumple el supuesto de homogeneidad de varianzas (p < 0.05 en ambos casos), por lo cual la prueba de hipótesis más adecuada para este análisis es Kruskal-Wallis, cuyo resultado (p < 0.05) confirma que existen diferencias estadísticamente significativas entre el modelo actual y las tres propuestas evaluadas.
El análisis post-hoc de Wilcoxon con corrección de Bonferroni evidencia que:
En consecuencia, con un nivel de significancia del 5%, se concluye que el científico debe implementar la propuesta basada en Regresión, dado que es la única alternativa que logra reducir de manera estadísticamente significativa el tiempo de fallas de las máquinas del proceso de elaboración de galletas.