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)