Instalamos paquetes correspondientes y llamar librerias
#install.packages("qcc")
library(qcc)
## Warning: package 'qcc' was built under R version 4.4.3
## Package 'qcc' version 2.7
## Type 'citation("qcc")' for citing this R package in publications.
library(rmarkdown)
## Warning: package 'rmarkdown' was built under R version 4.4.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
#install.packages("reshape2")
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.4.3
#install.packages("rsconnect")
Creamos las bases de datos
#Arbol de clasificación
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)
#Redes neuronales
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)
#Métodos de regresión
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)
#Sistema actual
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)
Consolidamos bases
data2 <- data.frame(ÁrbolC =arbol, Red_N = redn, Regresion = regresion, SActual = actual)
head(data2)
## ÁrbolC Red_N Regresion SActual
## 1 23.81 23.24 16.13 17.09
## 2 22.13 20.08 17.84 15.77
## 3 22.64 18.01 18.28 18.45
## 4 21.69 23.28 15.61 16.55
## 5 23.58 19.23 17.62 22.23
## 6 22.14 21.22 16.12 22.11
Vemos la cantidad de registros de la base
dim(data2)
## [1] 30 4
La base de datos es de 4 columnas y 30 registros
Analizando el nombre de las columnas
colnames(data2)
## [1] "ÁrbolC" "Red_N" "Regresion" "SActual"
Las variabless o modelos usados de la base de datos son las siguientes:ÁrbolC, Red_N, Regresion y SActual
Summary nos presenta los valores minimos y maximo, 1er y 3er cuartil el valor de la media y la mediana.
summary(data2)
## ÁrbolC 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
En el caso la mediana más cercana a la del sistema Actual es la del Árbol de clasificación
Ahora vemos el tipo de variable
str(data2)
## 'data.frame': 30 obs. of 4 variables:
## $ ÁrbolC : num 23.8 22.1 22.6 21.7 23.6 ...
## $ Red_N : num 23.2 20.1 18 23.3 19.2 ...
## $ Regresion: num 16.1 17.8 18.3 15.6 17.6 ...
## $ SActual : num 17.1 15.8 18.4 16.6 22.2 ...
Como se trata de evaluar modelos, todas las variables son númericas.
Generamos algunos gráficos para visualizar la distribución de cada método:
# Reorganizar los datos para graficar
data_melt <- melt(data2)
## No id variables; using all as measure variables
# Histograma por método
ggplot(data_melt, aes(x = value, fill = variable)) +
geom_histogram(bins = 10, alpha = 0.6, position = "identity") +
facet_wrap(~ variable) +
theme_minimal() +
labs(title = "Histogramas de Tiempo de Falla por Método", x = "Tiempo", y = "Frecuencia")
Analizamos los resultados en base al boxplot
ggplot(data_melt, aes(x = variable, y = value, fill = variable)) +
geom_boxplot() +
theme_minimal() +
labs(title = "Boxplot de Tiempos de Falla", x = "Método", y = "Tiempo")
Generamos una gráfica de densidad
ggplot(data_melt, aes(x = value, color = variable)) +
geom_density() +
theme_minimal() +
labs(title = "Densidad de Distribuciones por Método", x = "Tiempo")
Con esta gráfica podemos sacar conclusiones similares a la del histograma. 1. Para el caso de Arboles de clasificación y de redes neuronales, podemos ver una ligera cola hacia la izquierda, es decir, concentra sus valore sen tiempos mayores 2. Para el caso de la regresióon se ve claramente sesgada a la derecha (positive skew), por lo que tiene mejores resultados que el sistema actual.
Hipotesis nula: No hay diferencia entre el valor generado por el modelo y el del sistema actual Aplicamos para cada modelo la distribución t-student, puesto que son datos pareados o relacionados entre ellos.
# Prueba t pareada: Regresión vs Sistema Actual
t.test(data2$Regresion, data2$SActual, paired = TRUE, alternative = "less")
##
## Paired t-test
##
## data: data2$Regresion and data2$SActual
## t = -5.3138, df = 29, p-value = 5.303e-06
## alternative hypothesis: true mean difference is less than 0
## 95 percent confidence interval:
## -Inf -1.503788
## sample estimates:
## mean difference
## -2.210667
El p value para la regresion es menor a 0.05, por lo que me indica que rechaza la hipotesis nula por lo que sí hay diferencia de tiempos de falla, siendo esta nueva menor a la del sistema actual. Con un nivel de confianza del 95% la diferencia verdadera de medias (Regresión - Sistema Actual) está en algún valor entre -∞ y -1.50 (necesariamente menor a 0)
#Para el arbol de clasificación
t.test(data2$ÁrbolC, data2$SActual, paired = TRUE, alternative = "less")
##
## Paired t-test
##
## data: data2$ÁrbolC and data2$SActual
## t = 5.1464, df = 29, p-value = 1
## alternative hypothesis: true mean difference is less than 0
## 95 percent confidence interval:
## -Inf 2.569422
## sample estimates:
## mean difference
## 1.931667
El p value para el modelo del árbol no rechaza la preuba de hipotesis, pues es mayor a 0.05 Con un nivel de confianza del 95% la diferencia verdadera de medias (ÁrbolC - Sistema Actual) está en algún valor entre -∞ y 2.569 ( no es necesariamente menor a 0)
#Para redes neronales
t.test(data2$Red_N, data2$SActual, paired = TRUE, alternative = "less")
##
## Paired t-test
##
## data: data2$Red_N and data2$SActual
## t = 3.3642, df = 29, p-value = 0.9989
## alternative hypothesis: true mean difference is less than 0
## 95 percent confidence interval:
## -Inf 2.488868
## sample estimates:
## mean difference
## 1.653667
El modelo de redes tampoco rechaza la prueba de hipotesis. Con un nivel de confianza del 95% la diferencia verdadera de medias (redes neuronales - Sistema Actual) está en algún valor entre -∞ y 2.48 ( no es necesariamente menor a 0)
Podemos ver a partir de todo el análisis que el modelo de regresión es la mejor solución para reducir los tiempos de falla de las maquinas que preparan las galletas. Dará mejores tiempos que la situación actual Cumple con rechazar la hipotesis nula y también tiene un intervalo de confianza bueno.