1 Ejemplo Diseño Robusto

En una empresa que elabora harinas preparadas para pasteles se quiere introducir una nueva mezcla en el mercado. Interesa diseñar la mezcla de tal manera que sea robusta al hecho de que el cliente no se apegue del todo a las instrucciones en la caja. En particular, preocupan las variables de ruido, temperatura (T) y tiempo de horneado (t). Los factores de diseño son la cantidad de harina (H), de azúcar (A) y de huevo (E). La variable de respuesta es una evaluación subjetiva de los pasteles mediante un panel de jueces usando una escala hedónica de uno a siete. El diseño robusto empleado y los resultados obtenidos se muestran en la siguiente tabla.(Pulido & Vara Salazar, 2012):

\[Variables\hspace{0.2cm}ambientales\]

Variables De Diseño t 0 -1 1 -1 1 Desviación
H A E T 0 -1 -1 1 1 Media Estandar S/N
0 0 0 6.7 3.4 5.4 4.1 3.8
-1 -1 -1 3.1 1.1 5.7 6.4 1.3
1 -1 -1 3.2 3.8 4.9 4.3 2.1
-1 1 -1 5.3 3.7 5.1 6.7 2.9
1 1 -1 4.1 4.5 6.4 5.8 5.2
-1 -1 1 5.9 4.2 6.8 6.5 3.5
1 -1 1 6.9 5.0 6.0 5.9 5.7
-1 1 1 3.0 3.1 6.3 6.4 3.0
1 1 1 4.5 3.9 5.5 5.0 5.4
  1. Especifique el diseño que se empleó.

  2. Completeta la tabla considerando que la variable es del tipo mientras más grande mejor.

  3. Analice las señales/ruido de Taguchi y –10log(\(S^2\)). Comente las diferencias observadas entre los dos análisis.

  4. ¿Hay algún efecto significativo en los ANOVA?

  5. Realice el análisis de la media.

  6. Determine la mejor formulación de la harina preparada para pasteles considerando la media y las señales/ruido.

1.0.0.1 Inciso a)

El diseño que se empleo fue el de arreglo interno y externo.

library(FrF2)
## Loading required package: DoE.base
## Loading required package: grid
## Loading required package: conf.design
## Registered S3 method overwritten by 'DoE.base':
##   method           from       
##   factorize.factor conf.design
## 
## Attaching package: 'DoE.base'
## The following objects are masked from 'package:stats':
## 
##     aov, lm
## The following object is masked from 'package:graphics':
## 
##     plot.design
## The following object is masked from 'package:base':
## 
##     lengths
datos=read.table(file = "dataset.txt")
View(datos)
attach(datos)
str(datos)
## 'data.frame':    10 obs. of  8 variables:
##  $ V1: chr  "H" "0" "-1" "1" ...
##  $ V2: chr  "A" "0" "-1" "-1" ...
##  $ V3: chr  "E" "0" "-1" "-1" ...
##  $ V4: num  0 6.7 3.1 3.2 5.3 4.1 5.9 6.9 3 4.5
##  $ V5: num  -1 3.4 1.1 3.8 3.7 4.5 4.2 5 3.1 3.9
##  $ V6: num  -1 5.4 5.7 4.9 5.1 6.4 6.8 6 6.3 5.5
##  $ V7: num  1 4.1 6.4 4.3 6.7 5.8 6.5 5.9 6.4 5
##  $ V8: num  1 3.8 1.3 2.1 2.9 5.2 3.5 5.7 3 5.4
head(datos,n=10L)
##    V1 V2 V3  V4   V5   V6  V7  V8
## 1   H  A  E 0.0 -1.0 -1.0 1.0 1.0
## 2   0  0  0 6.7  3.4  5.4 4.1 3.8
## 3  -1 -1 -1 3.1  1.1  5.7 6.4 1.3
## 4   1 -1 -1 3.2  3.8  4.9 4.3 2.1
## 5  -1  1 -1 5.3  3.7  5.1 6.7 2.9
## 6   1  1 -1 4.1  4.5  6.4 5.8 5.2
## 7  -1 -1  1 5.9  4.2  6.8 6.5 3.5
## 8   1 -1  1 6.9  5.0  6.0 5.9 5.7
## 9  -1  1  1 3.0  3.1  6.3 6.4 3.0
## 10  1  1  1 4.5  3.9  5.5 5.0 5.4

