Análisis y diseño de Experimentos de Humberto Gutierrez Pulido.
En una empresa de electrónica, una máquina toma componentes que le proporciona un alimentador para montarlos o depositarlos en una tarjeta. Se ha tenido el problema de que la máquina falla en sus intentos por tomar el componente, lo cual causa paros de la máquina que detienen el proceso hasta que el operador se da cuenta y reinicia el proceso. Para diagnosticar mejor la situación se decide correr un diseño de experimentos \(2^4\) con n = 2 réplicas, en el que se tienen los siguientes factores y niveles (–, +),respectivamente: A) Velocidad de cam (70%, 100%), B) Velocidad de mesa (media, alta), C) Orden o secuencia de colocación (continua, variable), D) Alimentador(1, 2). Como el proceso es muy rápido, es necesario dejarlo operar en cada condición experimental el tiempo suficiente para reproducir el problema. Se consideró que esto se lograba con suficiente confianza con 500 componentes; por ello, cada una de las corridas experimentales consistió en colocar 500 componentes, y se midieron dos variables de respuesta: Y1 = número de errores (o intentos fallidos), y Y2 = tiempo real (en segundos) para tomar y “colocar” los 500 componentes. Es evidente que se quieren minimizar ambas variables. (Pulido & Vara Salazar, 2012) (Pulido, De la Vara Salazar, González, Martı́nez, & Pérez, 2012)
Los datos que obtenidos se muestran en la siguiente tabla:
| Factor | Factor | Factor | Factor | Réplica 1 | Réplica 2 | ||
|---|---|---|---|---|---|---|---|
| A | B | C | D | Y1 | Y2 | Y1 | Y2 |
| -1 | -1 | -1 | -1 | 61 | 88 | 50 | 79 |
| +1 | -1 | -1 | -1 | 105 | 78 | 98 | 74 |
| -1 | +1 | -1 | -1 | 61 | 82 | 40 | 82 |
| +1 | +1 | -1 | -1 | 104 | 73 | 145 | 79 |
| -1 | -1 | +1 | -1 | 0 | 88 | 35 | 100 |
| +1 | -1 | +1 | -1 | 35 | 84 | 22 | 82 |
| -1 | +1 | +1 | -1 | 50 | 89 | 37 | 88 |
| +1 | +1 | +1 | -1 | 57 | 79 | 71 | 81 |
| -1 | -1 | -1 | +1 | 12 | 77 | 19 | 75 |
| +1 | -1 | -1 | +1 | 60 | 66 | 57 | 64 |
| -1 | +1 | -1 | +1 | 9 | 84 | 19 | 73 |
| +1 | +1 | -1 | +1 | 72 | 93 | 61 | 66 |
| -1 | -1 | +1 | +1 | 0 | 86 | 0 | 82 |
| +1 | -1 | +1 | +1 | 10 | 76 | 1 | 77 |
| -1 | +1 | +1 | +1 | 3 | 84 | 7 | 86 |
| +1 | +1 | +1 | +1 | 15 | 75 | 15 | 73 |
Adquisición de datos:
library(readxl)
library(FrF2)
datos= read.table("dataset.txt", header =TRUE)
str(datos)
## 'data.frame': 32 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 ...
## $ Y1: int 61 105 61 104 0 35 50 57 12 60 ...
## $ Y2: int 88 78 82 73 88 84 89 79 77 66 ...
attach(datos)
head(datos, n= 32L)
## A B C D Y1 Y2
## 1 -1 -1 -1 -1 61 88
## 2 1 -1 -1 -1 105 78
## 3 -1 1 -1 -1 61 82
## 4 1 1 -1 -1 104 73
## 5 -1 -1 1 -1 0 88
## 6 1 -1 1 -1 35 84
## 7 -1 1 1 -1 50 89
## 8 1 1 1 -1 57 79
## 9 -1 -1 -1 1 12 77
## 10 1 -1 -1 1 60 66
## 11 -1 1 -1 1 9 84
## 12 1 1 -1 1 72 93
## 13 -1 -1 1 1 0 86
## 14 1 -1 1 1 10 76
## 15 -1 1 1 1 3 84
## 16 1 1 1 1 15 75
## 17 -1 -1 -1 -1 50 79
## 18 1 -1 -1 -1 98 74
## 19 -1 1 -1 -1 40 82
## 20 1 1 -1 -1 145 79
## 21 -1 -1 1 -1 35 100
## 22 1 -1 1 -1 22 82
## 23 -1 1 1 -1 37 88
## 24 1 1 1 -1 71 81
## 25 -1 -1 -1 1 19 75
## 26 1 -1 -1 1 57 64
## 27 -1 1 -1 1 19 73
## 28 1 1 -1 1 61 66
## 29 -1 -1 1 1 0 82
## 30 1 -1 1 1 1 77
## 31 -1 1 1 1 7 86
## 32 1 1 1 1 15 73
Variables:
f_A=factor(A)
f_B=factor(B)
f_C=factor(C)
f_D=factor(D)
Al observar los datos obtenidos, se deduce que hay algunos tratamientos que tienen pocos o ningún componente caídos, como por ejemplo el (–1, –1, +1, +1); alguien muy “práctico” decidiría poner la máquina a operar bajo estas condiciones y olvidarse del análisis estadístico. De proceder así, explique qué información se perdería.
La información que se perdería son los resultados respecto a los factores que afectan a la variable y por lo tanto, los defectos tanto como el tiempo aumentarian ya que el problema no se solucionaría.
Modelos de ambas variables:
modeloY1=lm(Y1~(f_A+f_B+f_C+f_D+f_A*f_B+f_A*f_C+f_A*f_D+f_B*f_C+f_B*f_D+f_C*f_D+f_A*f_B*f_C+f_A*f_B*f_C*f_D))
summary(modeloY1)
##
## Call:
## lm.default(formula = Y1 ~ (f_A + f_B + f_C + f_D + f_A * f_B +
## f_A * f_C + f_A * f_D + f_B * f_C + f_B * f_D + f_C * f_D +
## f_A * f_B * f_C + f_A * f_B * f_C * f_D))
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.500 -5.125 0.000 5.125 20.500
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 55.500 8.317 6.673 5.35e-06 ***
## f_A1 46.000 11.762 3.911 0.00124 **
## f_B1 -5.000 11.762 -0.425 0.67643
## f_C1 -38.000 11.762 -3.231 0.00523 **
## f_D1 -40.000 11.762 -3.401 0.00365 **
## f_A1:f_B1 28.000 16.634 1.683 0.11172
## f_A1:f_C1 -35.000 16.634 -2.104 0.05153 .
## f_A1:f_D1 -3.000 16.634 -0.180 0.85914
## f_B1:f_C1 31.000 16.634 1.864 0.08083 .
## f_B1:f_D1 3.500 16.634 0.210 0.83600
## f_C1:f_D1 22.500 16.634 1.353 0.19497
## f_A1:f_B1:f_C1 -18.500 23.524 -0.786 0.44311
## f_A1:f_B1:f_D1 -18.500 23.524 -0.786 0.44311
## f_A1:f_C1:f_D1 -2.500 23.524 -0.106 0.91669
## f_B1:f_C1:f_D1 -24.500 23.524 -1.041 0.31313
## f_A1:f_B1:f_C1:f_D1 13.500 33.268 0.406 0.69027
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 11.76 on 16 degrees of freedom
## Multiple R-squared: 0.9461, Adjusted R-squared: 0.8955
## F-statistic: 18.72 on 15 and 16 DF, p-value: 2.305e-07
modeloY2=lm(Y2~(f_A+f_B+f_C+f_D+f_A*f_B+f_A*f_C+f_A*f_D+f_B*f_C+f_B*f_D+f_C*f_D+f_A*f_B*f_C+f_A*f_B*f_C*f_D))
summary(modeloY2)
##
## Call:
## lm.default(formula = Y2 ~ (f_A + f_B + f_C + f_D + f_A * f_B +
## f_A * f_C + f_A * f_D + f_B * f_C + f_B * f_D + f_C * f_D +
## f_A * f_B * f_C + f_A * f_B * f_C * f_D))
##
## Residuals:
## Min 1Q Median 3Q Max
## -13.5 -1.0 0.0 1.0 13.5
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 83.500 4.274 19.538 1.37e-12 ***
## f_A1 -7.500 6.044 -1.241 0.233
## f_B1 -1.500 6.044 -0.248 0.807
## f_C1 10.500 6.044 1.737 0.102
## f_D1 -7.500 6.044 -1.241 0.233
## f_A1:f_B1 1.500 8.548 0.175 0.863
## f_A1:f_C1 -3.500 8.548 -0.409 0.688
## f_A1:f_D1 -3.500 8.548 -0.409 0.688
## f_B1:f_C1 -4.000 8.548 -0.468 0.646
## f_B1:f_D1 4.000 8.548 0.468 0.646
## f_C1:f_D1 -2.500 8.548 -0.292 0.774
## f_A1:f_B1:f_C1 1.000 12.088 0.083 0.935
## f_A1:f_B1:f_D1 10.500 12.088 0.869 0.398
## f_A1:f_C1:f_D1 7.000 12.088 0.579 0.571
## f_B1:f_C1:f_D1 2.500 12.088 0.207 0.839
## f_A1:f_B1:f_C1:f_D1 -16.500 17.095 -0.965 0.349
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.044 on 16 degrees of freedom
## Multiple R-squared: 0.6925, Adjusted R-squared: 0.4042
## F-statistic: 2.402 on 15 and 16 DF, p-value: 0.04609
Investigue qué efectos influyen de manera significativa sobre Y1 (apóyese en Pareto y ANOVA).
Tabla ANOVA
modeloY1=aov(modeloY1)
summary(modeloY1)
## Df Sum Sq Mean Sq F value Pr(>F)
## f_A 1 8613 8613 62.260 6.63e-07 ***
## f_B 1 1263 1263 9.126 0.008117 **
## f_C 1 11820 11820 85.436 8.12e-08 ***
## f_D 1 11666 11666 84.328 8.87e-08 ***
## f_A:f_B 1 332 332 2.396 0.141163
## f_A:f_C 1 3549 3549 25.654 0.000115 ***
## f_A:f_D 1 205 205 1.482 0.241106
## f_B:f_C 1 332 332 2.396 0.141163
## f_B:f_D 1 428 428 3.092 0.097779 .
## f_C:f_D 1 306 306 2.214 0.156214
## f_A:f_B:f_C 1 69 69 0.499 0.490107
## f_A:f_B:f_D 1 69 69 0.499 0.490107
## f_A:f_C:f_D 1 9 9 0.065 0.801591
## f_B:f_C:f_D 1 158 158 1.139 0.301766
## f_A:f_B:f_C:f_D 1 23 23 0.165 0.690267
## Residuals 16 2213 138
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Se puede observar con los resultados del ANOVA de la variable Y1 que las variables de manera individual son significativas sin embargo respecto a las interacciones solo se puede considerar significativa la interacción de los fatores A y C, es decir, la velocidad y el orden o secuencia. Además se puede observar que el factor B, la velocidad de mesa es el factor que de manera individual representa menor efecto que el resto de los factores.
Obtenga el mejor ANOVA.
Mejor ANOVA
modeloMY1=aov(Y1~(f_B+f_C+f_D+f_A*f_C))
summary(modeloMY1)
## Df Sum Sq Mean Sq F value Pr(>F)
## f_B 1 1263 1263 7.923 0.00918 **
## f_C 1 11820 11820 74.174 4.32e-09 ***
## f_D 1 11666 11666 73.212 4.90e-09 ***
## f_A 1 8613 8613 54.053 8.30e-08 ***
## f_C:f_A 1 3549 3549 22.272 7.05e-05 ***
## Residuals 26 4143 159
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Si en el análisis anterior encuentra alguna interacción significativa, analice con detalle la más importante e interprete en términos físicos.
library(FrF2)
experimento = FrF2(nruns = 16, nfactors = 4, factor.names = list(f_A=c(-1,1), f_B=c(-1,1), f_C=c(-1,1), f_D=c(-1,1) ),replications = 2,randomize = FALSE)
## creating full factorial with 16 runs ...
experimento_respuesta=add.response(design=experimento,response = Y1)
Gráfica de efectos individuales
grafica_individuales=MEPlot(experimento_respuesta,main="Gráfica de efectos individuales")
Se puede concluir que, la interpretación coincide con los datos aportados del ANOVA, los factores A,C y D si sonsignificativos en el proceso a diferencia del B que solo presenta una menor significancia.
Gráfica de interacciones
grafica_interacciones=IAPlot(experimento_respuesta,main="Gráfica de Interacciones")
Y respecto a la gráfica de interacciones ya que la importante fue la interacción de A con C en los resultados del anova, es una conclusión a la que se llega de igual manera observando la gráfica y como esa interacción se observa que tiene un impacto más notable en comparación de las demás.
¿Qué tratamiento minimiza Y1?
El tratamiento que minimiza Y1 es el siguiente:
\[(-1,-1,1,1)\]
Ahora investigue qué efectos influyen de manera relevante sobre Y2.
Tabla ANOVA
modeloY2=aov(modeloY2)
summary(modeloY2)
## Df Sum Sq Mean Sq F value Pr(>F)
## f_A 1 472.8 472.8 12.942 0.00241 **
## f_B 1 3.8 3.8 0.104 0.75183
## f_C 1 294.0 294.0 8.049 0.01190 *
## f_D 1 247.5 247.5 6.776 0.01922 *
## f_A:f_B 1 19.5 19.5 0.535 0.47523
## f_A:f_C 1 26.3 26.3 0.719 0.40885
## f_A:f_D 1 2.5 2.5 0.069 0.79573
## f_B:f_C 1 81.3 81.3 2.225 0.15525
## f_B:f_D 1 81.3 81.3 2.225 0.15525
## f_C:f_D 1 7.0 7.0 0.192 0.66673
## f_A:f_B:f_C 1 26.3 26.3 0.719 0.40885
## f_A:f_B:f_D 1 2.5 2.5 0.069 0.79573
## f_A:f_C:f_D 1 0.8 0.8 0.021 0.88556
## f_B:f_C:f_D 1 16.5 16.5 0.453 0.51074
## f_A:f_B:f_C:f_D 1 34.0 34.0 0.932 0.34882
## Residuals 16 584.5 36.5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
De acuerdo con el anova de la variable de respuesta Y2 se observa que en este caso, los factores de importancia son el factor A, el C y el D aunque en menor medida, y el factor B no resulta significante al igual que ninguna de las interacciones, por lo que a continuación se muestra solo la gráfica de efectos individuales.
library(FrF2)
experimento = FrF2(nruns = 16, nfactors = 4, factor.names = list(f_A=c(-1,1), f_B=c(-1,1), f_C=c(-1,1), f_D=c(-1,1) ),replications = 2,randomize = FALSE)
## creating full factorial with 16 runs ...
experimento_respuesta1=add.response(design=experimento,response = Y2)
Gráfica de efectos individuales
grafica_individuales=MEPlot(experimento_respuesta1,main="Gráfica de efectos individuales")
Se puede observar con ayuda de la gráfica como se cumple lo obtenido en el anova, el factor B no es significativo, los factores C y D lo son en cierta manera y el A si resulta un factor de importancia para la variable Y2.
¿Qué tratamiento minimiza Y2?
El tratamiento que minimiza a Y2 es: (1,-1,-1,1) o:(1,1,-1,1).
Encuentre una condición satisfactoria tanto para minimizar Y1 como Y2.
Observando los tratamientos que se obtuvieron de cada variable, y que A y C difierenla mejor solución que se puede encontrar para minimizar ambas es:
\((-1,-1,1,1 )\)
De los análisis de varianza para Y1 y Y2 observe el coeficiente \(R^2\). ¿Qué concluye de ello?
Y1:
Residual standard error: 11.76 on 16 degrees of freedom Multiple R-squared: 0.9461, Adjusted R-squared: 0.8955 F-statistic: 18.72 on 15 and 16 DF, p-value: 2.305e-07
Y2:
Residual standard error: 6.044 on 16 degrees of freedom Multiple R-squared: 0.6925, Adjusted R-squared: 0.4042 F-statistic: 2.402 on 15 and 16 DF, p-value: 0.04609
Se puede concluir, que como se observa el \(R^2\) es bastante grande y significativo, indica que los factores tienen una relación significativa como se concluyó anteriormente con los resultados obtenidos y que es recomendable su análisis, y para el caso de Y2, se puede observar como el \(R^2\) no es fuerte, no existe una relación significativa realmente en los factores pero aún así si es algo notorio, sin embargo el modelo no representa de la misma manera que Y1.
Verifique residuos.
Prueba de normalidad
Hipotesis nula de la Prueba de Shapiro-Wilks se rechaza cuando el Valorp<0.05
normalidad=shapiro.test(resid(modeloY1))
print(normalidad)
##
## Shapiro-Wilk normality test
##
## data: resid(modeloY1)
## W = 0.96651, p-value = 0.4091
normalidad=shapiro.test(resid(modeloY2))
print(normalidad)
##
## Shapiro-Wilk normality test
##
## data: resid(modeloY2)
## W = 0.8854, p-value = 0.002686
El valor presentado por Valorp es de 0.4091 para Y1 y 0.02686 para Y2, lo que indica que solo el valor de Y1 es mayor que 0.05, por lo tanto,en conclusión, se acepta la hipótesis nula para Y1 y se dice que los residuos son normales, sin embargo para el caso de Y2 no se acepta por lo tanto no existe normalidad en tales residuos.
Prueba de Bartlett
homocedasticidad=bartlett.test(resid(modeloY1),f_A,f_B,f_C,f_D, data=experimento_resp)
print(homocedasticidad)
##
## Bartlett test of homogeneity of variances
##
## data: resid(modeloY1) and f_A
## Bartlett's K-squared = 0.025372, df = 1, p-value = 0.8734
homocedasticidad=bartlett.test(resid(modeloY2),f_A,f_B,f_C,f_D, data=experimento_resp)
print(homocedasticidad)
##
## Bartlett test of homogeneity of variances
##
## data: resid(modeloY2) and f_A
## Bartlett's K-squared = 2.0788, df = 1, p-value = 0.1494
En ambos casos el p value es mayor que 0.05 por lo que se acepta la hipótesis nula y se puede decir que los residuos de ambas variables tienen varianza constante, pero, ya que en la variable Y2, los residuos no cuentan con normalidad se dice que el modelo lineal no es adecuado para analizar correctamente las dos variables.