O objetivo dessa aula é analisar dados de um experimento fatorial fracionário (fração meia). Inicialmente será realizada a análise de um experimento fatorial completo e depois a análise de um fração meia.
Nessa análise, será utilizado o conjunto de dados de Box, Hunter & Hunter(1978), sobre um reator com cinco fatores.
Os dados de um experimento fatorial completo podem ser arranjados da seguinte maneira:
A variável resposta:
y<-c(61,53,63,61,53,56,54,61,69,61,94,93,66,60,95,98,56,63,70,65,59,55,67,65,44,45,78,77,49, 42,81,82)
E os fatores:
a<-rep(c(-1,1),16) b<-rep(c(-1,-1,1,1),8) c<-rep(c(-1,-1,-1,-1,1,1,1,1),4) d<-rep(c(-1,1),each=8,2) e<-rep(c(-1,1),each=16) reactor1<-data.frame(a,b,c,d,e,y) reactor1
Como há apenas dois níveis, não precisamos transformar para fatores.
Uma maneira alternativa é
require(AlgDesign) x<-gen.factorial(2,5) #número de níveis, número de fatores reactor2<-data.frame(x,y) reactor2
Os dados também podem ser encontrados em
require(BsMD) data(Reactor.data,package="BsMD") print(Reactor.data)
Para construir o gráfico normal de probabilidade, inicialmente necessitamos das estimativas dos efeitos dos fatores do experimento. Por isso, deve-se fazer a análise de variância e extrair os efeitos. Observe que isso pode ser feito em qualquer dos conjuntos formados anteriormente.
r.av<-aov(y~a*b*c*d*e,data=reactor1) summary(r.av) r.av<-aov(y~X1*X2*X3*X4*X5,data=reactor2) summary(r.av) r.av<-aov(y~A*B*C*D*E,data=Reactor.data) summary(r.av)
Separando os efeitos e construindo o gráfico normal de probabilidade:
efeitos<-coef(r.av)[2:32]*2 # 2 níveis c<-qqnorm(efeitos) qqline(efeitos) identify(c$x,c$y,labels=names(c$y))
Observe nesse exemplo, que os efeitos de B, D, E, BD e DE são significativos.
Utilizaremos as informações do experimento fatorial completo anterior para realizarmos a análise de um experimento fatorial fracionário. Ou seja, está sendo considerado que o experimento será iniciado a partir de agora. Isso nos fornece uma vantagem: pode-se comparar o resultado do experimento completo com o fracionário.
No R existem pelo menos duas maneiras de se obter uma configuração de um experimento fracionário. Uma é utilizando o pacote AlgDesign
e a outra é utilizando o pacote BHH2
.
Inicialmente, utilzaremos o pacote AlgDesign
:
require(AlgDesign) # carregar o pacote
A função gen.factorial()
é utilizada para gerar um experimento fatorial. Em seguida, cria-se uma quinta coluna para representar o fator E.
dat<-gen.factorial(levels=2,nVars=4,varNames=c("A","B","C","D")); dat dat$E<-dat$A*dat$B*dat$C*dat$D; dat
Como estamos utilizando dados de um experimento fatorial completo, basta considerar as informações correspondentes para cada combinação dos níveis dos fatores e fazer a análise.
y<-c(56,53,63,65,53,55,67,61,69,45,78,93,49,60,95,82) dados<-data.frame(dat,y);dados colnames(dados)<-c(LETTERS[1:5],"y"); names(dados) f.lm<-lm(y~A*B*C*D*E,data=dados)
Após a realização das análises, os efeitos podem ser avaliados com o uso do Gráfico Normal de Probabilidade.
efeitos<-f.lm$effects[2:16] qqnorm(efeitos);qqline(efeitos) identify(qqnorm(efeitos)$x,qqnorm(efeitos)$y) efeitos
Em seguida, pode-se utilizar o pacote BHH2
. Nesse pacote há uma função chamada ffDesMatrix()
que faz as combinações para um experimento fracionário.
Primeiro, deve-se carregar o pacote:
require(BHH2)
Em seguida, utiliza-se a função ffDesMatrix()
. Observe que a ordem das colunas do objeto será formada em função da forma como o gerador é inserido na função. Nesse exemplo, a coluna 5 será estruturada em função das colunas 1, 2 ,3 ,4 e 5 para construção de uma fração meia:
des<-ffDesMatrix(5,gen=list(c(5,1,2,3,4))) # 2^(5-1) fração meia
A entrada de dados e análise são como no exemplo anterior:
y<-c(56,53,63,65,53,55,67,61,69,45,78,93,49,60,95,82) dados<-data.frame(des,y);dados colnames(dados)<-c(LETTERS[1:5],"y"); names(dados) f.lm<-lm(y~A*B*C*D*E,data=dados) efeitos<-f.lm$effects[2:16] qqnorm(efeitos);qqline(efeitos) identify(qqnorm(efeitos)$x,qqnorm(efeitos)$y) efeitos
Quais foram os efeitos significativos agora? E aí, vale a pena reduzir tanto o experimento?
O pacote FrF2
pode ser utilizado para analisar os dados de um experimento fatorial. Além da avaliação dos efeitos do experimento, pode-se, por exemplo, utilizar a função aliases()
para encontrar o padrão de confundimento do experimento e construir o cubo para representar um experimento fatorial.
Veja um exemplo com a utilização das análises do exemplo anterior:
require(FrF2) summary(f.lm) f.lm <- lm(y ~ (.)^2, data = dados) # apenas os efeitos estimáveis no modelo summary(f.lm) aliases(f.lm) aliases(f.lm, code=TRUE) # padrão de confundimento DanielPlot(f.lm) MEPlot(f.lm) # efeitos no gráfico IAPlot(f.lm) # gráfico de interação cubePlot(f.lm, "A", "B", "C") # cubo
Fator | Nome | - | + |
A | Cauda | 1 dobra | 2 dobras |
B | Clip | 1 clip | 2 clips |
C | Asa | não dobrada | dobrada |
D | Lançamento | reta | dobrada |
adilson dos anjos 2008-09-02