Aula 06: Análise de grupos de experimentos

Objetivo dessa aula

Nesta aula será visto como analisar grupos de experimentos no R.

Procure entender os comandos utilizados e também interpretar os resultados. Para isto considere o exemplo de competição de cultivares de milho mostrado na apostila do curso.

Trabalhando com o arquivo de dados

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

Observe o arquivo e a maneira como foram formadas as colunas. Faça uma relação entre os dados da apostila e a forma como os dados foram digitados.

Inicialmente, o arquivo de dados poe ser lido dentro do R da seguinte maneira. (não esqueça de fornecer o caminho correto)

> ex11 <- read.table("exemplo11.txt", header=T)
> ex11
> dim(ex11)
[1] 80  4
> names(ex11)
[1] "local"    "bloco"    "trat"     "resposta"
> ex11$local <- as.factor(ex11$local)
> ex11$bloco <- as.factor(ex11$bloco)
> ex11$trat <- as.factor(ex11$trat)
> summary(ex11)
 local  bloco  trat      resposta
 1:20   1:20   1:16   Min.   :1.700
 2:20   2:20   2:16   1st Qu.:2.275
 3:20   3:20   3:16   Median :2.900
 4:20   4:20   4:16   Mean   :2.723
               5:16   3rd Qu.:3.125
                      Max.   :3.500

Análise de variância individual

Nesta análise a primeira coisa a se fazer é a análise de cada experimento individualmente.

Para isto vamos particionar os nossos dados usando o comando split e obter um resumo de cada experimento.

#separando por local:
> ex11.l <- split(ex11, ex11$local)
> lapply(ex11.l, summary)
$"1"
local  bloco trat     resposta
1:20   1:5   1:4   Min.   :1.90
2: 0   2:5   2:4   1st Qu.:2.35
3: 0   3:5   3:4   Median :2.85
4: 0   4:5   4:4   Mean   :2.74
             5:4   3rd Qu.:3.10
                   Max.   :3.40
$"2"
local  bloco trat     resposta
1: 0   1:5   1:4   Min.   :1.800
2:20   2:5   2:4   1st Qu.:2.275
3: 0   3:5   3:4   Median :2.850
4: 0   4:5   4:4   Mean   :2.730
             5:4   3rd Qu.:3.200
                   Max.   :3.500
$"3"
local  bloco trat     resposta
1: 0   1:5   1:4   Min.   :1.700
2: 0   2:5   2:4   1st Qu.:2.300
3:20   3:5   3:4   Median :2.850
4: 0   4:5   4:4   Mean   :2.735
             5:4   3rd Qu.:3.225
                   Max.   :3.400
$"4"
local  bloco trat     resposta

 1: 0   1:5   1:4   Min.   :1.800
 2: 0   2:5   2:4   1st Qu.:2.175
 3: 0   3:5   3:4   Median :2.900
 4:20   4:5   4:4   Mean   :2.685
              5:4   3rd Qu.:3.100
                    Max.   :3.400

No resumo acima percebe-se que todos os experimentos possuem a mesma estrutura, isto é, são todos conduzidos no delineamento em blocos completos casualizados, com 4 blocos e 5 tratamentos.

A seguir deve-se obter a análise de cada experimento (individualmente).

Como os experimentos possuem a mesma estrutura isto pode ser feito usando um loop como se segue.

> ex11.lav <- list()
> for(i in names(ex11.l))
+   ex11.lav[[i]] <- anova(aov(resposta ~ bloco + trat, data=ex11.l[[i]]))
> ex11.lav
$"1"
Analysis of Variance Table
Response: resposta
          Df Sum Sq Mean Sq F value   Pr(>F)
bloco      3 0.0080  0.0027  0.0732   0.9732
trat       4 3.8830  0.9707 26.6568 6.85e-06 ***
Residuals 12 0.4370  0.0364
---
Signif. codes:  0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
$"2"
Analysis of Variance Table
Response: resposta
          Df Sum Sq Mean Sq F value    Pr(>F)
bloco      3 0.1020  0.0340  0.9645    0.4411
trat       4 5.1570  1.2892 36.5745 1.242e-06 ***
Residuals 12 0.4230  0.0353
---
Signif. codes:  0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1

$"3"
Analysis of Variance Table
Response: resposta
          Df Sum Sq Mean Sq F value    Pr(>F)
bloco      3 0.0455  0.0152  0.8387    0.4984
trat       4 5.4230  1.3557 74.9724 2.196e-08 ***
Residuals 12 0.2170  0.0181
---
Signif. codes:  0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
$"4"
Analysis of Variance Table
Response: resposta
          Df Sum Sq Mean Sq F value    Pr(>F)
