1 Diseño Factorial Fraccionado

Para ejemplificar este diseño factorial, tomaremos como base el ejercicio 8-6 de la página 350 del libro Análisis y Diseño de Experimentos de Montgomery. {Montgomery (2004)}:

2 Ejercicio 8-6

R.D.Snee (“Experimentación con un número grande de variables”, en Experiments in industry: Desegn, Analysis and Interpretation of Results, de R.D. Snee, L:.B. Hare y J.B. Trout, editores, ASQC) describe un experimento en el que se usó un diseño \(2^{5-1}\) con I=ABCDE para investigar los efectos de cinco factores sobre el color de un producto química. Los factores son A= solventes/reactivo, B=catalizador/reactivo, C=temperatura, D=pureza del reactivo y E= pH del reactivo. Los resultados obtenidos fueron los siguientes:

e=-0.63 d=6.79
a=2.51 ade=5.47
b=-2.68 bde=3.45
abe=1.66 adb=5.68
c=2.06 cde=5.22
ace=1.22 acd=4.38
bce=-2.09 bcd=4.30
abc=1.93 abcde=4.05

a) Construir una gráfica de probabilidad normal de los efectos. ¿Qué efectos parecen estar activos?
b) Calcular los residuales. Construir una gráfica de probabilidad normal de los residuales y graficar los residuales contra los valores ajustados. Comentar las gráficas.
c) Si algunos de los factores son insignificantes plegar el diseño \(2^{5-1}\) un diseño factorial completo en los factores activos. Comentar el diseño resultante e interpretar los resultados.

2.1 Solución

library(printr)
datos=read.table("dataset.txt",header = TRUE)
str(datos)
## 'data.frame':    16 obs. of  6 variables:
##  $ Solvente_reactivoA   : int  -1 1 -1 1 -1 1 -1 1 -1 1 ...
##  $ Catalizador_reactivoB: int  -1 -1 1 1 -1 -1 1 1 -1 -1 ...
##  $ Temperatura_C        : int  -1 -1 -1 -1 1 1 1 1 -1 -1 ...
##  $ Pureza_reactivoD     : int  -1 -1 -1 -1 -1 -1 -1 -1 -1 1 ...
##  $ PH_reactivoE         : int  1 -1 -1 1 -1 1 1 -1 1 1 ...
##  $ Resultados           : num  -0.63 2.51 -2.68 1.66 2.06 1.22 -2.09 1.93 6.79 5.47 ...
View(datos)

a) Construir una gráfica de probabilidad normal de los efectos. ¿Qué efectos parecen estar activos? Se requiere obtener la gráfica de pareto y Daniel, estas gráficas darán evidencia de cuales son los efectos relevantes del experimento, con base en el Principio de Escasez. Para obtenerlas debemos correr el siguiente código:

f_RA=factor('Solvente_reactivoA')
f_RB=factor('Catalizador_reactivoB')
f_RC=factor('Temperatura_C')
f_RD=factor('Pureza_reactivoD')
f_RE=factor('PH_reactivoE')
attach(datos)
head(datos,n=16L)
Solvente_reactivoA Catalizador_reactivoB Temperatura_C Pureza_reactivoD PH_reactivoE Resultados
-1 -1 -1 -1 1 -0.63
1 -1 -1 -1 -1 2.51
-1 1 -1 -1 -1 -2.68
1 1 -1 -1 1 1.66
-1 -1 1 -1 -1 2.06
1 -1 1 -1 1 1.22
-1 1 1 -1 1 -2.09
1 1 1 -1 -1 1.93
-1 -1 -1 -1 1 6.79
1 -1 -1 1 1 5.47
-1 1 -1 1 1 3.45
1 1 -1 1 -1 5.68
-1 -1 1 1 1 5.22
1 -1 1 1 -1 4.38
-1 1 1 1 -1 4.30
1 1 1 1 1 4.05
library(FrF2)
experimento = FrF2(nruns = 16, nfactors = 5, factor.names = list(Solvente_reactivoA=c(-1,1), Catalizador_reactivoB=c(-1,1), Temperatura_C=c(-1,1), Pureza_reactivoD=c(-1,1), PH_reactivoE=c(-1,1)), replications = 1, randomize = FALSE)
experimento_respuesta=add.response(design = experimento,response = Resultados)
halfnormal(experimento_respuesta, xlab = "Efectos activos")

