Generación de base de datos

La base de datos se ingresa manualmente a partir de los resultados del modelo de mantenimiento actual y los 3 modelos propuestos

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)


data2  <- data.frame(ÁrbolC =arbol, Red_N = redn, Regresion = regresion, SActual = actual)

Dimensión de los datos

La base de datos generada describe el comportamiento de 4 atributos y de 30 registros.

dim(data2)
## [1] 30  4

Análisis exploratorio de los datos

A continuación se definen las principales medidas estadísticas

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

Graficos de los modelos

A continuacion se realiza una funcion para poder evaluar visualmente los resultados obtenidos en cada modelo, todas en formato de gráfico de histograma

data2_BDN <- NULL
data2_BDC <- NULL
dimension <-dim(data2)
par(mfrow=c(2,dimension[2]/2))

#############################################################################
###################### exploracion de los datos #############################
library(qcc)
## Package 'qcc' version 2.7
## Type 'citation("qcc")' for citing this R package in publications.
for(j in 1:dimension[2]) {
  texto <- paste('Modelo  ',colnames(data2)[j])
  hist(data2[,j],col=j,main = texto)
}

Cálculo de media de cada modelo

A continuacion se genera un vector “media” en el cual se almacenerá la media de cada modelo, y posteriormente se asignará a un dataframe para su posterior uso

medias <- apply(data2,2,mean)
medias
##    ÁrbolC     Red_N Regresion   SActual 
##  21.03400  20.75600  16.89167  19.10233

Cálculo de los intervalos de confianza

Con la finalidad de realizar comparaciones de los valores “reales” de las medias de cada modelo, aplicaremos el cálculo de los intervalos de confianza con un nivel de significancia del 5%

Para eso usaremos la siguiente fórmula (IC) = ‾X ± Z(S ÷ √n)

n <- nrow(data2) #número de registros

int_Sig <- 0.05 #intervalo de significancia

#Para el cálculo de la desviación estándar usaremos la muestral, ya que los 30 registros solo una muestra de todo el proceso, no la población completa de todos los escenarios posibles
#Usaremos la función "apply" para mantener los nombres de las columnas (modelos)
desviaciones_estandar <- apply(data2,2,sd)
desviaciones_estandar
##    ÁrbolC     Red_N Regresion   SActual 
##  1.705609  2.224344  1.103312  1.729648
# Calculo del error estándar dividiendo la desviación estándar por la raíz cuadrada del tamaño de la muestra
error_estandar <- desviaciones_estandar/sqrt(n) 
error_estandar
##    ÁrbolC     Red_N Regresion   SActual 
## 0.3114001 0.4061079 0.2014363 0.3157890
#Ya que la muestra es pequeña (30 registros en cada una de las 4 columnas), usaremos la variable de T student
#Para eso aplicaremos la siguiente formula t= qt(1−a/2,df=n−1), siendo "a" el nivel de significancia y "df" los grados de libertad (igual al tamaño de la muestra - 1)

t_student <- qt(1-int_Sig/2,df=n-1) 
t_student 
## [1] 2.04523
#Ahora hagamos el cálculo de los intervalos de confianza, el cuál nos dará los límites inferiores y superiores
intervalo_confianza <- cbind(medias-t_student*error_estandar,medias+t_student*error_estandar)
print(intervalo_confianza)
##               [,1]     [,2]
## ÁrbolC    20.39712 21.67088
## Red_N     19.92542 21.58658
## Regresion 16.47968 17.30365
## SActual   18.45647 19.74819
#-----------------------------------------------------------------------------------------------------------------
### COMENTARIO:LOS INTERVALOS DE CONFIANZA NO SE SOBREPONEN LOS UNOS CON LOS OTROS, POR LO QUE NO ES SUFICIENTE INFORMACIÓN PARA DECIDIRNOS POR UN MODELO, AHORA USEMOS EL T-TEST PARA COMPARAR LAS MEDIAS DE CADA MODELO
#-----------------------------------------------------------------------------------------------------------------

ANÁLISIS T-TEST

Con la finalidad de realizar comparaciones de las medias de los tiempos de los modelos, usemos el T-TEST para compararlos.

#Generemos una matriz para comparar los T.TEST de cada modelo
matrizT_Test <- matrix("NO APLICA",nrow = 4,ncol = 4)
colnames(matrizT_Test) <- c("Arbol","Redn","Regresion","Actual")
rownames(matrizT_Test) <- colnames(matrizT_Test)

#Compararemos uno a uno,siempre y cuando no sea el mismo
for (i in 1:4) {
  for (j in 1:4) {
    if (i != j) {
      modelo1 <- switch(i,arbol,redn,regresion,actual)
      modelo2 <- switch(j,arbol,redn,regresion,actual)
      
      #Realizar el T-TEST
      t_test_result <- t.test(modelo1,modelo2)
      
      #Almacenar el p-value del T-TEST en la matriz para su comparación
      matrizT_Test[i,j] <- t_test_result$p.value
    }
  }
}

# Imprimir los valores p
print(matrizT_Test)
##           Arbol                  Redn                   Regresion             
## Arbol     "NO APLICA"            "0.58919416000587"     "3.76403458686842e-15"
## Redn      "0.58919416000587"     "NO APLICA"            "9.62454743615969e-11"
## Regresion "3.76403458686842e-15" "9.62454743615969e-11" "NO APLICA"           
## Actual    "5.47898258970088e-05" "0.00219400154831336"  "3.26018839020562e-07"
##           Actual                
## Arbol     "5.47898258970088e-05"
## Redn      "0.00219400154831336" 
## Regresion "3.26018839020562e-07"
## Actual    "NO APLICA"

CONCLUSIÓN

Tomando en cuenta el nivel de significancia del 5% y como hipotesis nula (H0): “No hay diferencia significativa entre los tiempos de falla de las máquinas para los diferentes modelos”, siendo el valor <5% aquellos que rechazan H0

Según la matriz construida a partir de los valores T-TEST, el modelo de REGRESIÓN rechaza esta hipótesis nula, es decir, que está sí tiene diferencia significativa con los otros modelos, y al ser este el de menor media, MODELO DE REGRESIÓN sería la mejor opción.