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 24 con n = 2 réplicas, en el que se tienen los siguientes facto res 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 pro ceso es muy rápido, es necesario dejarlo operar en cada condición experimental el tiempo sufi ciente para reproducir el problema. Se consideró que esto se lograba con sufi ciente confi anza con 500 com ponentes; por ello, cada una de las corridas experimentales consis tió en colocar 500 componentes, y se midieron dos variables de res puesta: 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. Los datos obte nidos se muestran en la siguiente tabla. (Pulido & Vara Salazar, 2012)
Réplica 1 Réplica 2
| Factor A | Factor B | Factor C | Factor 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 |
Se perderá el tiempo que se tarda en colocar los componentes en caso no tener un buen rendimiento la prueba.
library(printr)
library(FrF2)
datos=read.table("dataset.txt",header = TRUE)
str(datos)
## 'data.frame': 32 obs. of 6 variables:
## $ Factor_A: int -1 1 -1 1 -1 1 -1 1 -1 1 ...
## $ Factor_B: int -1 -1 1 1 -1 -1 1 1 -1 -1 ...
## $ Factor_C: int -1 -1 -1 -1 1 1 1 1 -1 -1 ...
## $ Factor_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)
| Factor_A | Factor_B | Factor_C | Factor_D | Y1 | Y2 |
|---|---|---|---|---|---|
| -1 | -1 | -1 | -1 | 61 | 88 |
| 1 | -1 | -1 | -1 | 105 | 78 |
| -1 | 1 | -1 | -1 | 61 | 82 |
| 1 | 1 | -1 | -1 | 104 | 73 |
| -1 | -1 | 1 | -1 | 0 | 88 |
| 1 | -1 | 1 | -1 | 35 | 84 |
| -1 | 1 | 1 | -1 | 50 | 89 |
| 1 | 1 | 1 | -1 | 57 | 79 |
| -1 | -1 | -1 | 1 | 12 | 77 |
| 1 | -1 | -1 | 1 | 60 | 66 |
| -1 | 1 | -1 | 1 | 9 | 84 |
| 1 | 1 | -1 | 1 | 72 | 93 |
| -1 | -1 | 1 | 1 | 0 | 86 |
| 1 | -1 | 1 | 1 | 10 | 76 |
| -1 | 1 | 1 | 1 | 3 | 84 |
| 1 | 1 | 1 | 1 | 15 | 75 |
| -1 | -1 | -1 | -1 | 50 | 79 |
| 1 | -1 | -1 | -1 | 98 | 74 |
| -1 | 1 | -1 | -1 | 40 | 82 |
| 1 | 1 | -1 | -1 | 145 | 79 |
| -1 | -1 | 1 | -1 | 35 | 100 |
| 1 | -1 | 1 | -1 | 22 | 82 |
| -1 | 1 | 1 | -1 | 37 | 88 |
| 1 | 1 | 1 | -1 | 71 | 81 |
| -1 | -1 | -1 | 1 | 19 | 75 |
| 1 | -1 | -1 | 1 | 57 | 64 |
| -1 | 1 | -1 | 1 | 19 | 73 |
| 1 | 1 | -1 | 1 | 61 | 66 |
| -1 | -1 | 1 | 1 | 0 | 82 |
| 1 | -1 | 1 | 1 | 1 | 77 |
| -1 | 1 | 1 | 1 | 7 | 86 |
| 1 | 1 | 1 | 1 | 15 | 73 |
modelo=aov(Y1~(Factor_A*Factor_B*Factor_C*Factor_D))
summary(modelo)
## Df Sum Sq Mean Sq F value Pr(>F)
## Factor_A 1 8613 8613 62.260 6.63e-07 ***
## Factor_B 1 1263 1263 9.126 0.008117 **
## Factor_C 1 11820 11820 85.436 8.12e-08 ***
## Factor_D 1 11666 11666 84.328 8.87e-08 ***
## Factor_A:Factor_B 1 332 332 2.396 0.141163
## Factor_A:Factor_C 1 3549 3549 25.654 0.000115 ***
## Factor_B:Factor_C 1 332 332 2.396 0.141163
## Factor_A:Factor_D 1 205 205 1.482 0.241106
## Factor_B:Factor_D 1 428 428 3.092 0.097779 .
## Factor_C:Factor_D 1 306 306 2.214 0.156214
## Factor_A:Factor_B:Factor_C 1 69 69 0.499 0.490107
## Factor_A:Factor_B:Factor_D 1 69 69 0.499 0.490107
## Factor_A:Factor_C:Factor_D 1 9 9 0.065 0.801591
## Factor_B:Factor_C:Factor_D 1 158 158 1.139 0.301766
## Factor_A:Factor_B:Factor_C:Factor_D 1 23 23 0.165 0.690267
## Residuals 16 2213 138
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
modelo1=aov(Y1~(Factor_B+Factor_D+Factor_A*Factor_C))
Se observa que los factores C, D, A, B y la interacción AC son significativos.Es decir influyen los 4 factores: A, B, C, D.
anova=aov(modelo1)
summary(anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## Factor_B 1 1263 1263 7.923 0.00918 **
## Factor_D 1 11666 11666 73.212 4.90e-09 ***
## Factor_A 1 8613 8613 54.053 8.30e-08 ***
## Factor_C 1 11820 11820 74.174 4.32e-09 ***
## Factor_A:Factor_C 1 3549 3549 22.272 7.05e-05 ***
## Residuals 26 4143 159
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Con base a los resultados en el primer análisis de varianza, se decide excluir las interacciones de 3er orden dado que no son significativas y reducen el orden máximo del efecto a 2. Se incluyen las interacciónes de AB, AD y CD.
d ) 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(Factor_A=c(-1,1), Factor_B=c(-1,1), Factor_C=c(-1,1), Factor_D=c(-1,1) ),replications = 2,randomize = FALSE)
experimento_respuesta=add.response(design=experimento,response = Y1)
grafica_efectos_principales=MEPlot(experimento_respuesta, main= "Gráfica de Efectos Individuales")
grafica_interacciones=IAPlot(experimento_respuesta,main="Gráfica de Interacciones")
Se observa que la única interacción significativa es AC. Más adelante, si miramos el diagrama de interacción, nos daremos cuenta de que el mejor nivel de variable de respuesta que minimiza el número de errores será el nivel alto de A y el nivel bajo de C.
f ) Ahora investigue qué efectos influyen de manera relevante sobre Y2.
modelo=aov(Y2~(Factor_A*Factor_B*Factor_C*Factor_D))
summary(modelo)
## Df Sum Sq Mean Sq F value Pr(>F)
## Factor_A 1 472.8 472.8 12.942 0.00241 **
## Factor_B 1 3.8 3.8 0.104 0.75183
## Factor_C 1 294.0 294.0 8.049 0.01190 *
## Factor_D 1 247.5 247.5 6.776 0.01922 *
## Factor_A:Factor_B 1 19.5 19.5 0.535 0.47523
## Factor_A:Factor_C 1 26.3 26.3 0.719 0.40885
## Factor_B:Factor_C 1 81.3 81.3 2.225 0.15525
## Factor_A:Factor_D 1 2.5 2.5 0.069 0.79573
## Factor_B:Factor_D 1 81.3 81.3 2.225 0.15525
## Factor_C:Factor_D 1 7.0 7.0 0.192 0.66673
## Factor_A:Factor_B:Factor_C 1 26.3 26.3 0.719 0.40885
## Factor_A:Factor_B:Factor_D 1 2.5 2.5 0.069 0.79573
## Factor_A:Factor_C:Factor_D 1 0.8 0.8 0.021 0.88556
## Factor_B:Factor_C:Factor_D 1 16.5 16.5 0.453 0.51074
## Factor_A:Factor_B:Factor_C:Factor_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
Los factores A, C y D son importantes. El factor con mayor significancia es el factor A.
library(FrF2)
experimento = FrF2(nruns = 16, nfactors = 4, factor.names = list(Factor_A=c(-1,1), Factor_B=c(-1,1), Factor_C=c(-1,1), Factor_D=c(-1,1) ),replications = 2,randomize = FALSE)
experimento_respuesta=add.response(design=experimento,response = Y2)
grafica_efectos_principales=MEPlot(experimento_respuesta, main= "Gráfica de Efectos Individuales")
grafica_interacciones=IAPlot(experimento_respuesta, main= "Gráfica de Interacciones")
Se observa que el factor A debe tener un alto nivel dado que el factor B no es significativo, factor C se trabajará un nivel bajo y el factor D con un nivel alto.
Y1 (A,B,C,D)≥ (-1,-1,+1,+1) Y2 (A,B,C,D)≥ (+1,+1,-1,+1)
Dado que se requiere el factor D alto, se concluye que su condición patológica es necesaria para reducir tanto Y1 como Y2.
Condición: (A, B, C, D) =>(-,-,+,+)
i ) De los análisis de varianza para Y1 y Y2 observe el coeficiente R2. ¿Qué concluye de ello?
R=((8613+1263+11820+11666+3549+428)/(8613+1263+11820+11666+3549+428+138)*100)
summary(R)
| Min. | 1st Qu. | Median | Mean | 3rd Qu. | Max. |
|---|---|---|---|---|---|
| 99.63177 | 99.63177 | 99.63177 | 99.63177 | 99.63177 | 99.63177 |
R=((472.8+294+247.5)/(472.8+294+247.5+36.5)*100)
summary(R)
| Min. | 1st Qu. | Median | Mean | 3rd Qu. | Max. |
|---|---|---|---|---|---|
| 96.52646 | 96.52646 | 96.52646 | 96.52646 | 96.52646 | 96.52646 |
R2 indica la capacidad de los datos para ajustarse a la variable respuesta, por lo tanto entre mayor es el valor, mayor sera la capacidad y se concluye que Y1 tiene un R2 de 99% que se ajusta mejor a los datos de este modelo y, por lo tanto, tiene un mejor modelo.
Los coeficientes tanto de y1 y y2 explican toda la variabilidad de los datos. aunque lo explica mas y1
j ) Verifique residuos.
normalidad=shapiro.test(resid(modelo))
print(normalidad)
##
## Shapiro-Wilk normality test
##
## data: resid(modelo)
## W = 0.8854, p-value = 0.002686
qqnorm(resid(modelo),main= "Grafica de Probabilidad para los Residuales del Modelo", xlab= "Cuantiles teoricos", ylab = "Cuantiles de muestra")
qqline(resid(modelo))
homocedasticidad=bartlett.test(resid(modelo),Factor_A,Factor_B,Factor_C,Factor_D,data=experimento_respuesta)
print(homocedasticidad)
##
## Bartlett test of homogeneity of variances
##
## data: resid(modelo) and Factor_A
## Bartlett's K-squared = 2.0788, df = 1, p-value = 0.1494
Los residuales son homocedásticos para los factores por lo tanto se concluye que el modelo de regresión planteado para este caso no funciona.
Pulido, H. G., & Vara Salazar, R. de la. (2012). Analisis y diseño de Experimentos (3a ed.). McGraw Hill.