La gráfica muestra que los efectos activos en el diseño experimental es el efecto del factor pureza y las interancciones que sobran se muestran sin letra. Para confirmar la información que muestra la tabla, se verifica el gráfico de Daniel, con el siguiente código:

DanielPlot(experimento_respuesta, main= "Gráfico de Daniel para el Alcohol Isoamílico")

Con la grafica se confirman los resutados del análisis anterior, por lo tanto se concluye que el efecto activo es el efecto principal del factor de Pureza_reactivoD. Se comprueba el principio de Jerarquía y Herencia porque es notorio que sólo están activos algunos efectos principales y las interacciones solas y dobles, y en el caso de los factores e interaaciones dobles, es notorio que no están activas porque tienen factores no activos en los efectos principales.

Gráfica de efectos principales, para poder verificar cuáles provocan cambios en el contenido de resultados obtenido, utilizando el siguiente comando:
b) Calcular los residuales. Construir una gráfica de probabilidad normal de los residuales y graficar los residuales contra los valores ajustados. Comentar las gráficas.

modelo=aov(Resultados~(Solvente_reactivoA*Catalizador_reactivoB*Temperatura_C*Pureza_reactivoD*PH_reactivoE))
summary(modelo)
##                                          Df Sum Sq Mean Sq F value Pr(>F)
## Solvente_reactivoA                        1   6.86    6.86   0.249  0.705
## Catalizador_reactivoB                     1   7.18    7.18   0.261  0.699
## Temperatura_C                             1   0.09    0.09   0.003  0.964
## Pureza_reactivoD                          1  49.95   49.95   1.815  0.407
## PH_reactivoE                              1   0.01    0.01   0.001  0.986
## Solvente_reactivoA:Catalizador_reactivoB  1  12.55   12.55   0.456  0.622
## Solvente_reactivoA:Temperatura_C          1   0.28    0.28   0.010  0.936
## Catalizador_reactivoB:Temperatura_C       1   1.96    1.96   0.071  0.834
## Solvente_reactivoA:Pureza_reactivoD       1   3.91    3.91   0.142  0.771
## Catalizador_reactivoB:Pureza_reactivoD    1   1.36    1.36   0.050  0.861
## Temperatura_C:Pureza_reactivoD            1   0.51    0.51   0.018  0.914
## Solvente_reactivoA:PH_reactivoE           1   0.00    0.00   0.000  0.996
## Catalizador_reactivoB:PH_reactivoE        1   0.01    0.01   0.000  0.990
## Temperatura_C:PH_reactivoE                1   2.49    2.49   0.090  0.814
## Residuals                                 1  27.53   27.53

Conclusion: Analizando la tabla de ANOVA para los efectos de cinco factores de un producto químico, se puede concluir que el factor D es significativo dado que está teniendo reacciones.

normalidad=shapiro.test(resid(modelo))
print(normalidad)
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(modelo)
## W = 0.51123, p-value = 2.63e-06
#Gráfica de probabilidad normal
qqnorm(resid(modelo), main= "Gráfica de Probabilidad para los Residuales del Modelo", xlab="Cuantiles Teoricos", ylab = "Cuantiles de muestra")
qqline(resid(modelo))

Conclusion: Los puntos en el gráfico muestran un comportamiento lineal, por lo tanto, se concluye que muestran un comportamiento normal. Corresponde al supuesto de normalidad.

homocedasticidad=bartlett.test(resid(modelo),Solvente_reactivoA, Catalizador_reactivoB, Temperatura_C,Pureza_reactivoD,PH_reactivoE,data=experimento_resp)
print(homocedasticidad)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  resid(modelo) and Solvente_reactivoA
## Bartlett's K-squared = 461.27, df = 1, p-value < 2.2e-16

Con los resultados obtenidos del análisis de varianza, se muestra que las varianzas son homólogas, dado que sus varianzas son constantes, por lo tanto se puede concluir que el modelo de regresión es adecuado.
c) Si algunos de los factores son insignificantes plegar el diseño \(2^5-1\) un diseño factorial completo en los factores activos. Comentar el diseño resultante e interpretar los resultados.

