Para ejemplificar este diseño factorial, tomremos como base el ejercicio 8-6 de la página 350 del libro Análisis y Diseño de Experimentos de Montgomery. {Montgomery (2004)}:
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.
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?
Para este paso, se requerirá obtener la gráfica de Pareto y la de 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")
En esta gráfica se puede observar que los efectos activos en el diseño experimental es el efecto del factor de Pureza y las interancciones que se muestran sin letra son las interaciones que sobran. Por lo cual, Para confirmar la información que arroja la tabla, se verifica el gráfico de Daniel, mismo que se despoliega utilizando el siguiente código:
DanielPlot(experimento_respuesta, main= "Gráfico de Daniel para el Alcohol Isoamílico")
En esta grafica puede confirmarse la información que se obtuvo del análisis anterior, por lo que se concluye que el efectos activos es: el efecto principal del factor es el de Pureza_reactivoD. Con esto pueden comprobarse también el Principio de Jerarquía y el Principio de Herencia, dado que, es notorio que sólo están activos algunos efectos principales y algunas interacciones solas y dobles, situación que fue planteada en el principio de jerarquí; y en el caso de los factores y interacciones dobles, es notorio que no están activas tienen por lo menos tiene factores no activo en los principales.
Ahora procedermos a revisar la 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
De acuerdo a la información experimental, analizando la tabla de ANOVA para los efectos de cinco factores sobre el color de un producto química, nos podemos dar cuenta que el factor D, es significativo el cual 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))
Con base en el gráfico anterior, podemos concluir que los puntos en el gráfico muestran un comportamiento lineal, por lo que se concluye que si 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
En base a los resultados obtenidos del análisis de varianza, estas son las varianzas homogeneidad, pues si son normales, sus varianzas son constantes, por lo que podemos decir que el modelo de regresión si está 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 |
Cómo nos podemos dar cuenta en los datos de la tabla del gráfica de interacciones anterior, observamos que exiten interacciones fuertes entre los factores B:C, C:D, A:D, y D:C. Para probar si las interacciones son significativas, procederemos a realizar la tabla ANOVA del experimento, pero considerando unicamente las interacciones dobles, esto se realiza 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
Con base a la evidencia experimental, registrada tenemos bajo los métodos de realización de las varianzas observamos que el modelo en las reacciones e interacciones con los otros reactivos y midiendo la pureza de reactivo D, se muestra que en cada una de ellas la mayor significancia es este mismo, teniendo que el reactivo con la interacción B y C, el A y D en la intervención del PH del reactivo E, también son significativas bajo este tipo de modelo mientras que las otras intervenciones no tiene ninguna significación. Por lo que se concluye que si existe significancia entre la temperatura de los solventes y la pureza de los reactivos.