Subsections

Aula 01: Experimentos em esquema fatorial

Objetivo dessa aula

O objetivo dessa aula é realizar a análise de variância de experimentos fatoriais. Será utilizado o Software R.

Nesta aula iremos detalhar e discutir a análise do experimento fatorial $2 \times 2$ e $2 \times 3$ .

Procure entender os comandos utilizados e também interpretar os resultados.

Trabalhando com o arquivo de dados

No restante destas notas as linhas que começam com o símbolo > são comandos a serem digitados no R. Outros textos com a font typewriter como esta são saídas produzidas pelo programa.

Experimento Fatorial $2^2$

Lendo os dados

Clique aqui para ver e copiar o arquivo com o conjunto de dados.

A seguir vamos ler (importar) os dados para R com o comando read.table:

> ex01 <- read.table("fat22.txt", header=T)
> ex01

Lembre-se de fornecer o caminho (onde você salvou os dados).

Antes de começar as análises vamos inspecionar o objeto que contém os dados para saber quantas observações e variáveis há no arquivo, bem como o nome das variáveis. Vamos tembém pedir para o R que exiba um rápido resumo dos dados.

> dim(ex01)

> names(ex01)

> attach(ex01)

> is.factor(A)

> is.factor(B)

> is.factor(RESP)

> is.numeric(RESP)

Caso alguma resposta não esteja de acordo com o necessário, isso deve ser corrigido.

O objeto ex01 foi incluído no caminho de procura usando o comando attach para facilitar a digitação.

Análise descritiva

Inicialmente vamos obter um resumo de nosso conjunto de dados usando a função summary.

> summary(ex01)

Note que para os fatores são exibidos o número de dados em cada nível do fator. Já para a variável numérica são mostrados algumas medidas estatísticas. Vamos explorar um pouco mais os dados

> ex01.m <- tapply(RESP, list(A,B), mean)
> ex01.m

> ex01.mA <- tapply(RESP, A, mean)
> ex01.mA

> ex01.mB <- tapply(RESP, B, mean)
> ex01.mB

Nos comandos acima calculamos as médias para cada fator, assim como para os cruzamentos entre os fatores.

Note que podemos calcular outras estatísticas além da média. Experimente outras medidas!

Experimente nos comandos acima substituir mean por var para calcular a variância de cada grupo, e por summary para obter um outro resumo dos dados.

Em experimentos fatoriais é importante verificar se existe interação entre os fatores. Inicialmente vamos fazer isto graficamente e mais a frente faremos um teste formal para presença de interação.

> par(mfrow=c(1,2))
> interaction.plot(A, B, RESP)
> interaction.plot(B, A, RESP)

Análise de variância

Seguindo o modelo adequado, a análise de variância para esse experimento inteiramente casualizado em esquema fatorial pode ser obtida com o comando:

> ex01.av <- aov(RESP ~ A + B + A * B)

Entretanto o comando acima pode ser simplificado produzindo os mesmos resultados com o comando

> ex01.av <- aov(RESP ~ A * B)
> summary(ex01.av)

Isto significa que no R, ao colocar uma interação no modelo, os efeitos principais são incluídos automaticamente. Note no quadro de análise de variância que a interação é denotada por A:B.

A análise acima mostra que este efeito é não significativo, confirmando o que verificamos nos gráficos de interação vistos anteriormente.

O objeto ex01.av guarda todos os resultados da análise e pode ser explorado por diversos comandos.

Por exemplo a função model.tables aplicada a este objeto produz tabelas das médias definidas pelo modelo. O resultado mostra a média geral, médias de cada nível fatores e das combinações dos níveis dos fatores. Note que no resultado está incluído também o número de dados que gerou cada média.

  
> ex01.mt <- model.tables(ex01.av, ty="means")
> ex01.mt

Mas isto não é tudo! O objeto ex01.av possui vários elementos que guardam informações sobre o ajuste.

> names(ex01.av)
 [1] "coefficients"  "residuals"     "effects"       "rank"         
 [5] "fitted.values" "assign"        "qr"            "df.residual"  
 [9] "contrasts"     "xlevels"       "call"          "terms"        
[13] "model"        

> class(ex01.av)
[1] "aov" "lm"

O comando class mostra que o objeto ex01.av pertence às classes aov e lm. Isto significa que devem haver métodos associados a este objeto que tornam a exploração do resultado mais fácil. Na verdade já usamos este fato acima quando digitamos o comando summary(ex01.av). Existe uma função chamada summary.aov que foi utilizada já que o objeto é da classe aov. Iremos usar mais este mecanismo no próximo passo da análise.

Análise de resíduos

Após ajustar o modelo devemos proceder a análise dos resíduos para verificar os pressupostos. O R produz automaticamente 4 gráficos básicos de resíduos com o comando plot.

> par(mfrow=c(2,2))
> plot(ex01.av)

Os gráficos permitem uma análise dos resíduos que auxiliam no julgamento da adequacidade do modelo. Evidentemente você não precisa se limitar aos gráficos produzidos automaticamente pelo R - você pode criar os seus próprios gráficos muito facilmente. Neste gráficos você pode usar outras variáveis, mudar texto de eixos e títulos etc. Examine os comandos abaixo e os gráficos por eles produzidos.

> par(mfrow=c(2,1))
> residuos <- resid(ex01.av)

> plot(ex01$A, residuos)
> title("Resíduos vs Fator A")