Ahora procederemos a analizar las interacciones, mediante la gráfica correspondiente:

grafica_interacciones=IAPlot(experimento_respuesta)

head(grafica_interacciones)
Solvente_reactivoA:Catalizador_reactivoB Solvente_reactivoA:Temperatura_C Solvente_reactivoA:Pureza_reactivoD Solvente_reactivoA:PH_reactivoE Catalizador_reactivoB:Temperatura_C Catalizador_reactivoB:Pureza_reactivoD Catalizador_reactivoB:PH_reactivoE Temperatura_C:Pureza_reactivoD Temperatura_C:PH_reactivoE Pureza_reactivoD:PH_reactivoE
-:- 3.360 1.7325 -0.835 2.6175 3.5350 1.290 3.9350 0.2150 3.0750 0.9550
+:- 3.395 3.8300 1.830 3.6250 2.0275 -0.295 2.3075 0.7800 3.1675 5.2875
-:+ 0.745 2.3725 4.940 1.4875 3.2200 5.465 2.8200 5.3475 2.4875 0.0400
+:+ 3.330 2.8950 4.895 3.1000 2.0475 4.370 1.7675 4.4875 2.1000 4.5475

Conclusion: Se observa que exiten interaciones fuertes entre los factores B y C, C y D, A y D, y D y C. Para probar si las interacciones son significativas, se realizara la tabla ANOVA del experimento considerando las interacciones dobles, mediante el siguiente código:

