R.D. Snee (“Experimentación con un número grande de variables”, en Experiments in Industry: Design, 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ímico. Los factores son A=solvente/reactivo, B=catalizador/reactivo, C=temperatura, D=pureza del reactivo y E=pH del reactivo. (Montgomery, 2004) 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 | abd=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 |
Para obtener la tabla de datos:
library(printr)
datos=read.table("dataset.txt",header= TRUE)
str(datos)
## 'data.frame': 16 obs. of 6 variables:
## $ A : int -1 1 -1 1 -1 1 -1 1 -1 1 ...
## $ B : int -1 -1 1 1 -1 -1 1 1 -1 -1 ...
## $ C : int -1 -1 -1 -1 1 1 1 1 -1 -1 ...
## $ D : int -1 -1 -1 -1 -1 -1 -1 -1 1 1 ...
## $ E : int 1 -1 -1 1 -1 1 1 -1 -1 1 ...
## $ Color: num -0.63 2.51 -2.68 1.66 2.06 1.22 -2.09 1.93 6.79 5.47 ...
attach(datos)
head(datos,n=16L)
| A | B | C | D | E | Color |
|---|---|---|---|---|---|
| -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 |
Construir una gráfica de probabilidad normal de los efectos. ¿Qué efectos parecen estar activos?
Para esto,se requerirá obtener la gráfica de Pareto y la de Daniel, estas grrá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:
library(FrF2)
experimento=FrF2(nruns = 16, nfactors = 5, factor.names = list(A=c(-1,1),B=c(-1,1),C=c(-1,1),D=c(-1,1),E=c(-1,1)),generators = "ABCD",replications = 1,randomize = FALSE)
experimento_respuesta=add.response(design = experimento,response = Color)
halfnormal(experimento_respuesta, xlab = "Efectos activos")
En esta gráfica observamos que los efectos activos se dan únicamente en el factor D , lo cual podemos hacer válida la información con la tabla que obtuvimos y con la gráfica siguiente:
DanielPlot(experimento_respuesta, main= "Gráfico de Daniel para el Color del producto")
En esta gráfica analizamos que el efecto activo es únicamente el efecto D.
Gráfica de efectos principales
efectos_principales=MEPlot(experimento_respuesta)
head(efectos_principales)
| A | B | C | D | E | |
|---|---|---|---|---|---|
| - | 2.0525 | 3.3775 | 2.78125 | 0.4975 | 3.12125 |
| + | 3.3625 | 2.0375 | 2.63375 | 4.9175 | 2.29375 |
En esta gráfica se puede observar que efecto activo que genera un impacto en el color del producto químico es el factor D , por lo que pudimos observar en las gráficas anteriores dónde se muestra que el único que está activo es el factor D . Al observar que es el único activo se realiza una gráfica de interacciones para si analizar las interacciones que llegara a tener este factor.
Gráfica de interacciones
grafica_interacciones=IAPlot(experimento_respuesta)
head(grafica_interacciones)
| A:B | A:C | A:D | A:E | B:C | B:D | B:E | C:D | C:E | D:E | |
|---|---|---|---|---|---|---|---|---|---|---|
| -:- | 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 |
Al observar los resultados logramos ver qué no existen interacciones entre otros factores por lo que realizamos un análisis de significancia.
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.
Para poder analizar los residuales se construye el modelo que involucre los factores como se muestra a continuación.
lineal=lm(Color~(A+B+C+D+E))
summary(lineal)
##
## Call:
## lm.default(formula = Color ~ (A + B + C + D + E))
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.3400 -0.5181 0.1988 0.8581 1.5175
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.70750 0.35061 7.722 1.60e-05 ***
## A 0.65500 0.35061 1.868 0.0913 .
## B -0.67000 0.35061 -1.911 0.0851 .
## C -0.07375 0.35061 -0.210 0.8376
## D 2.21000 0.35061 6.303 8.87e-05 ***
## E -0.41375 0.35061 -1.180 0.2653
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.402 on 10 degrees of freedom
## Multiple R-squared: 0.8285, Adjusted R-squared: 0.7428
## F-statistic: 9.662 on 5 and 10 DF, p-value: 0.001381
Al obtener dichos resultados confirmamos que el único factor de importación es el D. Y analizamos los residuos.
residuals(lineal)
## 1 2 3 4 5 6 7 8 9 10
## -0.8025 0.2000 -2.3400 1.5175 1.2075 -0.1150 -0.7750 1.1075 1.3700 -0.4325
## 11 12 13 14 15 16
## 0.1975 0.2900 0.7750 -2.2025 0.3675 -0.3650
De igual forma se obtienen los residuos ajustados con el siguiente código:
rstandard(lineal)
## 1 2 3 4 5 6 7
## -0.7238133 0.1803896 -2.1105586 1.3687062 1.0891023 -0.1037240 -0.6990098
## 8 9 10 11 12 13 14
## 0.9989075 1.2356689 -0.3900926 0.1781347 0.2615649 0.6990098 -1.9865407
## 15 16
## 0.3314659 -0.3292111
Y una vez obtenidos los valores se obtiene la gráfica:
qqnorm(resid(lineal), main= "Gráfica de Probabilidad para los Residuales del Modelo", xlab="Cuantiles Teoricos", ylab = "Cuantiles de muestra")
Estandar<-plot(rstandard(lineal), main = "Comportamiento de los Residuos estándar", ylab = "Residuos estándar")
Al observar la siguientes gráfica podemos decir que muestran un comportamiento similar ya que casi no hay diferencia entre ellos.
Si algunos de los factores son insignificantes, plegar el diseño \(2^5-1\) a un diseño factorial completo en los factores activos. Comentar el diseño e interpretar los resultados.
Dado que el único factor activo fue el factor D, se procede a realizar loa análisis para este factor y obtener un mejor análisis.
Modelo.
modeloD=lm(Color~(D),data = datos)
summary(modeloD)
##
## Call:
## lm.default(formula = Color ~ (D), data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.1775 -0.9325 0.4275 1.2300 2.0125
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.7075 0.4039 6.704 1.00e-05 ***
## D 2.2100 0.4039 5.472 8.23e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.616 on 14 degrees of freedom
## Multiple R-squared: 0.6814, Adjusted R-squared: 0.6586
## F-statistic: 29.94 on 1 and 14 DF, p-value: 8.229e-05
Anova.
anova=aov(modeloD)
summary(anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## D 1 78.15 78.15 29.94 8.23e-05 ***
## Residuals 14 36.54 2.61
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Gráfica de residuales.
qqnorm(resid(modeloD), main= "Gráfica de Probabilidad para los Residuales del Modelo", xlab="Cuantiles Teoricos", ylab = "Cuantiles de muestra")
Finalmente, se puede concluir mediante los análisis realizados y sobretodo del factor activo es decir el factor D, que en palabras del planteamiento, el factor D que representa la pureza del reactivo y que es el factor que tiene influencia significativa sobre el impacto del color del producto, resulta de gran importancia y ya que se espera se obtenga un buen resultado respecto al color, se recomienda se utilice el factor D en el nivel alto, es decir mantener en gran medida la pureza del reactivo, de los demás factores resulta insignificante los niveles en los que se utilicen.