En este ejercicio se comparan cuatro métodos para analizar el tiempo de fallas de las máquinas: el sistema actual, árbol de clasificación, redes neuronales y métodos de regresión.
El objetivo es identificar cuál de las propuestas permite reducir mejor el tiempo de fallas.
Se trabajará con un nivel de significancia de 5%.
H0: Los tiempos promedio de los cuatro métodos son iguales.
H1: Al menos uno de los métodos tiene un tiempo promedio diferente.
Nivel de significancia:
α = 0.05
Primero ingresamos los 30 datos correspondientes a cada método.
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
)
Luego juntamos los datos en una sola base.
data2 <- data.frame(
ArbolC = arbol,
Red_N = redn,
Regresion = regresion,
SActual = actual
)
summary(data2)
## ArbolC Red_N Regresion SActual
## Min. :18.08 Min. :17.34 Min. :15.03 Min. :15.77
## 1st Qu.:19.89 1st Qu.:19.20 1st Qu.:16.05 1st Qu.:18.12
## Median :20.64 Median :20.87 Median :16.98 Median :19.13
## Mean :21.03 Mean :20.76 Mean :16.89 Mean :19.10
## 3rd Qu.:22.14 3rd Qu.:21.84 3rd Qu.:17.73 3rd Qu.:19.80
## Max. :23.93 Max. :26.47 Max. :18.47 Max. :23.39
Primero revisamos los promedios para tener una idea inicial de los resultados.
colMeans(data2)
## ArbolC Red_N Regresion SActual
## 21.03400 20.75600 16.89167 19.10233
Los promedios obtenidos son aproximadamente:
A simple vista, el método de regresión tiene el menor promedio. Como el objetivo es reducir el tiempo de fallas, parece ser la mejor alternativa. Sin embargo, falta comprobar si estas diferencias son significativas.
Para realizar las pruebas estadísticas organizamos los datos en dos columnas: una para los tiempos y otra para indicar el método.
tiempo <- c(arbol, redn, regresion, actual)
metodo <- factor(rep(
c("Arbol", "Red_N", "Regresion", "Actual"),
each = 30
))
datos_anova <- data.frame(tiempo, metodo)
head(datos_anova)
## tiempo metodo
## 1 23.81 Arbol
## 2 22.13 Arbol
## 3 22.64 Arbol
## 4 21.69 Arbol
## 5 23.58 Arbol
## 6 22.14 Arbol
Primero verificamos la normalidad de los residuos con la prueba de Shapiro-Wilk.
modelo <- aov(tiempo ~ metodo, data = datos_anova)
shapiro.test(residuals(modelo))
##
## Shapiro-Wilk normality test
##
## data: residuals(modelo)
## W = 0.98332, p-value = 0.1445
El p-value es aproximadamente 0.1445.
Como es mayor a 0.05, no rechazamos la normalidad. Por lo tanto, los residuos pueden considerarse aproximadamente normales.
Ahora comprobamos si las varianzas de los grupos son iguales mediante la prueba de Bartlett.
bartlett.test(tiempo ~ metodo, data = datos_anova)
##
## Bartlett test of homogeneity of variances
##
## data: tiempo by metodo
## Bartlett's K-squared = 13.068, df = 3, p-value = 0.004493
El p-value es aproximadamente 0.004493.
Como es menor a 0.05, las varianzas no pueden considerarse iguales. Por esta razón utilizamos el ANOVA de Welch.
oneway.test(
tiempo ~ metodo,
data = datos_anova,
var.equal = FALSE
)
##
## One-way analysis of means (not assuming equal variances)
##
## data: tiempo and metodo
## F = 53.427, num df = 3.000, denom df = 62.323, p-value < 2.2e-16
El resultado muestra un valor de F de aproximadamente 53.427 y un p-value menor a 2.2e-16.
Como el p-value es menor a 0.05, rechazamos H0. Esto indica que sí existen diferencias significativas entre los métodos.
Como existen diferencias, realizamos comparaciones por pares usando pruebas t de Welch con ajuste de Holm.
pairwise.t.test(
datos_anova$tiempo,
datos_anova$metodo,
p.adjust.method = "holm",
pool.sd = FALSE
)
##
## Pairwise comparisons using t tests with non-pooled SD
##
## data: datos_anova$tiempo and datos_anova$metodo
##
## Actual Arbol Red_N
## Arbol 0.00016 - -
## Red_N 0.00439 0.58919 -
## Regresion 1.3e-06 2.3e-14 4.8e-10
##
## P value adjustment method: holm
Los resultados muestran que regresión presenta diferencias significativas con el sistema actual, el árbol de clasificación y las redes neuronales.
También se observa que entre árbol y redes neuronales no existe una diferencia significativa.
Finalmente realizamos un boxplot para observar las diferencias entre los métodos.
boxplot(
tiempo ~ metodo,
data = datos_anova,
main = "Comparación del tiempo de fallas por método",
xlab = "Método",
ylab = "Tiempo de fallas"
)
En el gráfico se observa que regresión presenta valores menores que los demás métodos, lo cual coincide con los resultados estadísticos.
Luego de realizar el análisis, encontramos que existen diferencias significativas entre los métodos evaluados.
El método de regresión obtuvo el menor tiempo promedio, con aproximadamente 16.89, mientras que el sistema actual obtuvo 19.10, redes neuronales 20.76 y árbol de clasificación 21.03.
Además, las comparaciones muestran que regresión tiene diferencias significativas frente al sistema actual y las otras dos propuestas.
Por lo tanto, consideramos que la propuesta que debería implementarse es Métodos de Regresión, ya que presenta el menor tiempo de fallas y los resultados estadísticos respaldan esta decisión.