modelo_Catalizador_reactivoB_Temperatura_C=lm(Resultados~(Catalizador_reactivoB*Temperatura_C),data = datos)
summary(modelo_Catalizador_reactivoB_Temperatura_C)
## 
## Call:
## lm.default(formula = Resultados ~ (Catalizador_reactivoB * Temperatura_C), 
##     data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.7075 -1.3700  0.5212  2.0006  3.6525 
## 
## Coefficients:
##                                     Estimate Std. Error t value Pr(>|t|)   
## (Intercept)                          2.70750    0.74758   3.622   0.0035 **
## Catalizador_reactivoB               -0.67000    0.74758  -0.896   0.3878   
## Temperatura_C                       -0.07375    0.74758  -0.099   0.9230   
## Catalizador_reactivoB:Temperatura_C  0.08375    0.74758   0.112   0.9127   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.99 on 12 degrees of freedom
## Multiple R-squared:  0.06436,    Adjusted R-squared:  -0.1695 
## F-statistic: 0.2752 on 3 and 12 DF,  p-value: 0.8422
anova_Catalizador_reactivoB_Temperatura_C=aov(modelo_Catalizador_reactivoB_Temperatura_C)
summary(anova_Catalizador_reactivoB_Temperatura_C)
##                                     Df Sum Sq Mean Sq F value Pr(>F)
## Catalizador_reactivoB                1   7.18   7.182   0.803  0.388
## Temperatura_C                        1   0.09   0.087   0.010  0.923
## Catalizador_reactivoB:Temperatura_C  1   0.11   0.112   0.013  0.913
## Residuals                           12 107.30   8.942
modelo_Temperatura_C_Pureza_reactivoD=lm(Resultados~(Temperatura_C*Pureza_reactivoD),data = datos)
summary(modelo_Temperatura_C_Pureza_reactivoD)
## 
## Call:
## lm.default(formula = Resultados ~ (Temperatura_C * Pureza_reactivoD), 
##     data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.2100 -0.6823  0.2850  0.8550  5.2600 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                     2.91604    0.59705   4.884 0.000376 ***
## Temperatura_C                  -0.28229    0.59705  -0.473 0.644829    
## Pureza_reactivoD                1.76104    0.59705   2.950 0.012153 *  
## Temperatura_C:Pureza_reactivoD  0.09271    0.59705   0.155 0.879183    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.349 on 12 degrees of freedom
## Multiple R-squared:  0.4225, Adjusted R-squared:  0.2781 
## F-statistic: 2.926 on 3 and 12 DF,  p-value: 0.07714
anova_Catalizador_reactivoB_Temperatura_C=aov(modelo_Catalizador_reactivoB_Temperatura_C)
summary(anova_Catalizador_reactivoB_Temperatura_C)
##                                     Df Sum Sq Mean Sq F value Pr(>F)
## Catalizador_reactivoB                1   7.18   7.182   0.803  0.388
## Temperatura_C                        1   0.09   0.087   0.010  0.923
## Catalizador_reactivoB:Temperatura_C  1   0.11   0.112   0.013  0.913
## Residuals                           12 107.30   8.942
modelo_Solvente_reactivoA_Pureza_reactivoD=lm(Resultados~(Solvente_reactivoA*Pureza_reactivoD   ),data = datos)
summary(modelo_Solvente_reactivoA_Pureza_reactivoD)
## 
## Call:
## lm.default(formula = Resultados ~ (Solvente_reactivoA * Pureza_reactivoD), 
##     data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.3700 -0.8521 -0.0967  0.7062  6.1000 
## 
## Coefficients:
##                                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                           2.9346     0.5882   4.989 0.000315 ***
## Solvente_reactivoA                    0.4279     0.5882   0.728 0.480860    
## Pureza_reactivoD                      1.6746     0.5882   2.847 0.014703 *  
## Solvente_reactivoA:Pureza_reactivoD  -0.1421     0.5882  -0.242 0.813197    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.314 on 12 degrees of freedom
## Multiple R-squared:  0.4395, Adjusted R-squared:  0.2994 
## F-statistic: 3.137 on 3 and 12 DF,  p-value: 0.06541
anova_Solvente_reactivoA_Pureza_reactivoD=aov(modelo_Solvente_reactivoA_Pureza_reactivoD)
summary(anova_Solvente_reactivoA_Pureza_reactivoD   )
##                                     Df Sum Sq Mean Sq F value Pr(>F)  
## Solvente_reactivoA                   1   6.86    6.86   1.281 0.2797  
## Pureza_reactivoD                     1  43.23   43.23   8.070 0.0149 *
## Solvente_reactivoA:Pureza_reactivoD  1   0.31    0.31   0.058 0.8132  
## Residuals                           12  64.28    5.36                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
modelo_Pureza_reactivoD_PH_reactivoE=lm(Resultados~(Pureza_reactivoD*PH_reactivoE   ),data = datos)
summary(modelo_Pureza_reactivoD_PH_reactivoE)
## 
## Call:
## lm.default(formula = Resultados ~ (Pureza_reactivoD * PH_reactivoE), 
##     data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.6350 -0.6475  0.0500  0.9356  5.4000 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    2.91979    0.60144   4.855 0.000395 ***
## Pureza_reactivoD               1.74729    0.60144   2.905 0.013198 *  
## PH_reactivoE                   0.04896    0.60144   0.081 0.936464    
## Pureza_reactivoD:PH_reactivoE -0.16854    0.60144  -0.280 0.784072    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.367 on 12 degrees of freedom
## Multiple R-squared:  0.414,  Adjusted R-squared:  0.2674 
## F-statistic: 2.825 on 3 and 12 DF,  p-value: 0.0836
anova_Pureza_reactivoD_PH_reactivoE=aov(modelo_Pureza_reactivoD_PH_reactivoE)
summary(anova_Pureza_reactivoD_PH_reactivoE )
##                               Df Sum Sq Mean Sq F value Pr(>F)  
## Pureza_reactivoD               1  46.96   46.96   8.384 0.0134 *
## PH_reactivoE                   1   0.08    0.08   0.014 0.9076  
## Pureza_reactivoD:PH_reactivoE  1   0.44    0.44   0.079 0.7841  
## Residuals                     12  67.21    5.60                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Conclusion: Se puede observar que el modelo en las reacciones e interacciones con los otros reactivos y midiendo la pureza del reactivo D muestra una mayor significancia, teniendo que el reactivo con la interacción b y c, el A y D en la intervención del PH del reactivo e son significativas bajo este tipo de modelo mientras que, las otras intervenciones no tiene ninguna significación. Por lo tanto se concluye que existe significacion entre la temperatura de los solventes y la pureza de los reactivos.

Bibliografia

Montgomery, D. C. (2004). Diseño y Análisis de Experimentos (2a ed.). Limusa Wiley.