bloco      3 0.0255  0.0085   0.375    0.7727
trat       4 4.8880  1.2220  53.912 1.434e-07 ***
Residuals 12 0.2720  0.0227
---
Signif. codes:  0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1

Portanto o objeto ex11.lav guarda os resultados da análise de cada experimento. Para verificar a homogeneidade entre os experimentos deve-se extrair os quadrados médios do resíduo de cada experimento e fazer o teste de Hartley dividindo o maior pelo menor valor do quadrado médio.

> ex11.lqm <- numeric()
> for(i in names(ex11.l))
+ ex11.lqm[i] <- anova(aov(resposta ~ bloco + trat, data=ex11.l[[i]]))$Mean[3]
> ex11.lqm
         1          2          3          4
0.03641667 0.03525000 0.01808333 0.02266667
> max(ex11.lqm)/min(ex11.lqm)
[1] 2.013825

O valor acima comparado com o valor tabelado da tabela de Hartley mostra que não há diferença significativa entre as variâncias.

Estes resultados são válidos quando os pressupostos forem atendidos. Como um exercíco, verifique os pressupostos de cada experimento. Nota, o objeto ex11.lav não contém os resíduos. É necessário realizar a análise individualmente.

Análise de variância conjunta

Portanto pode-se prosseguir fazendo a análise conjunta dos experimentos.

Nesse caso, lembre-se de que o modelo leva em conta efeitos cruzados e hierárquicos.

> ex11.av <- aov(resposta ~ local/bloco + trat/local, data=ex11)
> summary(ex11.av)
            Df  Sum Sq Mean Sq  F value Pr(>F)
local        3  0.0385  0.0128   0.4566 0.7138
trat         4 19.1495  4.7874 170.3440 <2e-16 ***
local:bloco 12  0.1810  0.0151   0.5367 0.8797
local:trat  12  0.2015  0.0168   0.5975 0.8333
Residuals   48  1.3490  0.0281
---
Signif. codes:  0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1

Como em exemplos anteriores o quadro da análise de variância acima possui os elementos corretos porém alguns dos testes F estão ERRADOS por não considerar que certos efeitos são aleatórios.

Como já foi visto isso pode ser corrigido facilmente extraindo os elementos necessários para testar o efeito desejado. Neste caso, para testar o efeito dos tratamentos basta executar os comandos mostrados abaixo.

> ex11.anova <- anova(ex11.av)
> Ftrat <- ex11.anova$Mean[2]/ex11.anova$Mean[4]
> pv.trat <- 1 - pf(Ftrat, ex11.anova$Df[2], ex11.anova$Df[4])
> c(Ftrat = Ftrat, pvalor = pv.trat)
     Ftrat.2     pvalor.2
2.851042e+02 8.843704e-12

Para testar o efeito de locais, a composição do teste F é um pouco mais complexa. Nesse caso, é necessário uma composição entre vários Quadrados Médios, como mencionado na apostila. Veja as esperanças dos Quadrados Médios para entender o que deve ser feito.

A seguir, é apresentado como realizar o teste F para Locais, nessa análise.

Como há uma composição dos Quadrados Médios, os graus de liberdade também precisam levar em conta essa combinação. Por isso, é necesário o cálculo dos graus de liberdade do numerador (n) e do denominador (n′).

n = \frac{[QMLocais + QMres]^{2}}{\frac{[QMLocais]^{2}}{K−1} + \frac{[QMRes]^{2}}{K(I−1)(J−1)}}

n′ = \frac{[QMBlocosd.Locais + QMLV]^{2}}{\frac{[QMBlocosd.Locais]^{2}}{K−1} + \frac{[QMLV]^{2}}{(I−1)(K−1)}}

Aqui, n = 24 e n’=24.

No R,

> Flocal <- (ex11.anova$Mean[1]+ ex11.anova$Mean[5])/(ex11.anova$Mean[3] +
ex11.anova$Mean[4])
> pv.local <- 1 - pf(Flocal, 24, 24)
> c(Flocal = Flocal, pvalor = pv.local)

Exercícios

1. Faça uma análise completa do experimento de grupos (sobre a maciez de diferentes marcas de giz) proposto na apostila do curso.

Considere as seguintes E(QM) para realizar a análise desse experimento:

Efeito E(QM)
P_{k(j)}  σ^{2} + iσ_{P}^{2}
M_{i}  σ^{2} + kσ_{ME}^{2} + jkΦM_{1}
E_{j}  σ^{2} + iσ_{P}^{2} + ikσ_{E}^{2}
(ME)_{ij} σ^{2} + kσ_{ME}^{2}
ϵ_{ijk}  σ^{2}

(P=pessoa;M=marca;E=experimento) Nota: esse experimento foi planejado e conduzido por alunos do Curso de Graduação em Estatística da UFPR quando cursaram essa disciplina.