> plot(ex01$B, residuos)
> title("Resíduos vs Fator B")
 
> par(mfrow=c(2,2))
> preditos <- (ex01.av$fitted.values)
> plot(residuos, preditos)
> title("Resíduos vs Preditos")
> s2 <- sum(resid(ex01.av)^2)/ex01.av$df.res
> respad <- residuos/sqrt(s2)
> boxplot(respad)
> title("Resíduos Padronizados")
> qqnorm(residuos,ylab="Residuos", main=NULL) 
> qqline(residuos)
> title("Grafico Normal de \n Probabilidade dos Resíduos")

Além disto há alguns testes já programados. Como exemplo vejamos e teste de Shapiro-Wilk para testar a normalidade dos resíduos.

> shapiro.test(residuos)

Teste de Tukey para comparações múltiplas

> TukeyHSD(ex01.av)

Observe que apenas o teste para o fator A e B são de interesse.

Experimento fatorial $2^3$

Objetivo do exercício

O objetivo desse exercício é realizar a análise de variância de um experimento fatorial com três fatores, utilizando o software R.

Trabalhando com o arquivo de dados

Nesse exercício será analisado o experimento fatorial $2^3$ conduzido em um delineamento em blocos completos casualizados apresentado nas notas de aula.

O arquivo de dados pode ser obtido aqui..

ex02<-read.table("ex02.txt",header=T)

Lembre-se que cada coluna indicadora dos fatores e blocos deve ser um fator no R. Por essa razão, os vetores A, B, C e bloco precisam ser transformados para fatores.

> is.factor(ex02$A)
[1] FALSE
> is.factor(ex02$B)
[1] FALSE
> is.factor(ex02$C)
[1] FALSE
> is.factor(ex02$bloco)
[1] FALSE

Para facilitar a digitação, pode-se incluir no caminho de procura o objeto ex02 com o comando attach(ex02).

Agora, deve-se transformar as colunas em fatores

 ex02$A<-as.factor(ex02$A)
 ex02$B<-as.factor(ex02$B)
 ex02$C<-as.factor(ex02$C)
 ex02$bloco<-as.factor(ex02$bloco)

Com o comando summary obtém-se um resumo dos dados do objeto ex02.

> summary(ex02)

Explorando a variável resposta com o comando tapply


> ex02.mA <- tapply(resp, A, mean)
> ex02.mA

> ex02.mB <- tapply(resp, B, mean)
> ex02.mB

> ex02.mC <- tapply(resp, C, mean)
> ex02.mC

Análise de variância

A análise de variância para o experimento fatorial conduzido no delineamento em blocos completos casualizados pode ser obtida com o comando:

> ex02.av <- aov(resp ~ bloco + A + B + C + A*B + A*C + B*C + A*B*C)

ou

> ex02.av <- aov(resp ~ bloco + A*B*C)
> summary(ex02.av)

O uso da função model.tables permite a obtenção de estatísticas para cada um dos fatores do modelo e a combinação entre eles.

> ex02.mt <- model.tables(ex02.av, ty="means")
> ex02.mt

Análise de resíduos

Uma forma de analisar os resíduos é atraves do comando plot(ex02.av). Esta função realiza a análise de resíduos do objeto ex02.av.

>par(mfrow=c(2,2))
>plot(ex02.av)

Uma outra maneira de realizar a análise de resíduos é gerando os gráficos individualmente. Desse modo existe uma maior liberdade para

> par(mfrow=c(1,1))
>  residuos <- resid(ex02.av)

>  plot.default(ex02$A, residuos)
> title("Resíduos vs A")

>  plot.default(ex02$B, residuos)
> title("Resíduos vs B")

>  plot.default(ex02$C, residuos)
> title("Resíduos vs C")


> par(mfrow=c(2,2))
> preditos <- (ex02.av$fitted.values)
> plot(residuos, preditos)
> title("Resíduos vs Preditos")

s2 <- sum(resid(ex02.av)^2)/ex02.av$df.res
respad <- residuos/sqrt(s2)
> boxplot(respad)
title("Resíduos Padronizados")

qqnorm(residuos,ylab="Residuos", main=NULL) 
qqline(residuos)
> title("Grafico Normal de \n Probabilidade dos Resíduos")

O teste de Shapiro-Wilk também pode ser utilizado para avaliar a normalidade dos resíduos.

shapiro.test(residuos)

Análise da Interação

Inicialmente, faz-se o gráfico da interação para visualizar-se o comportamento entre as combinações dos diferentes níveis dos diferentes fatores.

par(mfrow=c(2,2))

interaction.plot(ex02$A, ex02$B, resp)
title("Interação A vs B")
interaction.plot(ex02$A, ex02$C, resp)
title("Interação A vs C")
interaction.plot(ex02$B, ex02$C, resp)
title("Interação P vs C")

Desdobramento da interação AC:

Estudaremos os níveis de A dentro de C.

Inicialmente, deve-se utilizar o modelo com o efeito de A aninhado em C.

ex02.avA<-aov(resp~bloc+C/A+A*B*C-A,data=ex02)

Observe que apenas nos interessa interpretar os efeitos do desdobramento.

summary(ex02.avA,split=list("C:A"=list(A.d.C0=1, A.d.C1=2)))

Para estudar os níveis de C dentro de A, basta considerar $A/C$.

adilson dos anjos 2008-09-02