Integrante

Instalar paquetes

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")

Creando base de datos

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

Análisis descriptivo

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.

Análisis Exploratorio Inicial

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")

  1. Para el modelo de arbol de clasificación, el histograma muestra que la mayoría de valores está entre 19 a 23 segundos, sin embargo hay casos en donde el tiempo incluso puede ser casi de 24 (23.9)
  2. Para el caso de redes neuronales, es un modelo que reporta un teimpo en fallas entre 16 y 26 aproximadamente, y a diferencia de los arboles de decision, en este el tiempo de demora es mayor
  3. Para el caso de regresión, la myoria de tiempos de fallas es de hasta 20 segundos. A primera instancia viendo la gráfica podemos decir que es el mejor modelo; sin embargo, falta comparar con los datos reales.
  4. Para los datos reales, vemos que la mayoría de datos estan entre 16 y 22 aproximadamente; es decir tiene mayor tiempo de falla que la que expresa el modelo de regresión, por lo que podemos concluir que este modelo ayudará a dsiminuir el tiempo de fallas de la maquinaria.

Gráfico de cajas

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")

  1. PAra el arbol de clasificación podemos ver que no tiene valores tan dispersos y tampoco cuenta con outliers, sin embargo con tiempos mayores a los del sistema actual.
  2. Para redes neuronales, podemos ver una tendencia similar al del árbol, sin embargo, en este caso hay una mayor dispersión y tambien cuenta con outliers.
  3. El sistema actual tiene una mediana menor a las dos primeras, por lo que los dos primeros modelos no parecerían tan eficientes
  4. El modelo de regresión muestra que hay dos más concentrados, baja dispersión y una mediana más baja que la del sistema actual, podemos sacar concluiones muy similares al del histograma. En conclusión tambien por esta gráfica, el modelo de regresión parece ser la mejor solución al tiempo de fallas.

Distribuciones y Densidades

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.

Análisis Estadístico: Prueba de hipotesis

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)

Conclusión

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.