1.0.0.2 Inciso b)

Una vez se identificaron los datos, usaremos la formula siguiente para determinar los estadisticos como la señal de razon, en la cual se calcula la media y la desviación estandar.

info=as.matrix(datos[3:10,4:8])
signal_noise_gm=function(matriz)
{
sn=rep(NA,nrow(matriz))
for (i in 1:nrow(matriz))
{
sn[i]=-10*log((sum(1/matriz[i,]^2)),base = 10)
}
sn[]
}
r_signal_noise=signal_noise_gm(matriz=info)
head(r_signal_noise, n=9L)
## [1] -1.979455  3.103375  5.401925  6.989832  6.729594  8.288944  4.249394
## [8]  6.527084
media=function(matriz)
{
  prom=rep(NA,nrow(matriz))
  for(i in 1:nrow(matriz))
  {
    prom[i]=mean(matriz[i,])
  }
  prom[]
}
r_media=media(matriz = info)
head(r_media, n=9L)
## [1] 3.52 3.66 4.74 5.20 5.38 5.90 4.36 4.86
varianza=function(matriz)
{
  v=rep(NA,nrow(matriz))
  for(i in 1:nrow(matriz))
  {
    v[i]=var(matriz[i,])
  }
  v[]
}
r_varianza=varianza(matriz = info)
r_desv_est=sqrt(varianza(matriz = info))
head(r_desv_est, n=9L)
## [1] 2.4498980 1.0737784 1.4791890 0.9354143 1.4549914 0.6819091 1.8174157
## [8] 0.6655825

Las respuestas que se utilizan son los resultados de la optimización en dos pasos, por lo que continuamos con la corrida experimental con la cual se determinaran los efectos que influyen de manera significativa sobre las diferentes respuestas.

1.0.0.3 Inciso c)

En este paso se expondran los efectos de una manera muy similar a como es en un experimento factorial, por lo que el estadistico de la señal de ruido quedaria de la siguiente forma.

library(FrF2)
experimento=FrF2(nruns = 8, nfactors = 3, factor.names = list(H=c(-1,1),A=c(-1,1),E=c(-1,1)), replications = 1)
experimento_resp=add.response(experimento, response = r_signal_noise)
graf_daniel=DanielPlot(experimento_resp, main="Grafico de Daniel para el estadístico S/R")

En este caso, no se observan que los efectos activos tengan un nivel de significancia de por lo menos 0.5, por lo que se procedera a obtener nuevos graficos y analisis.

efectos_principales=MEPlot(experimento_resp, main="Efectos principales para el experimento")

head(efectos_principales)
##          H        A        E
## - 4.956601 4.169787 5.792059
## + 4.871072 5.657886 4.035615
efectos_interaccion=IAPlot(experimento_resp, main="Gráfica de interacciones para el experimento")

head(efectos_interaccion)  
##          H:A      H:E      A:E
## -:- 2.273814 6.758458 5.964504
## +:- 6.065759 4.825659 5.619613
## -:+ 7.639388 3.154745 2.375069
## +:+ 3.676385 4.916485 5.696160

1.0.0.4 Inciso d)

modelo_sr=lm(r_signal_noise~(datos[3:10,1]+datos[3:10,2]+datos[3:10,3]),data=datos)
anova_individuales=aov(modelo_sr)
summary(anova_individuales)
##                Df Sum Sq Mean Sq F value Pr(>F)
## datos[3:10, 1]  1  13.80  13.802   1.612  0.273
## datos[3:10, 2]  1   6.17   6.170   0.720  0.444
## datos[3:10, 3]  1  18.85  18.848   2.201  0.212
## Residuals       4  34.26   8.564

