Vamos agora analisar o experimento em blocos ao acaso descrito na apostila do curso. Os dados estão reproduuzidos na tabela abaixo.
| Estágios | Blocos | ||||
| I | II | III | IV | ||
| Estágio 1 | 4,4 | 5,9 | 6,0 | 4,1 | |
| Estágio 2 | 3,3 | 1,9 | 4,9 | 7,1 | |
| Estágio 3 | 4,4 | 4,0 | 4,5 | 3,1 | |
| Estágio 4 | 6,8 | 6,6 | 7,0 | 6,4 | |
| Estágio 5 | 6,3 | 4,9 | 5,9 | 7,1 | |
| Estágio 6 | 6,4 | 7,3 | 7,7 | 6,7 | |
Inicialmente vamos entrar com os dados no R. Há várias possíveis maneiras de fazer isto. Vamos aqui usar a função scan e entrar com os dados por linha da tabela. Digitamos o comando abaixo e e função scan recebe os dados. Depois de digitar o último dado digitamos ENTER em um campo em branco e a função encerra a entrada de daods retornando para o prompt do programa.
OBS: Note que, sendo um programa escrito na língua inglesa, os decimais devem ser indicados por '.' e não por vírgulas.
> y <- scan() 1: 4.4 2: 5.9 3: 6.0 ... 24: 6.7 25: Read 24 items
Agora vamos montar um data.frame com os dados e os indicadores de blocos e tratamentos.
ex02 <- data.frame(estag = factor(rep(1:6, each=4)), bloco=factor(rep(1:4, 6)), resp=y)
Note que usamos a função factor para indicar que as variáveis blocos e estag são níveis de fatores e não valores numéricos.
Vamos agora explorar um pouco os dados.
names(ex02) summary(ex02) attach(ex02) plot(resp ~ estag + bloco) interaction.plot(estag, bloco, resp) interaction.plot(bloco, estag, resp) ex02.mt <- tapply(resp, estag, mean) ex02.mt ex02.mb <- tapply(resp, bloco, mean) ex02.mb plot.default(estag, resp) points(ex02.mt, pch="x", col=2, cex=1.5) plot.default(bloco, resp) points(ex02.mb, pch="x", col=2, cex=1.5)
Nos gráficos e resultados acima procuramos captar os principais aspectos dos dados bem como verificar se não há interação entre blocos e tratamentos, o que não deve acontecer neste tipo de experimento.
A seguir vamos ajustar o modelo e obter outros resultados, incluindo a análise de resíduos e testes para verificar a validades dos pressupostos do modelo.
ex02.av <- aov(resp ~ bloco + estag)
anova(ex02.av)
names(ex02.av)
par(mfrow=c(2,2))
plot(ex02.av)
par(mfrow=c(2,1))
residuos <- (ex02.av$residuals)
plot(ex02$bloco,residuos)
title("Resíduos vs Blocos")
plot(ex02$estag,residuos)
title("Resíduos vs Estágios")
par(mfrow=c(2,2))
preditos <- (ex02.av$fitted.values)
plot(residuos,preditos)
title("Resíduos vs Preditos")
respad <- (residuos/sqrt(anova(ex02.av)$"Mean Sq"[2]))
boxplot(respad)
title("Resíduos Padronizados")
qqnorm(residuos,ylab="Residuos", main=NULL)
qqline(residuos)
title("Grafico Normal de \n Probabilidade dos Resíduos")
## teste para normalidade
shapiro.test(residuos)
## Testando a não aditividade
## primeiro vamos extrair coeficientes de tratamentos e blocos
ex02.av$coeff
bl <- c(0, ex02.av$coeff[2:4])
tr <- c(0, ex02.av$coeff[5:9])
bl
tr
## agora criar um novo termo e testar sua significancia na ANOVA
bltr <- rep(bl, 6) * rep(tr, rep(4,6))
ttna <- update(ex02.av, .~. + bltr)
anova(ttna)
Os resultados acima indicam que os pressupostos estão obedecidos para este conjunto de dados e a análise de variância é válida. Como foi detectado efeito de tratamentos vamos proceder fazendo um teste de comparações múltiplas e encerrar as análises desanexando o objeto do caminho de procura.
ex02.tk <- TukeyHSD(ex02.av, "estag", ord=T) ex02.tk plot(ex02.tk) detach(ex02)Paulo Justiniano & James Roper