En una planta de fabricación de piezas de plástico por inyección se realizó un experimento para reducir el número de rugosidades (“mark flows”) que aparecían en las piezas. Cada prueba consistió en fabricar 100 piezas y obtener el número medio de rugosidades (contadas de una forma normalizada) que aparecían.
Se decidió estudiar los 8 factores siguientes, todos ellos a 2 niveles, uno bajo (–) y otro alto (+):
A: Recorrido de inyección
B: Temperatura del molde
C: Temperatura del fundido
D: Apertura de la boquilla
E: 1ª Velocidad de inyección
F: 2ª Velocidad de inyección
G: Punto de cambio (inyec./mante.)
H: Fuerza de cierre del molde
El diseño experimental utilizado fue un 28-4 con los
experimentos seleccionados con FrF2. Los resultados
obtenidos, en el orden estándar de la matriz de diseño, fueron
resposta = c(6.2, 5.2, 4.3, 3.0, 5.3, 4.0, 0.0,
1.9, 6.3, 5.8, 6.0, 3.0, 3.3, 5.8,
0.0, 0.0)
Solució: Creem la matriu de disseny i hi afegim la resposta
library(FrF2)
dis = FrF2(nruns = 16, nfactors = 8,
randomize = FALSE)
resposta = c(6.2, 5.2, 4.3, 3.0, 5.3, 4.0, 0.0,
1.9, 6.3, 5.8, 6.0, 3.0, 3.3, 5.8,
0.0, 0.0)
dis = add.response(dis, resposta)
És un disseny de resolució IV: hi ha interaccions de dos factors confoses entre elles
aliasprint(dis)
## $legend
## [1] A=A B=B C=C D=D E=E F=F G=G H=H
##
## $main
## character(0)
##
## $fi2
## [1] AB=CE=DF=GH AC=BE=DG=FH AD=BF=CG=EH AE=BC=DH=FG AF=BD=CH=EG AG=BH=CD=EF
## [7] AH=BG=CF=DE
Fem el Daniel plot i identifiquem la temperatura del motlle i la fundició com a importants
DanielPlot(dis)
Ajustem el model amb les temperatures com a predictores, i veiem que són significatives
mod = aov(resposta ~ B + C, dis)
summary(mod)
## Df Sum Sq Mean Sq F value Pr(>F)
## B 1 35.11 35.11 24.14 0.000284 ***
## C 1 23.77 23.77 16.34 0.001397 **
## Residuals 13 18.91 1.45
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Fem el gràfic d’efectes
library(emmeans)
emmip(mod, B ~ C)
Si volem minimitzar la resposta, recomanem que B = C = 1. És a dir, volem que les temperatures siguin altes. Si volem continuar experimentant, podríem provar temperatures més altes.
Amb FrF2, podem afegir els noms dels nivells, si en
tenim. Per exemple:
disseny2 = FrF2(nruns = 16, nfactors = 5,
randomize = FALSE,
factor.names =
list(temp = c("150", "200"),
visco = c("1", "2"),
conc = c("20", "30"),
pres = c("2", "4"),
tipus = c("A", "B")))
disseny2
## temp visco conc pres tipus
## 1 150 1 20 2 B
## 2 200 1 20 2 A
## 3 150 2 20 2 A
## 4 200 2 20 2 B
## 5 150 1 30 2 A
## 6 200 1 30 2 B
## 7 150 2 30 2 B
## 8 200 2 30 2 A
## 9 150 1 20 4 A
## 10 200 1 20 4 B
## 11 150 2 20 4 B
## 12 200 2 20 4 A
## 13 150 1 30 4 B
## 14 200 1 30 4 A
## 15 150 2 30 4 A
## 16 200 2 30 4 B
## class=design, type= FrF2
Creem la matriu de disseny i hi afegim la resposta
library(FrF2)
disseny = FrF2(nruns = 8, nfactors = 5,
randomize = FALSE)
resposta = c(24, 16, 22.5, 24.5,
25, 16, 24.5, 23.5)
disseny = add.response(disseny, resposta)
És un disseny de resolució III: hi ha efectes principals confosos amb interaccions de dues variables.
aliasprint(disseny)
## $legend
## [1] A=A B=B C=C D=D E=E
##
## $main
## [1] A=BD=CE B=AD C=AE D=AB E=AC
##
## $fi2
## [1] BC=DE BE=CD
Fem el Daniel plot
DanielPlot(disseny)
Ens surten A, B i D com a importants. Hem d’anar amb compte, però, perquè és un disseny fraccional i hi ha confusions:
A està confosa amb les interaccions BD i CE
B està confosa amb la interacció AD
D està confusa amb la interacció AB
Sembla poc probable que CE sigui realment important, donat que els efectes de C i E no apareixen enlloc més. Per tant, amb les dades que tenim, els models següents semblen raonables:
A + B + D
A + B + AB
A + D + AD
B + D + BD
Amb les dades que tenim, aquests models no es poden distingir. Si feu les taules ANOVA d’aquests quatre models, veureu que són idèntiques. El que sí que sembla clar és que els factors C i E no són importants.
Si treballem amb un enginyer que ens digui quin model és el “bo”, en podríem triar un. Si no és el cas, recomanem fer un disseny complet \(2^3\) amb els factors A, B i D. Recordeu que els dissenys complets poden distingir els quatre models que hem identificat com interessants perquè no tenen confusions.
Creem la matriu de disseny i hi afegim la resposta
disseny2 = FrF2(nruns = 16, nfactors = 5,
randomize = FALSE,
factor.names =
list(temp = c("150", "200"),
visco = c("1", "2"),
conc = c("20", "30"),
pres = c("2", "4"),
tipus = c("A", "B")))
resposta = c(55.5, 44.5, 42.0, 48.0,
58.0, 46.0, 41.5, 48.5,
48.0, 37.8, 32.9, 38.5,
46.5, 38.5, 30.0, 39.0)
disseny2 = add.response(disseny2, resposta)
FrF2 només ens identifica confusions d’efectes
principals amb interaccions de dues variables i confusions
d’interaccions de dues variables entre elles. En aquest cas, no en troba
cap, de confusió. Per tant, el disseny és de resolució V, com a
mínim.
aliasprint(disseny2)
## $legend
## [1] A=temp B=visco C=conc D=pres E=tipus
##
## [[2]]
## [1] no aliasing among main effects and 2fis
Als dissenys de resolució V, hi ha interaccions de tres variables confoses amb interaccions de dues. Com que normalment ignorem les interaccions de tres variables (a no ser que tinguem motius molt bons per saber que existeixen), els dissenys de resolució V són, a efectes pràctics, com si fossin complets.
Fem un Daniel plot:
DanielPlot(disseny2)
Detectem la viscositat, la pressió i la seva interacció com a
importants. Si fem una taula ANOVA, veurem que són significatives totes
tres. Si fem un gràfic de mitjanes estimades (emmip),
veurem que, si volem maximitzar l’adherència, hem de fixar la viscositat
a 1 i la pressió a 2.
library(emmeans)
mod2 = aov(resposta ~ visco*pres, disseny2)
emmip(mod2, visco ~ pres)
Creem la matriu de disseny i hi afegim la resposta
dis_gelat = FrF2(nruns = 8, nfactors = 4,
randomize = FALSE)
resposta = c(29.63, 31.91, 33.02, 25.55,
27.28, 32.35, 34.39, 24.72)
dis_gelat = add.response(dis_gelat, resposta)
És un disseny de resolució IV amb les següents confusions
aliasprint(dis_gelat)
## $legend
## [1] A=A B=B C=C D=D
##
## $main
## character(0)
##
## $fi2
## [1] AB=CD AC=BD AD=BC
Fem el Daniel plot:
DanielPlot(dis_gelat)
El gràfic identifica AB com a important. La interacció AB està confosa amb la interacció CD. L’enunciat ens diu que és poc probable que hi hagi una interacció entre temperatura de congelació (C) i el temps d’emmagatzematge (D). Per tant, ajustem el model amb AB i ens el creiem.
mod = aov(resposta ~ A*B, data = dis_gelat)
Mirant el gràfic de mitjanes estimades, recomanem fer els gelats amb llet sencera i a potència 500 W. Si volem continuar experimentant, podríem provar potències més altes.
emmip(mod, A ~ B)