Una ves obtenidos los resultados, se puede concluir con un 95% de confianza que los factores individuales no tienen un nivel de significancia sobre la señal de ruido, pero de lo que si se asegura es que el unico factor con un nivel de significancia importante es el “E”, por lo que se hara una prueba de interaccion con el factor “A” puesto a que el grafico de interacciones muestra cierta significancia entre estos dos factores.

modelo_sr_inter=lm(r_signal_noise~(datos[3:10,2]*datos[3:10,3]),data=datos)
anova_int_ae=aov(modelo_sr_inter)
summary(anova_int_ae)
##                               Df Sum Sq Mean Sq F value Pr(>F)  
## datos[3:10, 2]                 1   6.17   6.170   1.372  0.306  
## datos[3:10, 3]                 1  18.85  18.848   4.191  0.110  
## datos[3:10, 2]:datos[3:10, 3]  1  30.07  30.070   6.687  0.061 .
## Residuals                      4  17.99   4.497                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

EL análisis estadístico confirma que no existen interacciones significativas entre los factores que permitan maximizar el valor del estadístico señal/ruido, por lo que se concluye que no hay evidencia en la muestra que permita establcer las condiciones robustas de operación del proceso.

1.0.0.5 Inciso e)

experimento_media=add.response(experimento,response = r_media)
graf_daniel_media=DanielPlot(experimento_media, main="Grafico de Daniel para la respueta media del proceso")

Por los resultados obtenidos se puede decir que las unicas interacciones activas para el proceso serian “HA” y “HE”, por lo que a continuación se realizaran las graficas de interacciones y la grafias de efectos principales.

graf_efectos_individuales_media=MEPlot(experimento_media, main="Grafica de efectos principales para el valor nominal esperado")

head(graf_efectos_individuales_media)
##       H     A     E
## - 4.870 4.625 4.790
## + 4.535 4.780 4.615
interac_media=IAPlot(experimento_media,main="Grafica de interacciones para el valor nominal esperado")

head(interac_media)
##      H:A  H:E  A:E
## -:- 4.19 5.03 4.80
## +:- 5.06 4.55 4.78
## -:+ 5.55 4.71 4.45
## +:+ 4.01 4.52 4.78

Cono se sospechaba, las interacciones activas son “HA” y “HE”, por lo que a continuación se hara la prueba de significancia con el mejor anova.

modelo_HA=lm(r_media~(datos[3:10,1]*datos[3:10,2]),data=datos)
anova_HA=aov(modelo_HA)
summary(anova_HA)
##                               Df Sum Sq Mean Sq F value Pr(>F)
## datos[3:10, 1]                 1  0.328  0.3281   0.300  0.613
## datos[3:10, 2]                 1  0.061  0.0613   0.056  0.824
## datos[3:10, 1]:datos[3:10, 2]  1  0.011  0.0112   0.010  0.924
## Residuals                      4  4.369  1.0922
modelo_HE=lm(r_media~(datos[3:10,1]*datos[3:10,3]),data= datos)
anova_HE=aov(modelo_HE)
summary(anova_HE)
##                               Df Sum Sq Mean Sq F value Pr(>F)
## datos[3:10, 1]                 1 0.3281  0.3281   0.439  0.544
## datos[3:10, 3]                 1 1.4281  1.4281   1.910  0.239
## datos[3:10, 1]:datos[3:10, 3]  1 0.0220  0.0220   0.029  0.872
## Residuals                      4 2.9910  0.7478

1.0.0.6 Inciso f)

Se puede concluir con un 95% de confianza que tanto el factor “H” correspondiente a la harina, y el factor “E” al huevo, que tienen efectos significativos sobre el valor de la media, por lo que es recomendable implementar los niveles maximos de estos factores.

Respecto a la señal de ruido puedo concluir con un nivel del 95% de confianza que ninguno de los factores a considerar en el analisis es influyente para maximizar la señal de ruido para hacer insensible al proceso.

Bibliografía

Pulido, H. G., & Vara Salazar, R. de la. (2012). Analisis y diseño de Experimentos (3.ª ed.). McGraw Hill.