ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf ·...

80
1 ANOVA e testes de médias com o Software R Ministrante Odirley Rodrigues Campos Viçosa-MG Setembro/2016 UFV Universidade Federal de Viçosa Campus-Viçosa Grupo de estudos em Fertilizantes

Transcript of ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf ·...

Page 1: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

1

ANOVA e testes de médias com o Software R

Ministrante

Odirley Rodrigues Campos

Viçosa-MG

Setembro/2016

UFV

Universidade Federal de Viçosa Campus-Viçosa

Grupo de estudos em Fertilizantes

Page 2: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

2

Sumário Introdução ......................................................................................................................................................................... 4

ANOVA no Excel e preparo dos dados ............................................................................................................................... 5

Teclas de atalho no Excel .............................................................................................................................................. 5

Exemplo 1: fatorial duplo em DBC ................................................................................................................................ 5

Instalando o Programa R .................................................................................................................................................. 9

Configurando a janela do Rstudio. ................................................................................................................................ 9

Teclas de atalho no R .................................................................................................................................................. 10

Busca por ajuda ........................................................................................................................................................... 10

Operadores no R.......................................................................................................................................................... 11

Tipos de objetos .......................................................................................................................................................... 11

Introdução ao R ........................................................................................................................................................... 11

Fatorial duplo sem desdobramento ............................................................................................................................ 17

Usando o pacote ExpDes ......................................................................................................................................... 17

Fatorial duplo sem desdobramento ............................................................................................................................ 21

Passo a passo .......................................................................................................................................................... 21

Fatorial duplo: progenes de eucalipto ........................................................................................................................ 26

Usando o ExpDes ..................................................................................................................................................... 26

Fatorial duplo: progenes de eucalípto ........................................................................................................................ 28

Passo a passo .......................................................................................................................................................... 28

Fatorial triplo: dados simulados para experimento com milho .................................................................................. 33

Obtenção rápida do QMr e teste de médias ........................................................................................................... 33

Fatorial triplo: dados simulados de um experimento com milho ................................................................................ 38

Passo a passo .......................................................................................................................................................... 38

Parcelas subdividas: produtividade de milho .............................................................................................................. 44

Usando o ExpDes ..................................................................................................................................................... 44

Parcelas subdivididas: produtividade de milho ........................................................................................................... 48

Obetenção rápida do QMr e teste de médias ......................................................................................................... 48

Parcelas subdivididas: produtividade de milho ........................................................................................................... 54

Passo a passo .......................................................................................................................................................... 54

Parcelas subdivididas: dados simulados de um experimento com amendoim forrageiro .......................................... 61

Passo a passo .......................................................................................................................................................... 61

Fatorial duplo com um tratamento adicional ............................................................................................................. 68

Odirley Campos ....................................................................................................................................................... 68

Page 3: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

3

Fatorial triplo com um tratamento adicional.............................................................................................................. 74

Passo a passo .......................................................................................................................................................... 74

Bibliografia .................................................................................................................................................................. 80

Page 4: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

4

Introdução A utilização de planilhas eletrônicas é uma ótima alternativa para se trabalhar com grandes bancos de dados. O

Excel é uma ferramenta acessível a todos, porém na maioria das vezes subutilizada, dada a ampla variedade de

recursos que apresenta. O R é um software livre, disponível na internet para download. Apesar de não ser um

programa específico de estatística, esse tem sido muito utilizado com essa finalidade. Uma busca rápida no Google

lhe mostrará a riqueza de materiais disponibilizados na NET sobre o uso do R nas mais diversas áreas. Além de o

programa ser de acesso livre, muitos pacotes específicos do R estão sendo desenvolvidos para facilitar a vida do

usuário, grande parte desses pacotes seguem a mesma filosofia do programa, sendo acessíveis a todos. Tutoriais e

rotinas também podem ser encontradas na internet, uma vez copiados os comandos de uma rotina, esses podem ser

reeditados e adaptados as necessidades do usuário.

No R os mesmos resultados podem ser obtidos com rotinas muito diferentes. A tendência é que os comandos

fiquem cada vez menores e mais “automatizados” a medida que o usuário ganha experiência com o software. Os

procedimentos utilizados neste material certamente não são o meio mais rápido para se obter os quadros de ANOVA.

No entanto, optamos por mostrá-los passo a passo com o objetivo de facilitar a compreensão e a familiarização com

a linguagem do programa. Recomendamos que, ao ler as linhas de comandos maiores, o usuário faça a identificação

dos “núcleos dos comandos” e, a partir deles, ao editá-los no workspace, incremente-os do “centro para as laterais”.

Comumente a análise de variância é o procedimento utilizado para a decomposição dos efeitos em:

1- Desejáveis e controlados: efeitos de tratamentos

2- Indesejáveis, mas controlados: blocos

3- Indesejáveis e não controlados: que compõem o erro ou resíduo

Para esta decomposição faremos os cálculos para obtenção das somas de quadrados as quais serão colocadas no

quadro da ANOVA. Todos os cálculos serão feitos segundo a fórmula abaixo:

Em que:

O primeiro termo “yi“ é valor total da variável resposta para o fator em estudo (seja ele: tratamento, bloco, fator 1,

fator 2) no nível “i”.

“n” é o número de somados para se chegar ao valor dado por “yi“

“t” o número de somados para se chegar ao valor

Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos pela combinação dos níveis dos

fatores de interesse. Em um primeiro exemplo consideraremos o experimento fatorial, em DBC, retirado de Pimentel

Gomes (2008), listado abaixo. O arquivo é mantido em formato .txt, pois é o formato de entrada do R program. Mas

inicialmente demonstraremos algumas ferramentas para manipulação dos dados e obtenção do quadro de ANOVA no

Excel.

Tabela 1:

bloc adu tor resp

1 0 0 18.0

2 0 0 8.6

3 0 0 9.4

4 0 0 11.4

1 1 0 20.6

2 1 0 21.0

3 1 0 18.6

4 1 0 20.6

1 0 1 19.6

2 0 1 15.0

3 0 1 14.6

Eq. 1

Page 5: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

5

4 0 1 15.8

1 1 1 19.2

2 1 1 19.6

3 1 1 18.4

4 1 1 20.2

Observe que temos os fatores bloco(fb), adubação (f1) e aplicação de torta de filtro (f2). Da combinação dos

fatores f1 com f2 teremos 2 2= 4 tratamentos. Mas para obtenção da SQ do resíduo (SQr) bastaria ter os

tratamentos.

Tabela 2:

FV N GL SQ QM F p-valor

Blocos 4

Trat 4

Resíduo

Total 16

ANOVA no Excel e preparo dos dados

Então:

Copie os dados da tab1 e cole no Excel. Se já não colar no formato de colunas, utilize o recurso na barra superior do

Excel (Fig. 1)

dados>texto para colunas

Figura 1: Opção de colagem

No Excel as casas decimais serão definidas por pontos “.”. Do contrário, ir em: arquivos>opções>avançado>usar

separador de sistema e definir “.” para decimal e “,“ para milhar (não recomendo usar espaço ao invés de vírgula,

pois poderá causar confusão ao manipular o arquivo de .txt para o Excel novamente).

Teclas de atalho no Excel

Ao trabalhar com um grande banco de dados no Excel utilize as teclas de atalho:

“CTRL + SHIFT + →” para selecionar da célula ativa até a última da direita

“CTRL + SHIFT + ←” para selecionar da célula ativa até a última da esquerda

“CTRL + SHIFT + ↓ ” para selecionar da célula ativa até a última linha ativa

“CTRL + SHIFT + ↑ ” para selecionar da célula ativa até a primeira linha ativa

O banco de dados agora é:

Exemplo 1: fatorial duplo em DBC trat fb f1 f2 resp

1 1 0 0 18.0

2 1 1 0 20.6

Page 6: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

6

3 1 0 1 19.6

4 1 1 1 19.2

1 2 0 0 8.6

2 2 1 0 21.0

3 2 0 1 15.0

4 2 1 1 19.6

1 3 0 0 9.4

2 3 1 0 18.6

3 3 0 1 14.6

4 3 1 1 18.4

1 4 0 0 11.4

2 4 1 0 20.6

3 4 0 1 15.8

4 4 1 1 20.2

No Excel selecionar o banco de dados e ir em:

INSERIR>GRAFICO DINAMICO E TABELA DINAMINCA

Obs :no Excel<2010, pode ser um pouco diferente

Obs: Escolher a opção inserir em nova planilha.

Na parte superior direita, clicar em Bloco e arrastar para o campo de eixos

categóricos. Clicar na resp e arrastar para o campo de valores (Fig 2).

Na parte superior direita, clicar em trat e arrastar para o campo de eixos

categóricos (Fig. 2). Clicar na resp e arrastar para o campo de valores. Na

seta indicadora no campo de valores ir em:

configurações de campo>desvio padrão

Se tiver algum valor muito discrepante verifique seu banco de dados no Excel

e identifique-o. Poderá ser apenas um erro de digitação ao passar os dados

do caderno de anotações do experimento para a planilha de dados.

Se estiver tudo OK. Apague o gráfico.

Calcularemos a SQ primeiramente para bloc segundo a Tabela 2.

Procedimento:

EIXO (categórico): bloc

VALORES: soma de resp e contagem de resp

Veja que temos na tabela dinâmica:

nível “i” dos bloc: primeira coluna

totais do bloci “yi” : segunda coluna

número de somados “n” por bloc i: terceira coluna

o somatório “ ”: 2ª col, última linha

número total de somados “t”: 3ª col, última coluna

Figura 2: Selecionador de campos

do Excel

Figura 3: Campos selecionados

para compor os eixos do gráfico ou

da tabela dinâmica

Figura 4: Tabela dinâmica

Page 7: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

7

Monte a seguinte tabela no Excel.

Utilize:

= SOMAQUAD(B2:B5) para calcular Ʃ(yi2)

= (B6)^2 para calcular (Ʃyi)2

Depois calcule:

SQ conforme a Eq. 1

GL=N-1

QM= SQ/GL

F= QM/QMr (para fixar a célula com QMr use o “$”)

Segundo Ribeiro Junior (2004):

Se F>1, usar no Excel 2007

p-valor= DISTF(F; GL fator em estudo; GL resíduo)

Se F<1, usar

p-valor= 1 - DISTF(F; GL fator em estudo; GL resíduo)

OBS: no Excel 2010 usar

p-valor= DIST.F.CD(F; GL fator em estudo; GL resíduo)

Se F<1, usar

p-valor= 1 – DIST.F.CD(F; GL fator em estudo; GL resíduo)

OBS: antes de mudar o fator de entrada na tab dinâmica certifique-se de copiar e colar como valores a linha de

cálculos feitos anteriormente. Do contrário os valores de SQ já calculados serão alterados.

Após os cálculos teremos:

Tabela 4

Ʃ(yi2) n (Ʃyi)

2 t SQ N GL QM F P-valor

Bloco 18457.4 4 73224.36 16 37.8275 4 3 12.609 3.01 0.087

Trat 18991.16 4 73224.36 16 171.2675 4 3 57.089 13.63 0.001

Resíduo

37.7025

9 4.189

Total 4823.32 1 73224.36 16 246.7975 16 15 16.453 3.93 0.022

Dado que a SQbruta de f1f2= SQf1 + SQf2 + SQ(f1 f2), onde (f1 f2) remete a interação entre os dois fatores.

Então SQ(f1 f2)= SQf1f2b - SQf1 - SQf2.

Ʃyi)2

Figura 5: estrutura da tabela dinâmica(esquerda) e da tabela inicial da anova(direita)

Page 8: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

8

Portanto, depois de

achar os efeitos simples,

devemos procurar pelo

efeito bruto f1f2,

conforme ilustrado ao

lado:

Para o desdobramento de f1 dentro dos níveis de f2 (f1 d/ f2=...) usaremos os filtros da tabela dinâmica, conforme

abaixo.

Incrementando a tabela, teremos:

Ʃ(yi2) n (Ʃyi)

2 t SQ N GL QM F P-valor

Bloco 18457.4 4 73224.36 16 37.8275 4 3 12.609 3.01 0.087

Trat 18991.16 4 73224.36 16 171.2675 4 3 57.089 13.63 0.001

Resíduo

37.7025

9 4.189 1

Total 4823.32 1 73224.36 16 246.7975 16 15 16.453

f1 37661 8 73224.36 16 131.1025 2 1 131.103 31.30 0.00034

f2 36713 8 73224.36 16 12.6025 2 1 12.603 3.01 0.11686

f1f2B 18991.16 4 73224.36 16 171.2675

f1×f2

27.5625 2 1 27.562 6.58 0.03043

f1 d/f2=0 8775.4 4 16435.24 8 139.445 2 1 139.445 33.29 0.000

f1 d/f2=1 10215.76 4 20277.76 8 19.22 2 1 19.220 4.59 0.061 “f1”=para o efeito dos níveis de adubo, “f2”=efeito dos níveis de torta de filtro, “f1f2B”= para efeito bruto, “f1×f2”=

para efeito da interação, “f1 d/f2=0” = f1 dentro do nível zero de torta de filtro, “f1 d/f2=1” = f1 dentro do nível um de

torta de filtro.

Adubo (f1) na ausência de Torta (f2)

Figura 6: estrutura da tab dinâmica e da anova

Figura 7: utilização de filtros da tabela dinâmica

Page 9: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

9

Instalando o Programa R http://cran.r-project.org

Clique em download, depois escolha o espelho da UFPR

http://cran-r.c3sl.ufpr.br/

Se seu sistema operacional é o Windows escolha : Download R for Windows

Uma das ferramentas que utilizaremos é o R studio, para instalá-lo vá em

http://www.rstudio.com/ > DOWNLOAD > escolha a versão desktop em DOWNLOAD RSTUDIO DESKTOP

OBS: Após instalação verifique se há um atalho na barra de tarefas do seu PC, caso não o encontre, procure pelo

ícone do Rstudio (símbolo circular com R dentro) e clique com o botão direito do mouse nele. Aparecerá uma opção:

inserir atalho na barra de tarefas.

Configurando a janela do Rstudio.

Clicar no atalho Rstudio

tools > global options > pane layout > ... > apply>OK

Deixe da forma mostrada abaixo:

Figura 8: definindo o layout do Rstudio

Page 10: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

10

Verifique as mudanças nas configurações da janela do Rstudio

Mudando diretório

Session > set working

directory > choose

diretory

Escolha a pasta onde

estão os arquivos de

dados e onde serão salvos

os arquivos de saída.

Teclas de atalho no R “CTRL + enter” = run, roda o comando da linha onde está o cursor do mouse no workspace

“CTRL + 2” = cursor vai para a tela da direita

“CTRL + 1” = cursor vai para a tela da esquerda

“CTRL + L” = limpa a janela do console quando o cursor está nela

“End” = cursor vai para o final da linha de comandos

“Home” = cursor vai para o início da linha de comandos

“CTRL + C” = copia

“CTRL + V” = cola

“ESC”= finalizar o último comando incompleto, quando no console

“↑” = retorna o último comando usado ou acessa o histórico de comandos, quando o cursor está na janela do

console

Busca por ajuda OBS: como se trata de um programa livre, a internet está repleta de sites, tutoriais, fóruns de discussão

relacionados ao R.

No google digite “r program” e a palavra de interesse ou vá direto aos sites listados abaixo

http://www.statmethods.net/management/userfunctions.html

http://www.r-bloggers.com/

http://www.leg.ufpr.br/doku.php

http://r-br.2285057.n4.nabble.com/

http://r-project.markmail.org/search/

No próprio R, digite no console

? nome do comando

??nome do comando

help.search(“comando”)

args(comando)

No console serão mostrados os resultados das operações e comandos Janela de edição

Gráficos e recursos de

ajuda são mostrados

aqui.

Figura 9: apresentação da janela do R studio

Page 11: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

11

Operadores no R Operadores são utilizados de diversas formas.

#alguns operadores

=================================================================

OPERADOR DESCRIÇÃO PRIORIDADE

=================================================================

$ seleção de componentes Alta

[ [[ indexação |

^ potência |

- menos unitário |

: operador de seqüência |

%nome% operadores especiais |

* / multiplicação, divisão |

< > menor, maior |

<= >= menor ou igual,maior ou igual |

== != exatamente, diferente |

! não |

& && e |

| || ou |

~ fórmula estatística |

<<- <- -> = atribuição Baixa

%% modulo

%/% integer division

!= diferent

x && y id

x & y logical AND

x|y logical OR

x||y id.

xor(x, y) exclusive OR

=================================================================

Tipos de objetos O R trabalha com objetos os quais armazenam ou recebem dados e operações.

vetores (numérico ou de caracteres)

matrizes (armazenam apenas números ou apenas caracteres, não aceita “células vazias”)

array (armazena apenas números, porém aceita “células vazias”)

data frames (armazena números e ou caracteres, não aceita “células vazias”)

listas (armazena conjuntos objetos diversos, incluindo textos)

is(nome do objeto) # para saber o tipo de objeto execute o comando

Introdução ao R No R studio é possível trabalhar com arquivos do tipo Rscript (.R) ou do tipo R Markdown(.Rmd). No file (canto

esquerdo superior) escolha o tipo de arquivo que você quer trabalhar. Indico o formato .R para quem tem mais

experiência e não pretende fazer muitos comentários durante a rotina ou não tem interesse em salvar os resultados no

próprio arquivo. Indico o formato .Rmd para aqueles que querem descrever mais detalhes sobre a rotina ou querem

salvá-la como um tutorial nos formatos do word, pdf ou HTML (clique em Knit Word). Além disso, esta última opção

permite mostrar os resultados das operações no arquivo de saída. Após salvar no formato Word, pdf ou HTML, veja

que o ## indica resultado das operações.

Observações:

Trabalhando com o .R, use #...----- para colocar títulos em blocos de operações:

Page 12: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

12

# título qualquer --------- ...

Se abaixo do título existem muitas linhas de comando, clique na seta para baixo, entre o número da linha e o título.

Veja que os comandos ficam ocultos dentro do título permitidto uma visão mais geral da rotina

Trabalhando com o .Rmd, use ```{r}...``` para delimitar um bloco de operações. Neste caso podemos descrever

maiores detalhes fora do bloco de operações, ou seja, antes ou depois de ```{r}...```.

```{r}

# título qualquer ...

```

Algumas operações básicas

2+2 # execute a operação e veja o resultado

## [1] 4

a<-2+2 # o objeto "a" recebe o resultado da operação 2+2. # Para ver o resultado digite "a" e execute-o b<- 3 # objeto b recebe valor 3 a+b # retornará 7

## [1] 7

Vetores

c(1,2,3)

## [1] 1 2 3

v<-c(1,2,3) # cria um vetor concatenando os 3 elementos dentro dos parênteses

Operações com vetores

3*v # multiplica cada elemento de v por 3

## [1] 3 6 9

b*v # multiplica b cada elemento de v

## [1] 3 6 9

v/2 # divide

## [1] 0.5 1.0 1.5

v^2 # potenciação

## [1] 1 4 9

sqrt(v) # raiz quadrada

## [1] 1.000000 1.414214 1.732051

v^(1/3) # raiz cúbica

## [1] 1.000000 1.259921 1.442250

sum(v) # soma

Page 13: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

13

## [1] 6

mean(v) # media

## [1] 2

length(v) # quantos elementos temos em v? comprimento de v

## [1] 3

Matriz

matrix(1:12, ncol = 3) # gera uma matriz com 3 colunas

## [,1] [,2] [,3] ## [1,] 1 5 9 ## [2,] 2 6 10 ## [3,] 3 7 11 ## [4,] 4 8 12

m1<- matrix(1:12, ncol = 3) # cria a matriz e armazena no objeto m1 m1

## [,1] [,2] [,3] ## [1,] 1 5 9 ## [2,] 2 6 10 ## [3,] 3 7 11 ## [4,] 4 8 12

m1[, 2] # acessa qualquer linha da coluna 2 da m1

## [1] 5 6 7 8

Lista

list("fulano", m2<- matrix(1:6, ncol=3), "beltrano")

## [[1]] ## [1] "fulano" ## ## [[2]] ## [,1] [,2] [,3] ## [1,] 1 3 5 ## [2,] 2 4 6 ## ## [[3]] ## [1] "beltrano"

a0<- list("fulano", m2<- matrix(1:6, ncol=3), "beltrano")#cria uma lista e armazena no obj a0 a0[[3]]

## [1] "beltrano"

a0[[2]] #no 2º obj de a0

## [,1] [,2] [,3] ## [1,] 1 3 5 ## [2,] 2 4 6

a0[[2]][,2]#no 2º obj de a0 retornar a 2ª coluna

## [1] 3 4

Page 14: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

14

Data frame

rbind(c("f1","f2","resp"),m1) # é uma matriz de caracteres

## [,1] [,2] [,3] ## [1,] "f1" "f2" "resp" ## [2,] "1" "5" "9" ## [3,] "2" "6" "10" ## [4,] "3" "7" "11" ## [5,] "4" "8" "12"

as.data.frame(rbind(c("f1","f2","resp"),m1))

## V1 V2 V3 ## 1 f1 f2 resp ## 2 1 5 9 ## 3 2 6 10 ## 4 3 7 11 ## 5 4 8 12

tes<-as.data.frame(rbind(c("f1","f2","resp"),m1)) tes

## V1 V2 V3 ## 1 f1 f2 resp ## 2 1 5 9 ## 3 2 6 10 ## 4 3 7 11 ## 5 4 8 12

Identificando os "núcleos" dos comandos

(2+2)*3 # qual foi a 1ª operação realizada?

## [1] 12

a<-c(4,9,16) b<-2 b*(sqrt(a)) # qual foi a 1ª operação realizada?

## [1] 4 6 8

sqrt(sum(a[1:3])) # qual foi a 1ª,2ª e a 3ª operação realizada?

## [1] 5.385165

Trabalhando com banco de dados

# importando dados------ read.table("fat2.txt",h=T) #h=T indica head=TRUE, ou seja, tem cabeçalho

## trat bloc f1 f2 resp ## 1 1 1 sa 0 18.0 ## 2 1 2 sa 0 8.6 ## 3 1 3 sa 0 9.4 ## 4 1 4 sa 0 11.4 ## 5 2 1 sa 1 19.6 ## 6 2 2 sa 1 15.0 ## 7 2 3 sa 1 14.6 ## 8 2 4 sa 1 15.8 ## 9 3 1 ca 0 20.6 ## 10 3 2 ca 0 21.0

Page 15: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

15

## 11 3 3 ca 0 18.6 ## 12 3 4 ca 0 20.6 ## 13 4 1 ca 1 19.2 ## 14 4 2 ca 1 19.6 ## 15 4 3 ca 1 18.4 ## 16 4 4 ca 1 20.2

a<-read.table("fat2.txt",h=T)# importa e armazena no objeto a head(a) # lendo o cabeçalho

## trat bloc f1 f2 resp ## 1 1 1 sa 0 18.0 ## 2 1 2 sa 0 8.6 ## 3 1 3 sa 0 9.4 ## 4 1 4 sa 0 11.4 ## 5 2 1 sa 1 19.6 ## 6 2 2 sa 1 15.0

str(a) # tipo dos obj que compoem o obj a

## 'data.frame': 16 obs. of 5 variables: ## $ trat: int 1 1 1 1 2 2 2 2 3 3 ... ## $ bloc: int 1 2 3 4 1 2 3 4 1 2 ... ## $ f1 : Factor w/ 2 levels "ca","sa": 2 2 2 2 2 2 2 2 1 1 ... ## $ f2 : int 0 0 0 0 1 1 1 1 0 0 ... ## $ resp: num 18 8.6 9.4 11.4 19.6 15 14.6 15.8 20.6 21 ...

is(a) # qual tipo de obj é a?

## [1] "data.frame" "list" "oldClass" "vector"

a$bloc # extrai o vetor bloc

## [1] 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

a$resp # extrai o vetor resp

## [1] 18.0 8.6 9.4 11.4 19.6 15.0 14.6 15.8 20.6 21.0 18.6 20.6 19.2 19.6 ## [15] 18.4 20.2

tapply(a$resp,a$f1,mean)# tabela de médias

## ca sa ## 19.775 14.050

tapply(a$resp,a$f2,mean)

## 0 1 ## 16.025 17.800

tapply(a$resp,a$f2,length)# tabela com número de obs

## 0 1 ## 8 8

Identifique no comando abaixo: 1ª operação? ( )soma; ( )tabela de médias; ( ) comprimento do vetor 2ª operação? (

)soma; ( )divisão; ( ) armazena resultado no obj test 3ª operação? ( )soma; ( )divisão; ( ) potência 4ª operação? (

)soma; ( ) tabela de médias; ( ) potência 5ª operação? ( )soma; ( )tabela de médias; ( ) comprimento do vetor 6ª

operação? ( )soma; ( )tabela de médias; ( ) divisão 7ª operação? ( )armazena resultado no obj test; ( )tabela de

médias;() divisão

teste<-((sum(tapply(a$resp,a$f1,mean) )

Page 16: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

16

)^2 )/length(tapply(a$resp,a$f1,mean))

Dica: observe o alinhamento dos parênteses, indentifique onde eles iniciam e fecham

teste<-((sum(tapply(a$resp,a$f1,mean) ) )^2 )/(length(tapply(a$resp,a$f1,mean) ) )

Fazendo recortes no banco de dados

# Recortando o banco de dados --------- a # mostra o objeto a

## trat bloc f1 f2 resp ## 1 1 1 sa 0 18.0 ## 2 1 2 sa 0 8.6 ## 3 1 3 sa 0 9.4 ## 4 1 4 sa 0 11.4 ## 5 2 1 sa 1 19.6 ## 6 2 2 sa 1 15.0 ## 7 2 3 sa 1 14.6 ## 8 2 4 sa 1 15.8 ## 9 3 1 ca 0 20.6 ## 10 3 2 ca 0 21.0 ## 11 3 3 ca 0 18.6 ## 12 3 4 ca 0 20.6 ## 13 4 1 ca 1 19.2 ## 14 4 2 ca 1 19.6 ## 15 4 3 ca 1 18.4 ## 16 4 4 ca 1 20.2

levels(a$f1) # extrai o vetor f1 dentro do objeto a

## [1] "ca" "sa"

subset(a,f1=="sa") # recorta o vetor f1 igual a sa dentro do objeto a

## trat bloc f1 f2 resp ## 1 1 1 sa 0 18.0 ## 2 1 2 sa 0 8.6 ## 3 1 3 sa 0 9.4 ## 4 1 4 sa 0 11.4 ## 5 2 1 sa 1 19.6 ## 6 2 2 sa 1 15.0 ## 7 2 3 sa 1 14.6 ## 8 2 4 sa 1 15.8

subset(a,f1=="ca")

## trat bloc f1 f2 resp ## 9 3 1 ca 0 20.6 ## 10 3 2 ca 0 21.0 ## 11 3 3 ca 0 18.6 ## 12 3 4 ca 0 20.6 ## 13 4 1 ca 1 19.2 ## 14 4 2 ca 1 19.6

Page 17: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

17

## 15 4 3 ca 1 18.4 ## 16 4 4 ca 1 20.2

subset(a,f2=="0")

## trat bloc f1 f2 resp ## 1 1 1 sa 0 18.0 ## 2 1 2 sa 0 8.6 ## 3 1 3 sa 0 9.4 ## 4 1 4 sa 0 11.4 ## 9 3 1 ca 0 20.6 ## 10 3 2 ca 0 21.0 ## 11 3 3 ca 0 18.6 ## 12 3 4 ca 0 20.6

f2_0<-subset(a,f2=="0") # recorta e armazena no objeto f2_0 f2_0 # mostra o objeto f2_0

## trat bloc f1 f2 resp ## 1 1 1 sa 0 18.0 ## 2 1 2 sa 0 8.6 ## 3 1 3 sa 0 9.4 ## 4 1 4 sa 0 11.4 ## 9 3 1 ca 0 20.6 ## 10 3 2 ca 0 21.0 ## 11 3 3 ca 0 18.6 ## 12 3 4 ca 0 20.6

tapply(f2_0$resp,f2_0$f1,mean)# retorna uma tabela com medias do recorte

## ca sa ## 20.20 11.85

tapply(f2_0$resp,f2_0$f1,sum) # retorna uma tabela com a soma do recorte

## ca sa ## 80.8 47.4

tapply(f2_0$resp,f2_0$f1,length)# retorna uma tabela com o numero de obs # de cada nível de f1 dentro do recorte f2_0

## ca sa ## 4 4

Fatorial duplo sem desdobramento

Usando o pacote ExpDes

Utilizaremos um conjundo de dados retirados de Pimentel Gomes(2008), sendo um fatorial duplo com dois níves

dentro de cada fator.

a<-read.table("fat2.txt",h=T)# importando os dados head(a) # conferindo do cabeçalho

## trat bloc f1 f2 resp ## 1 1 1 sa 0 18.0 ## 2 1 2 sa 0 8.6 ## 3 1 3 sa 0 9.4 ## 4 1 4 sa 0 11.4

Page 18: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

18

## 5 2 1 sa 1 19.6 ## 6 2 2 sa 1 15.0

str(a)

## 'data.frame': 16 obs. of 5 variables: ## $ trat: int 1 1 1 1 2 2 2 2 3 3 ... ## $ bloc: int 1 2 3 4 1 2 3 4 1 2 ... ## $ f1 : Factor w/ 2 levels "ca","sa": 2 2 2 2 2 2 2 2 1 1 ... ## $ f2 : int 0 0 0 0 1 1 1 1 0 0 ... ## $ resp: num 18 8.6 9.4 11.4 19.6 15 14.6 15.8 20.6 21 ...

a

## trat bloc f1 f2 resp ## 1 1 1 sa 0 18.0 ## 2 1 2 sa 0 8.6 ## 3 1 3 sa 0 9.4 ## 4 1 4 sa 0 11.4 ## 5 2 1 sa 1 19.6 ## 6 2 2 sa 1 15.0 ## 7 2 3 sa 1 14.6 ## 8 2 4 sa 1 15.8 ## 9 3 1 ca 0 20.6 ## 10 3 2 ca 0 21.0 ## 11 3 3 ca 0 18.6 ## 12 3 4 ca 0 20.6 ## 13 4 1 ca 1 19.2 ## 14 4 2 ca 1 19.6 ## 15 4 3 ca 1 18.4 ## 16 4 4 ca 1 20.2

Para rodar os dados transformaremos os vetores dos fatores em estudo em fator e a variável resposta em um vetor

numérico. Estes vetores erão armazenados nos objetos ft, fb, f1, f2. Ao nomear os objetos, prefira nomes pequenos,

pois evita erros e facilita a manipulação dos objetos no software. Além disso, outros objetos poderão ser criados a

partir dos primeiros, acrescentando-se apenas alguns caracteres a mais.

ft<-as.factor(a$trat) fb<-as.factor(a$bloc) f1<-as.factor(a$f1)# fator adubo f2<-as.factor(a$f2) #fator torta de filtro resp<-as.numeric(a$resp)

Reunindo em um data frame.

a1<-data.frame(ft,fb,f1,f2,resp) head(a) # observe o cabeçalho

## trat bloc f1 f2 resp ## 1 1 1 sa 0 18.0 ## 2 1 2 sa 0 8.6 ## 3 1 3 sa 0 9.4 ## 4 1 4 sa 0 11.4 ## 5 2 1 sa 1 19.6 ## 6 2 2 sa 1 15.0

Existem pacotes que já executam algumas rotinas de análises. O pacote ExpDes pode ser encontrado no endereço

https://cran.r-project.org/web/packages/ExpDes.pt/index.html. Após instalar o pacote em seu PC é possível executar

as rotinas de análise de variância e testes de médi, apenas informando o nome dos vetores dos fatores e da variável

resposta em estudo. Além deste, existem opções para a escolha do teste de médias e dos valores de alpha a serem

Page 19: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

19

utilizados. Uma vez instalado o pacote, atívi-o no seu R studio (require....) e use o comando ?fat...(em português) ou

?fat2.rbd (se em inglês) para procurar pela subrotina que mais se encaixa no seu conjunto de dados.

require(ExpDes)#ativando o pacote

## Loading required package: ExpDes

## Warning: package 'ExpDes' was built under R version 3.2.5

fat2.rbd(f1, f2, fb, resp, quali = c(TRUE, TRUE), mcomp = "tukey", fac.names = c("Adubo", "Torta"), sigT = 0.05, sigF = 0.05)

## ------------------------------------------------------------------------ ## Legend: ## FACTOR 1: Adubo ## FACTOR 2: Torta ## ------------------------------------------------------------------------ ## ## ## Analysis of Variance Table ## ------------------------------------------------------------------------ ## DF SS MS Fc Pr>Fc ## Block 3 37.828 12.609 3.0099 0.087112 ## Adubo 1 131.102 131.102 31.2956 0.000337 ## Torta 1 12.603 12.602 3.0084 0.116864 ## Adubo*Torta 1 27.563 27.562 6.5795 0.030434 ## Residuals 9 37.702 4.189 ## Total 15 246.797 ## ------------------------------------------------------------------------ ## CV = 12.1 % ## ## ------------------------------------------------------------------------ ## Shapiro-Wilk normality test ## p-value: 0.5582699 ## According to Shapiro-Wilk normality test at 5% of significance, residuals can be considered normal. ## ------------------------------------------------------------------------ ## ## ## ## Significant interaction: analyzing the interaction ## ------------------------------------------------------------------------ ## ## Analyzing Adubo inside of each level of Torta ## ------------------------------------------------------------------------ ## ------------------------------------------------------------------------ ## Analysis of Variance Table ## ------------------------------------------------------------------------ ## DF SS MS Fc Pr.Fc ## Block 3 37.8275 12.60917 3.0099 0.0871 ## Torta 1 12.6025 12.60250 3.0084 0.1169 ## Torta:Adubo 0 1 139.4450 139.44500 33.287 3e-04 ## Torta:Adubo 1 1 19.2200 19.22000 4.588 0.0608 ## Residuals 9 37.7025 4.18917 ## Total 15 246.7975 16.45317 ## ------------------------------------------------------------------------ ## ##

Page 20: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

20

## ## Adubo inside of the level 0 of Torta ## ------------------------------------------------------------------------ ## Tukey's test ## ------------------------------------------------------------------------ ## Groups Treatments Means ## a 1 20.2 ## b 2 11.85 ## ------------------------------------------------------------------------ ## ## ## Adubo inside of the level 1 of Torta ## ## According to the F test, the means of this factor are statistical equal. ## Levels Means ## 1 1 19.35 ## 2 2 16.25 ## ------------------------------------------------------------------------ ## ## ## ## Analyzing Torta inside of each level of Adubo ## ------------------------------------------------------------------------ ## ------------------------------------------------------------------------ ## Analysis of Variance Table ## ------------------------------------------------------------------------ ## DF SS MS Fc Pr.Fc ## Block 3 37.8275 12.60917 3.0099 0.0871 ## Adubo 1 131.1025 131.10250 31.2956 3e-04 ## Adubo:Torta ca 1 1.4450 1.44500 0.3449 0.5714 ## Adubo:Torta sa 1 38.7200 38.72000 9.2429 0.014 ## Residuals 9 37.7025 4.18917 ## Total 15 246.7975 16.45317 ## ------------------------------------------------------------------------ ## ## ## ## Torta inside of the level ca of Adubo ## ## According to the F test, the means of this factor are statistical equal. ## Levels Means ## 1 1 20.20 ## 2 2 19.35 ## ------------------------------------------------------------------------ ## ## ## Torta inside of the level sa of Adubo ## ------------------------------------------------------------------------ ## Tukey's test ## ------------------------------------------------------------------------ ## Groups Treatments Means ## a 2 16.25 ## b 1 11.85 ## ------------------------------------------------------------------------

Page 21: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

21

Fatorial duplo sem desdobramento

Passo a passo

Outra opção seria fazer a análise de variância montando-a passo a passo como demostrado abaixo. Apesar de não

ser um procedimento rápido, este é mais flexível, permitindo adaptá-lo para outros conjuntos de dados com diferentes

"desenhos do experimento". Usaremos os dados retirados de Pimentel Gomes (2008). Ao importar os dados não se

esqueça de colocar o nome do arquivo "fat2" e se é um arquivo de texto, coloque ".txt". O "h=T" indica head=TRUE,

ou seja, existe cabeçalho no arquivo de dados.

a<-read.table("fat2.txt",h=T)# importando os dados str(a)

## 'data.frame': 16 obs. of 5 variables: ## $ trat: int 1 1 1 1 2 2 2 2 3 3 ... ## $ bloc: int 1 2 3 4 1 2 3 4 1 2 ... ## $ f1 : Factor w/ 2 levels "ca","sa": 2 2 2 2 2 2 2 2 1 1 ... ## $ f2 : int 0 0 0 0 1 1 1 1 0 0 ... ## $ resp: num 18 8.6 9.4 11.4 19.6 15 14.6 15.8 20.6 21 ...

head(a)

## trat bloc f1 f2 resp ## 1 1 1 sa 0 18.0 ## 2 1 2 sa 0 8.6 ## 3 1 3 sa 0 9.4 ## 4 1 4 sa 0 11.4 ## 5 2 1 sa 1 19.6 ## 6 2 2 sa 1 15.0

Transformaremos os vetores em fator ou em vetores numéricos

# transformando os dados em fator-------- ft<-as.factor(a$trat) fb<-as.factor(a$bloc) f1<-as.factor(a$f1) f2<-as.factor(a$f2) resp<-as.numeric(a$resp)

Reunindo em novo data.frame

a1<-data.frame(ft,fb,f1,f2,resp)

Obteremos o quadrado médio do resíduo de forma rápida com o comando aov. Porém para obter a saída mais

comum utilizaremos o comando summary(...). Extrairemos o grau de liberdade e a soma de quadrados do resíduo

apenas para conferir com os resultados de nossa rotina passo a passo.

# Anova apenas tratamentos ------ ane0 <-aov(resp~fb+ft, data=a1) summary(ane0)

## Df Sum Sq Mean Sq F value Pr(>F) ## fb 3 37.83 12.61 3.01 0.08711 . ## ft 3 171.27 57.09 13.63 0.00107 ** ## Residuals 9 37.70 4.19 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

df.residual(ane0) # gl do residuo

Page 22: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

22

## [1] 9

sum(residuals(ane0)^2) # SQresiduo

## [1] 37.7025

Lembremos que para calcular a SQ de um fator em estudo usamos a fórmula: SQ=....

Dividiremos a fórmula em duas partes, sendo (...)=term1 e, (...)=term2. Depois juntaremos as duas para obter a SQ.

term1<-sum((tapply(resp,fb,sum)^2)/tapply(resp,fb,length)) term2<-sum(tapply(resp,fb,sum))^2/sum(tapply(resp,fb,length)) SQ<-term1-term2 SQ

## [1] 37.8275

Observe que para calcular a SQ para tratamentos, apenas trocaríamos fb por ft na estrutura dos comandos acima. O

mesmo vale para f1 e f2. Para não utilizar os blocos de comandos acima para cada fator em estudo, utilizaremos a

função function(x){...return(...)} em que o objeto "curinga" x é o vetor do fator em estudo.

# funcao para SQs --------- fu1<-function(x){ term1<-sum((tapply(resp,x,sum)^2)/tapply(resp,x,length)) term2<-((sum(tapply(resp,x,sum)))^2)/sum(tapply(resp,x,length)) sq<-term1-term2 return(sq)}

Experimente aplicar a fu1 nos objetos fb, ft, f1 e f2

fu1(fb) # conferir os resultados com aqueles do comando aov(...)

## [1] 37.8275

fu1(ft)

## [1] 171.2675

Reuniremos as SQs, por linha, em um objto chamado vsq

# aplicando fu1 para SQs vsq<-rbind(vb=fu1(fb), vt=fu1(ft), vtotal=fu1(fb:f1:f2), vresiduo=fu1(fb:f1:f2)-fu1(ft)-fu1(fb), vf1=fu1(f1), vf2=fu1(f2), vf1i2=fu1(f1:f2)-fu1(f1)-fu1(f2)) vsq

## [,1] ## vb 37.8275 ## vt 171.2675 ## vtotal 246.7975 ## vresiduo 37.7025 ## vf1 131.1025 ## vf2 12.6025 ## vf1i2 27.5625

De modo semelhante calcularemos os graus de liberdade

Page 23: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

23

# calculando os gls -------- vgl<-c(glb<-length(levels(fb))-1, glt<-length(levels(ft))-1, gltotal<-length(levels(fb:f1:f2))-1, glresiduo<-gltotal-glb-glt, gl1<-length(levels(f1))-1, gl2<-length(levels(f2))-1, gl1i2<-gl1*gl2) vgl

## [1] 3 3 15 9 1 1 1

Sabemos que o QM=SQ/GL. Os valores calculados serão armazenados em um vetor vqm, do qual sabemos que o 4º

valor na 1ª linha (vqm[4,1]) é o QM do resíduo. Sabemos que o F calculado é obtido por Fcal=QM do fator em

estudo/QMr. Armazenamos os valores de Fcal num vetor chamdo vfcal. Posteriormente fazemos o teste F usando o

comando pf(...). Os procedimentos acima listados são realizados um a um para verificação dos resultados. Em

seguida reunimos os diversos objetos com o uso da comando cbind(....). As aspas " " indicam que mesmo os números

estão sendo reconhecidos como caracteres pelo software. Isto é consequência do tipo de objeto, pois as matrizes são

compostas de apenas um tipo de objeto, ou númerico ou caracter.

# reunindo em uma matriz cbind(vsq, vgl, vqm<-vsq/vgl, vfcal<-vqm/vqm[4,1], p_valor<-pf(vfcal, vgl, gltotal-glb-glt,lower.tail = FALSE))

## vgl ## vb 37.8275 3 12.609167 3.009946 0.0871123525 ## vt 171.2675 3 57.089167 13.627810 0.0010748062 ## vtotal 246.7975 15 16.453167 3.927551 0.0219051669 ## vresiduo 37.7025 9 4.189167 1.000000 0.5000000000 ## vf1 131.1025 1 131.102500 31.295604 0.0003367442 ## vf2 12.6025 1 12.602500 3.008355 0.1168637053 ## vf1i2 27.5625 1 27.562500 6.579471 0.0304340412

Adicionaremos um vetor de nomes ao nosso objeto

# identificando as colunas rbind(c("FV", "SQ", "GL", "QM", "Fcal", "P_valor"), cbind(vsq, vgl, vqm<-vsq/vgl, vfcal<-vqm/vqm[4,1], p_valor<-pf(vfcal, vgl, gltotal-glb-glt,lower.tail = FALSE)))

## Warning in rbind(c("FV", "SQ", "GL", "QM", "Fcal", "P_valor"), cbind(vsq, : ## number of columns of result is not a multiple of vector length (arg 1)

## vgl ## "FV" "SQ" "GL" "QM" ## vb "37.8274999999994" "3" "12.6091666666665" "3.00994629003374" ## vt "171.2675" "3" "57.0891666666666" "13.6278098269344" ## vtotal "246.7975" "15" "16.4531666666666" "3.92755122339363" ## vresiduo "37.7025000000003" "9" "4.1891666666667" "1" ## vf1 "131.102499999999" "1" "131.102499999999" "31.2956037398046" ## vf2 "12.6025" "1" "12.6025" "3.00835488362837" ## vf1i2 "27.5625000000009" "1" "27.5625000000009" "6.57947085737036" ##

Page 24: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

24

## "Fcal" ## vb "0.0871123524548996" ## vt "0.00107480616992565" ## vtotal "0.0219051668686572" ## vresiduo "0.5" ## vf1 "0.000336744197665661" ## vf2 "0.116863705339496" ## vf1i2 "0.0304340412024341"

Utilizaremos o comando round(...,dig=3), internamente, para arredondar os valores obtidos até 3 casas decimais.

rbind(c("FV", "SQ", "GL", "QM", "Fcal", "P_valor"), cbind(round(vsq,dig=1), round(vgl,dig=1), round(vqm<-vsq/vgl,dig=1), round(vfcal<-vqm/vqm[4,1],dig=2), round(p_valor<-pf(vfcal, vgl, gltotal-glb-glt, lower.tail = FALSE),dig=3)))

## Warning in rbind(c("FV", "SQ", "GL", "QM", "Fcal", "P_valor"), ## cbind(round(vsq, : number of columns of result is not a multiple of vector ## length (arg 1)

## [,1] [,2] [,3] [,4] [,5] ## "FV" "SQ" "GL" "QM" "Fcal" ## vb "37.8" "3" "12.6" "3.01" "0.087" ## vt "171.3" "3" "57.1" "13.63" "0.001" ## vtotal "246.8" "15" "16.5" "3.93" "0.022" ## vresiduo "37.7" "9" "4.2" "1" "0.5" ## vf1 "131.1" "1" "131.1" "31.3" "0" ## vf2 "12.6" "1" "12.6" "3.01" "0.117" ## vf1i2 "27.6" "1" "27.6" "6.58" "0.03"

Para retirar as " " transformaremos o objeto em um data frame, pois os data frames aceitam números e caracteres ao

mesmo tempo.

# transformando emum data.frame # despreze o fcal e pv para total e residuo as.data.frame( rbind(c("SQ", "GL", "QM", "Fcal", "P_valor"), cbind(round(vsq,dig=1), round(vgl,dig=1), round(vqm<-vsq/vgl,dig=1), round(vfcal<-vqm/vqm[4,1],dig=2), round(p_valor<-pf(vfcal, vgl, gltotal-glb-glt, lower.tail = FALSE),dig=3))))

## V1 V2 V3 V4 V5 ## SQ GL QM Fcal P_valor ## vb 37.8 3 12.6 3.01 0.087 ## vt 171.3 3 57.1 13.63 0.001 ## vtotal 246.8 15 16.5 3.93 0.022 ## vresiduo 37.7 9 4.2 1 0.5 ## vf1 131.1 1 131.1 31.3 0 ## vf2 12.6 1 12.6 3.01 0.117 ## vf1i2 27.6 1 27.6 6.58 0.03

Para fazer os desdobramentos fazemos recortes no objetos contendo os dados.

Page 25: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

25

# anova dos desdobramentos ----- levels(f1) # lembranod os níveis de f1

## [1] "ca" "sa"

levels(f2)

## [1] "0" "1"

# fazendo recortes no banco de dados f2_0<-subset(a1, f2=="0") #f1 qndo torta =0 f2_1<-subset(a1, f2=="1") #f1 qndo torta =1

Criaremos um nova function(..){...} para calcular as SQ, GL, QM, Fcal e Pvalores para o fator em estudo de acordo

com os recortes feitos. Observe na função que o fator f1é o fator em estudo dentro dos níveis de f2. Portanto nosso

"objeto curinga" será o própiro recorte (f2_0...) do banco de dados(a1).

#criaremos uma nova function------- fu2<-function(x){ somqy<-tapply(x$resp,x$f1,sum)^2 n<-tapply(x$resp,x$f1,length) ter1<-sum(somqy/n) qsomy<-sum(tapply(x$resp,x$f1,sum))^2 t<-sum(n) ter2<-qsomy/t SQ<-ter1-ter2 GL<-length(somqy)-1 QM<-SQ/GL Fcal<- QM/(sum(residuals(ane0)^2)/df.residual(ane0)) PV<-round(c(pf(Fcal, GL, df.residual(ane0), lower.tail = FALSE)), dig=3) vetnum<-round(c(SQ,GL,QM,Fcal,PV),dig=3) return(vetnum) }

Aplicando a fu2 aos recortes

fu2(f2_0)

## [1] 139.445 1.000 139.445 33.287 0.000

fu2(f2_1)

## [1] 19.220 1.000 19.220 4.588 0.061

Reunindo numa matriz

# reunindo numa matriz ------ cbind(c("f1 d/f2=0","f1 d/f2=1"), # identificação rbind(fu2(f2_0),fu2(f2_1)))

## [,1] [,2] [,3] [,4] [,5] [,6] ## [1,] "f1 d/f2=0" "139.445" "1" "139.445" "33.287" "0" ## [2,] "f1 d/f2=1" "19.22" "1" "19.22" "4.588" "0.061"

Identificando colunas

rbind(c("FV", "SQ", "GL", "QM", "Fcal", "P_valor"), cbind(c("f1 d/f2=0","f1 d/f2=1"), rbind(fu2(f2_0),fu2(f2_1))))

Page 26: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

26

## [,1] [,2] [,3] [,4] [,5] [,6] ## [1,] "FV" "SQ" "GL" "QM" "Fcal" "P_valor" ## [2,] "f1 d/f2=0" "139.445" "1" "139.445" "33.287" "0" ## [3,] "f1 d/f2=1" "19.22" "1" "19.22" "4.588" "0.061"

Transformando em um data frame

as.data.frame(rbind(c("FV", "SQ", "GL", "QM", "Fcal", "P_valor"), cbind(c("f1 d/f2=0","f1 d/f2=1"), rbind(fu2(f2_0),fu2(f2_1)))))

## V1 V2 V3 V4 V5 V6 ## 1 FV SQ GL QM Fcal P_valor ## 2 f1 d/f2=0 139.445 1 139.445 33.287 0 ## 3 f1 d/f2=1 19.22 1 19.22 4.588 0.061

Neste caso o teste F é conclusivo, pois temos apenas um contraste. Se você quer saber quais são as médias utilize o

comando tapply(....) para os recortes definidos anteriormente

tapply(f2_0$resp, f2_0$f1, mean) # na ausencia de torta

## ca sa ## 20.20 11.85

tapply(f2_1$resp, f2_1$f1, mean) # na presença de torta

## ca sa ## 19.35 16.25

Fatorial duplo: progenes de eucalipto

Usando o ExpDes

Utilizaremos os dados simulados de um fatorial duplo, em dbc. Os fatores em estudo são 2 progênies de plantas (A,B)

e 4 tipos de adubo (1, 2, 3, 4). As variáveis resposta são a produção de matéria seca da parte aérea(msf) ou de

caule(msc) de mudas de eucalipto. O objetivo é saber qual tipo de adubo permite maior produção de folhas ou caule

dentro dos níveis de progênies.

Para importar os dados lembre-se que o diretório deve ser reconhecido pelo software. Para fazê-lo vá em:

Session>Set Working Directory> Choose Directory> escolha a pasta onde está o arquivo de dados

a<-read.table("fat2_prog.txt",h=T)# importando os dados head(a) # cabeçalho está ok?

## trat bloc prog adub msf msc ## 1 1 1 A 1 12.98 6.60 ## 2 2 1 A 2 5.47 2.36 ## 3 3 1 A 3 12.64 6.95 ## 4 4 1 A 4 6.33 3.38 ## 5 5 1 B 1 25.13 15.18 ## 6 6 1 B 2 6.62 3.47

str(a)

## 'data.frame': 32 obs. of 6 variables: ## $ trat: int 1 2 3 4 5 6 7 8 1 2 ... ## $ bloc: int 1 1 1 1 1 1 1 1 2 2 ... ## $ prog: Factor w/ 2 levels "A","B": 1 1 1 1 2 2 2 2 1 1 ...

Page 27: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

27

## $ adub: int 1 2 3 4 1 2 3 4 1 2 ... ## $ msf : num 12.98 5.47 12.64 6.33 25.13 ... ## $ msc : num 6.6 2.36 6.95 3.38 15.18 ...

Colocaremos os fatores como fatores e a variável resposta como numérca

# transformando os dados em fator-------- ft<-as.factor(a$trat) # tratamentos fb<-as.factor(a$bloc) # blocos f1<-as.factor(a$prog) # progenie f2<-as.factor(a$adub) # tipo de adubo resp<-as.numeric(a$msf)# variável resposta

# reunindo em novo data ------- a1<-data.frame(ft,fb,f1,f2,resp) head(a1)

## ft fb f1 f2 resp ## 1 1 1 A 1 12.98 ## 2 2 1 A 2 5.47 ## 3 3 1 A 3 12.64 ## 4 4 1 A 4 6.33 ## 5 5 1 B 1 25.13 ## 6 6 1 B 2 6.62

Utilizaremos o pacote ExpDes. Se este já estiver instalado no seu PC, utilize o comando require(...) para ativá-lo.

# usando o ExpDes require(ExpDes)

## Loading required package: ExpDes

## Warning: package 'ExpDes' was built under R version 3.2.5

Após ativar o ExpDes, digite na janela do console o comando ??fat... e veja qual opção melhor se encaixa aos seus

dados. Aqui pode haver alguma variação em fat2.rbd ou fat2.dbc, se você instalou a versão do pacote em inglês ou

português.

??fat2.rbd

## starting httpd help server ...

## done

Após identificar, na janela do help, qual subrotina se encaixa aos seus dados, copie-a e cole na janelo do seu editor.

Lembrando os nomes dados aos vetores no objeto a1, informe quais são os vetores dos fatores (f1, f2...), qual é a

variável resposta em estudo (resp). Informe ainda qual o tipo de teste (tukey), quais os nomes de saída dos fatores (em

fac.names("Fulano", "Beltrano") e quais são os níveis de significância para os testes F e t.

Dica 1: se o teste F não foi significativo, o ExpDes não faz o desdobramento. Para forçá-lo a fazer o desdobramento

coloque o nível de significância mais alto.

Dica 2: este pacote também faz ajuste de modelos até o 3º grau. Para fazê-lo indique no comando quali=c(...) qual

dos fatores é quantitativo. Basta colocar FALSE no lugar de TRUE

fat2.rbd(f1, f2, fb, resp, quali = c(TRUE, TRUE), mcomp = "tukey", fac.names = c("F1", "F2"), sigT = 0.05, sigF = 0.05)

## ------------------------------------------------------------------------ ## Legend:

Page 28: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

28

## FACTOR 1: F1 ## FACTOR 2: F2 ## ------------------------------------------------------------------------ ## ## ## Analysis of Variance Table ## ------------------------------------------------------------------------ ## DF SS MS Fc Pr>Fc ## Block 3 128.82 42.940 1.6543 0.20725 ## F1 1 29.36 29.357 1.1310 0.29964 ## F2 3 693.87 231.291 8.9106 0.00053 ## F1*F2 3 32.07 10.688 0.4118 0.74624 ## Residuals 21 545.09 25.957 ## Total 31 1429.21 ## ------------------------------------------------------------------------ ## CV = 42.21 % ## ## ------------------------------------------------------------------------ ## Shapiro-Wilk normality test ## p-value: 0.698664 ## According to Shapiro-Wilk normality test at 5% of significance, residuals can be considered normal. ## ------------------------------------------------------------------------ ## ## Not significant interaction: analyzing the simple effect ## ------------------------------------------------------------------------ ## F1 ## According to the F test, the means of this factor are statistical equal. ## Levels Means ## 1 A 11.11187 ## 2 B 13.02750 ## ------------------------------------------------------------------------ ## F2 ## Tukey's test ## ------------------------------------------------------------------------ ## Groups Treatments Means ## a 1 17.99 ## a 4 13.1075 ## a 3 12.22375 ## b 2 4.9575 ## ------------------------------------------------------------------------

E para a variável resposta msc como seria? Volte no bloco de comandos "Transformando dados em fator" e mude a

variável resposta de a msf para msc. Execute novamente todos os comandos daquela linha para baixo.

Fatorial duplo: progênies de eucalípto

Passo a passo

Utilizaremos os dados simulados de um fatorial duplo, em dbc. Os fatores em estudo são 2 progênies de plantas (A,B)

e 4 tipos de adubo (1, 2, 3, 4). As variáveis resposta são a produção de matéria seca da parte aérea(msf) ou de

caule(msc) de mudas de eucalipto. O objetivo é saber qual tipo de adubo permite maior produção de folhas ou caule

dentro dos níveis de progênies.

Page 29: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

29

Neste exemplo, calcularemos o QMr atraves do comando aov(...). Mas criaremos rotinas que irão calcular novamente

as somas de quadrados de blocos, tratamentos e novamente do residuo, sendo estes reunidos em uma matriz mais

parecida com os quadros de anova que estamos acostumados. Faremos o mesmo para os demais fatores (f1 e f2),

para interação f12 e para os desdobramentos. Depois utilizaremos o pacote agricolae para fazer os testes de médias.

No entanto devemos lembrar que a decomposiçõa dos efeitos dos fatores na anova não altera nossos procedimentos

para o teste de média. Pois para o teste de média bastaria ter o valor do QMr.

a<-read.table("fat2_prog.txt",h=T)# importando os dados head(a)

## trat bloc prog adub msf msc ## 1 1 1 A 1 12.98 6.60 ## 2 2 1 A 2 5.47 2.36 ## 3 3 1 A 3 12.64 6.95 ## 4 4 1 A 4 6.33 3.38 ## 5 5 1 B 1 25.13 15.18 ## 6 6 1 B 2 6.62 3.47

str(a)

## 'data.frame': 32 obs. of 6 variables: ## $ trat: int 1 2 3 4 5 6 7 8 1 2 ... ## $ bloc: int 1 1 1 1 1 1 1 1 2 2 ... ## $ prog: Factor w/ 2 levels "A","B": 1 1 1 1 2 2 2 2 1 1 ... ## $ adub: int 1 2 3 4 1 2 3 4 1 2 ... ## $ msf : num 12.98 5.47 12.64 6.33 25.13 ... ## $ msc : num 6.6 2.36 6.95 3.38 15.18 ...

Transformando os dados em fatores ou numéricos

ft<-as.factor(a$trat) # tratamentos fb<-as.factor(a$bloc) f1<-as.factor(a$prog) # progenie f2<-as.factor(a$adub) # tipo de adubo resp<-as.numeric(a$msf)# variável resposta

Reunindo em novo data

a1<-data.frame(ft,fb,f1,f2,resp) head(a1)

## ft fb f1 f2 resp ## 1 1 1 A 1 12.98 ## 2 2 1 A 2 5.47 ## 3 3 1 A 3 12.64 ## 4 4 1 A 4 6.33 ## 5 5 1 B 1 25.13 ## 6 6 1 B 2 6.62

Anova apenas com tratamentos e blocos

ane0 <-aov(resp~fb+ft, data=a1) summary(ane0)

## Df Sum Sq Mean Sq F value Pr(>F) ## fb 3 128.8 42.94 1.654 0.20725 ## ft 7 755.3 107.90 4.157 0.00514 ** ## Residuals 21 545.1 25.96 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Page 30: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

30

df.residual(ane0) # gl do residuo

## [1] 21

sum(residuals(ane0)^2) # SQresiduo

## [1] 545.0921

QMr<-sum(residuals(ane0)^2)/df.residual(ane0) QMr

## [1] 25.95677

Função para SQs

fu1<-function(x){ term1<-sum((tapply(resp,x,sum)^2)/tapply(resp,x,length)) term2<-((sum(tapply(resp,x,sum)))^2)/sum(tapply(resp,x,length)) sq<-term1-term2 return(sq)}

Aplicando a fu1 para SQs principais e reunindo por linhanda com rbind(...)

vsq<-rbind(vb<-fu1(fb), vt<-fu1(ft), vtotal<-fu1(fb:f1:f2), vresiduo<-fu1(fb:f1:f2)-fu1(ft)-fu1(fb), vf1<-fu1(f1), vf2<-fu1(f2), vf1i2<-fu1(f1:f2)-fu1(f1)-fu1(f2))

Colocando nomes nas linhas do objeto vsq

rownames(vsq)<-c("bloc", "trat","total", "res", "f1", "f2", "f1i2") vsq

## [,1] ## bloc 128.81966 ## trat 755.29512 ## total 1429.20690 ## res 545.09212 ## f1 29.35695 ## f2 693.87281 ## f1i2 32.06536

Calculando os gls

vgl<-c(glb<-length(levels(fb))-1, glt<-length(levels(ft))-1, gltotal<-length(levels(fb:f1:f2))-1, glresiduo<-gltotal-glb-glt, gl1<-length(levels(f1))-1, gl2<-length(levels(f2))-1, gl1i2<-gl1*gl2)

Reunindo em uma matriz

ane1<-cbind(vsq, vgl, vqm<-vsq/vgl,

Page 31: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

31

vfcal<-vqm/vqm[4,1], p_valor<-pf(vfcal, vgl, gltotal-glb-glt,lower.tail = FALSE)) ane1

## vgl ## bloc 128.81966 3 42.93989 1.6542848 0.2072465061 ## trat 755.29512 7 107.89930 4.1568852 0.0051398843 ## total 1429.20690 31 46.10345 1.7761629 0.0863900570 ## res 545.09212 21 25.95677 1.0000000 0.5000000000 ## f1 29.35695 1 29.35695 1.1309942 0.2996401348 ## f2 693.87281 3 231.29094 8.9106218 0.0005274477 ## f1i2 32.06536 3 10.68845 0.4117791 0.7462352098

Identificando as colunas

colnames(ane1) #veja que o vetor de GL tem nomes

## [1] "" "vgl" "" "" ""

colnames(ane1)<-c("SQ", "GL", "QM", "Fcal", "P_valor") ane1

## SQ GL QM Fcal P_valor ## bloc 128.81966 3 42.93989 1.6542848 0.2072465061 ## trat 755.29512 7 107.89930 4.1568852 0.0051398843 ## total 1429.20690 31 46.10345 1.7761629 0.0863900570 ## res 545.09212 21 25.95677 1.0000000 0.5000000000 ## f1 29.35695 1 29.35695 1.1309942 0.2996401348 ## f2 693.87281 3 231.29094 8.9106218 0.0005274477 ## f1i2 32.06536 3 10.68845 0.4117791 0.7462352098

Arredondando os valores

round(ane1,dig=3)

## SQ GL QM Fcal P_valor ## bloc 128.820 3 42.940 1.654 0.207 ## trat 755.295 7 107.899 4.157 0.005 ## total 1429.207 31 46.103 1.776 0.086 ## res 545.092 21 25.957 1.000 0.500 ## f1 29.357 1 29.357 1.131 0.300 ## f2 693.873 3 231.291 8.911 0.001 ## f1i2 32.065 3 10.688 0.412 0.746

Anova dos desdobramentos

levels(f1)

## [1] "A" "B"

levels(f2)

## [1] "1" "2" "3" "4"

# Qual adubo produz mais dentro de cada progene desdobraremos f2 d/f1... # Fazendo os recortes no banco de dados f1_a<-subset(a1, f1=="A") #f2 d/ f1=A f1_b<-subset(a1, f1=="B") #f2 d/ f1=B f1_a

Page 32: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

32

## ft fb f1 f2 resp ## 1 1 1 A 1 12.98 ## 2 2 1 A 2 5.47 ## 3 3 1 A 3 12.64 ## 4 4 1 A 4 6.33 ## 9 1 2 A 1 10.80 ## 10 2 2 A 2 7.06 ## 11 3 2 A 3 14.50 ## 12 4 2 A 4 23.66 ## 17 1 3 A 1 22.27 ## 18 2 3 A 2 2.51 ## 19 3 3 A 3 13.62 ## 20 4 3 A 4 10.87 ## 25 1 4 A 1 19.39 ## 26 2 4 A 2 5.01 ## 27 3 4 A 3 8.07 ## 28 4 4 A 4 2.61

Criaremos uma nova function

fu2<-function(x){ somqy<-tapply(x$resp,x$f2,sum)^2 n<-tapply(x$resp,x$f2,length) ter1<-sum(somqy/n) qsomy<-sum(tapply(x$resp,x$f2,sum))^2 t<-sum(n) ter2<-qsomy/t SQ<-ter1-ter2 GL<-length(somqy)-1 QM<-SQ/GL Fcal<- QM/(sum(residuals(ane0)^2)/df.residual(ane0)) PV<-round(c(pf(Fcal, GL, df.residual(ane0), lower.tail = FALSE)), dig=3) vetnum<-round(c(SQ,GL,QM,Fcal,PV),dig=3) return(vetnum) }

Aplicando a fu2 nos recortes

fu2(f1_a)

## [1] 264.021 3.000 88.007 3.391 0.037

fu2(f1_b)

## [1] 461.917 3.000 153.972 5.932 0.004

Reunindo numa matriz

ane2<-rbind(fu2(f1_a),fu2(f1_b))

Nomeando colunas e linhas

colnames(ane2)<-c("SQ", "GL", "QM", "Fcal", "P_valor") row.names(ane2)<-c("f2d/f1=A", "f2d/f1=B") ane2

## SQ GL QM Fcal P_valor ## f2d/f1=A 264.021 3 88.007 3.391 0.037 ## f2d/f1=B 461.917 3 153.972 5.932 0.004

Page 33: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

33

Neste caso o teste F não é conclusivo, pois temos mais de um contraste. Então faremos o teste de tukey paras as

medias de f2 dentro dos níveis f1

tapply(f1_a$resp, f1_a$f2, mean) # lembrando as medias f2 d progene A

## 1 2 3 4 ## 16.3600 5.0125 12.2075 10.8675

tapply(f1_b$resp, f1_b$f2, mean) # lembrando as medias f2 d progene B

## 1 2 3 4 ## 19.6200 4.9025 12.2400 15.3475

Depois de ter instalado o pacote no seu pc

require(agricolae) # carregando pacote

## Loading required package: agricolae

## Warning: package 'agricolae' was built under R version 3.2.3

f2d/f1_a

tk<-HSD.test(f1_a$resp,f1_a$f2,glresiduo,vresiduo/glresiduo, alpha=0.05,group=TRUE, main = NULL,console=FALSE) tk[5]

## $groups ## trt means M ## 1 1 16.3600 a ## 2 3 12.2075 ab ## 3 4 10.8675 ab ## 4 2 5.0125 b

f2d/f1_b

tk<-HSD.test(f1_b$resp,f1_b$f2,glresiduo,vresiduo/glresiduo, alpha=0.05,group=TRUE, main = NULL,console=FALSE) tk[5]

## $groups ## trt means M ## 1 1 19.6200 a ## 2 4 15.3475 a ## 3 3 12.2400 ab ## 4 2 4.9025 b

Fatorial triplo: dados simulados para experimento com milho

Obtenção rápida do QMr e teste de médias

Usaremos os dados simulados de um fatorial triplo com 12 tratamentos, sendo: 3 cultivares (A, B, C); 2 níveis de

calagem (0, 1); 2 níveis de aplicação de fósforo (0, 1); 3 variáveis resposta: produtividade (t/ha), teor de K no solo e

teor de N no solo

Importando e verificando os dados

a<-read.table("fat3_milho_sil.txt",h=T)# importando os dados str(a)

## 'data.frame': 36 obs. of 8 variables: ## $ trat : int 1 2 3 4 5 6 7 8 9 10 ...

Page 34: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

34

## $ bloc : int 1 1 1 1 1 1 1 1 1 1 ... ## $ cul : Factor w/ 3 levels "A","B","C": 1 1 1 1 2 2 2 2 3 3 ... ## $ cal : int 0 0 1 1 0 0 1 1 0 0 ... ## $ fos : int 0 1 0 1 0 1 0 1 0 1 ... ## $ tha : num 17.2 32.4 31.3 64.1 19.3 33.8 29.3 52 26.6 40.4 ... ## $ ksolo: num 23.7 59.2 64.9 40.4 26.1 ... ## $ nsolo: num 20.3 21.2 35.8 72.7 33.2 ...

head(a)

## trat bloc cul cal fos tha ksolo nsolo ## 1 1 1 A 0 0 17.2 23.71 20.34 ## 2 2 1 A 0 1 32.4 59.22 21.23 ## 3 3 1 A 1 0 31.3 64.91 35.80 ## 4 4 1 A 1 1 64.1 40.36 72.67 ## 5 5 1 B 0 0 19.3 26.15 33.16 ## 6 6 1 B 0 1 33.8 68.51 46.30

Transformando os dados em fator

ft<-as.factor(a$trat) # tratamentos fb<-as.factor(a$bloc) # bloco f1<-as.factor(a$cul) # cultivar f2<-as.factor(a$cal) # calagem f3<-as.factor(a$fos) # fósforo resp<-as.numeric(a$tha)# variável resposta

Reunindo em novo data frame

a1<-data.frame(ft,fb,f1,f2,f3,resp) head(a1)

## ft fb f1 f2 f3 resp ## 1 1 1 A 0 0 17.2 ## 2 2 1 A 0 1 32.4 ## 3 3 1 A 1 0 31.3 ## 4 4 1 A 1 1 64.1 ## 5 5 1 B 0 0 19.3 ## 6 6 1 B 0 1 33.8

Anova apenas com tratamentos

ane0 <-aov(resp~fb+ft, data=a1) summary(ane0)

## Df Sum Sq Mean Sq F value Pr(>F) ## fb 2 21 10.6 1.636 0.218 ## ft 11 7179 652.6 100.510 3.57e-16 *** ## Residuals 22 143 6.5 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

GLr<-df.residual(ane0) # gl do residuo GLr

## [1] 22

QMr<-sum(residuals(ane0)^2)/df.residual(ane0) QMr

## [1] 6.49303

Page 35: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

35

Comentário: já obtivemos o GLr e QMr, se não temos interesse em relalizar a decomposição dos efeitos dos fatores e

testá-los pelo teste F, então partiremos diretamente para o teste de médias. Utilizaremos o pacote agricolae

require(agricolae) # carregando pacote

## Loading required package: agricolae

## Warning: package 'agricolae' was built under R version 3.2.3

Teste de tukey para as médias de f1(cultivares) independentemente dos níveis de f2 e f3

tk1<-HSD.test(resp, f1, GLr, QMr, alpha = 0.05, group=TRUE, main = NULL,console=FALSE) tk1[[5]]

## trt means M ## 1 A 36.96667 a ## 2 C 36.61667 a ## 3 B 34.86667 a

OBS: adapte o comando tk1 para comparar as médias de f2 e f.

Agora vamos comparar as medias de f3 dentro dos níveis de f1 e f2

Tukey f1d/f2...d/f3...

levels(f2)# níveis de f2 calagem

levels(f3) # níveis de f3 fósforo

expand.grid(levels(f2),levels(f3)) # combina os níveis para lhe

## Var1 Var2 ## 1 0 0 ## 2 1 0 ## 3 0 1 ## 4 1 1

# auxiliar a nomear os recortes

Fazendo os recortes

f23_00<-subset(a1,f2=="0" & f3=="0") f23_10<-subset(a1,f2=="1" & f3=="0") f23_01<-subset(a1,f2=="0" & f3=="1") f23_11<-subset(a1,f2=="1" & f3=="1")

Criando uma função para o teste de Tukey considerando os desdobramentos. Lembre-se que o "objeto curinga" será o

recorte

futkd1<-function(x){ tkd1<-HSD.test(x$resp, x$f1, GLr, QMr, alpha = 0.05, group=TRUE, main = NULL,console=FALSE) tk<-tkd1[[5]] return(tk)}

Aplicando a futkd1

Page 36: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

36

futkd1(f23_00)

## trt means M ## 1 C 24.53333 a ## 2 B 19.90000 a ## 3 A 12.56667 b

futkd1(f23_10)

## trt means M ## 1 A 33.63333 a ## 2 B 32.50000 a ## 3 C 30.16667 a

futkd1(f23_01)

## trt means M ## 1 C 44.00000 a ## 2 B 36.20000 b ## 3 A 34.43333 b

futkd1(f23_11)

## trt means M ## 1 A 67.23333 a ## 2 B 50.86667 b ## 3 C 47.76667 b

Atividade 1: Veja que construimos 4 estruturas semelhantes com o comando HSD.test. Nelas só temos variação do recorte com os dados de entrada. Seria possível "automatizar" ainda mais aquela rotina?

Atividade 2: Compare as médias de f3(fosforo)dentro dos níveis de f2 (calagem)idependentemente do cultivar

levels(f2)

## [1] "0" "1"

# faz os recortes f2_0<-subset(a1,f2=="0") f2_1<-subset(a1,f2=="1")

futk3<-function(x){ tkd2<-HSD.test(x$resp,x$f3, GLr, QMr, alpha = 0.05, group=TRUE, main = NULL,console=FALSE) return(tkd2[[5]])}

Aplicando a função futk3 nos recortes de f2...

futk3(f2_0)

## trt means M ## 1 1 38.21111 a ## 2 0 19.00000 b

futk3(f2_1)

## trt means M ## 1 1 55.28889 a ## 2 0 32.10000 b

Atividade 3: Como você faria para as demais variáveis resposta?

Page 37: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

37

Atividade 4: Faça o teste de correlação entre as 3 variáveis resposta.

head(a) # lembrando quais são as variáveis resposta

## trat bloc cul cal fos tha ksolo nsolo ## 1 1 1 A 0 0 17.2 23.71 20.34 ## 2 2 1 A 0 1 32.4 59.22 21.23 ## 3 3 1 A 1 0 31.3 64.91 35.80 ## 4 4 1 A 1 1 64.1 40.36 72.67 ## 5 5 1 B 0 0 19.3 26.15 33.16 ## 6 6 1 B 0 1 33.8 68.51 46.30

require(agricolae)# o teste está em subrotinas do agricolae a[,6:8] # variáveis resposta de interesse para o teste

## tha ksolo nsolo ## 1 17.2 23.71 20.34 ## 2 32.4 59.22 21.23 ## 3 31.3 64.91 35.80 ## 4 64.1 40.36 72.67 ## 5 19.3 26.15 33.16 ## 6 33.8 68.51 46.30 ## 7 29.3 33.25 40.86 ## 8 52.0 119.66 53.95 ## 9 26.6 37.49 33.10 ## 10 40.4 63.59 48.83 ## 11 28.3 49.28 23.77 ## 12 46.5 118.79 53.12 ## 13 9.5 17.10 11.15 ## 14 36.1 84.61 60.38 ## 15 35.2 66.71 34.88 ## 16 66.2 120.29 99.49 ## 17 22.0 35.26 25.29 ## 18 39.1 58.36 30.40 ## 19 34.3 69.03 43.82 ## 20 52.0 116.25 87.44 ## 21 24.6 34.88 31.61 ## 22 44.6 104.89 35.84 ## 23 30.1 86.69 46.95 ## 24 49.3 82.15 65.91 ## 25 11.0 15.16 12.68 ## 26 34.8 63.61 27.07 ## 27 34.4 71.53 44.06 ## 28 71.4 44.94 120.02 ## 29 18.4 24.99 23.69 ## 30 35.7 72.40 28.63 ## 31 33.9 38.57 52.94 ## 32 48.6 111.86 65.07 ## 33 22.4 31.63 17.41 ## 34 47.0 74.03 60.12 ## 35 32.1 66.66 53.96 ## 36 47.5 29.93 61.09

cp<-correlation(a[,6:8],method="pearson") # aplica o teste de correlação

## ## Correlation Analysis ##

Page 38: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

38

## Method : pearson ## Alternative: two.sided

cp # na matriz $correlation temos os coeficientes

# na matriz $ pvalue temos os P_valores

## $correlation ## tha ksolo nsolo ## tha 1.00 0.62 0.88 ## ksolo 0.62 1.00 0.50 ## nsolo 0.88 0.50 1.00 ## ## $pvalue ## tha ksolo nsolo ## tha 1.000000e+00 5.995737e-05 9.392487e-13 ## ksolo 5.995737e-05 1.000000e+00 1.997065e-03 ## nsolo 9.392487e-13 1.997065e-03 1.000000e+00 ## ## $n.obs ## [1] 36

Fatorial triplo: dados simulados de um experimento com milho

Passo a passo

Fatorial triplo com dados simulados com 12 tratamentos, sendo: 3 cultivares; 2 níveis de calagem; 2 níveis de

aplicação de fósforo

a<-read.table("fat3_milho_sil.txt",h=T)# importando os dados head(a)

## trat bloc cul cal fos tha ksolo nsolo ## 1 1 1 A 0 0 17.2 23.71 20.34 ## 2 2 1 A 0 1 32.4 59.22 21.23 ## 3 3 1 A 1 0 31.3 64.91 35.80 ## 4 4 1 A 1 1 64.1 40.36 72.67 ## 5 5 1 B 0 0 19.3 26.15 33.16 ## 6 6 1 B 0 1 33.8 68.51 46.30

str(a)

## 'data.frame': 36 obs. of 8 variables: ## $ trat : int 1 2 3 4 5 6 7 8 9 10 ... ## $ bloc : int 1 1 1 1 1 1 1 1 1 1 ... ## $ cul : Factor w/ 3 levels "A","B","C": 1 1 1 1 2 2 2 2 3 3 ... ## $ cal : int 0 0 1 1 0 0 1 1 0 0 ... ## $ fos : int 0 1 0 1 0 1 0 1 0 1 ... ## $ tha : num 17.2 32.4 31.3 64.1 19.3 33.8 29.3 52 26.6 40.4 ... ## $ ksolo: num 23.7 59.2 64.9 40.4 26.1 ... ## $ nsolo: num 20.3 21.2 35.8 72.7 33.2 ...

Transformando os dados em fator

ft<-as.factor(a$trat) # tratamentos fb<-as.factor(a$bloc) f1<-as.factor(a$cul) # cultivar

Page 39: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

39

f2<-as.factor(a$cal) # calagem f3<-as.factor(a$fos) # fósforo resp<-as.numeric(a$tha)# variável resposta

Reunindo em novo data

a1<-data.frame(ft,fb,f1,f2,f3,resp) head(a1)

## ft fb f1 f2 f3 resp ## 1 1 1 A 0 0 17.2 ## 2 2 1 A 0 1 32.4 ## 3 3 1 A 1 0 31.3 ## 4 4 1 A 1 1 64.1 ## 5 5 1 B 0 0 19.3 ## 6 6 1 B 0 1 33.8

Anova apenas com tratamentos

ane0 <-aov(resp~fb+ft, data=a1) summary(ane0)

## Df Sum Sq Mean Sq F value Pr(>F) ## fb 2 21 10.6 1.636 0.218 ## ft 11 7179 652.6 100.510 3.57e-16 *** ## Residuals 22 143 6.5 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

df.residual(ane0) # gl do residuo

## [1] 22

sum(residuals(ane0)^2) # SQresiduo

## [1] 142.8467

QMr<-sum(residuals(ane0)^2)/df.residual(ane0) QMr

## [1] 6.49303

Função para SQs

fu1<-function(x){ term1<-sum((tapply(resp,x,sum)^2)/tapply(resp,x,length)) term2<-((sum(tapply(resp,x,sum)))^2)/sum(tapply(resp,x,length)) sq<-term1-term2 return(sq)}

Aplicando a fu1 para as SQs principais

vsq<-rbind(vb<-fu1(fb), vt<-fu1(ft), vtotal<-fu1(fb:f1:f2:f3), vresiduo<-fu1(fb:f1:f2:f3)-fu1(ft)-fu1(fb), vf1<-fu1(f1), vf2<-fu1(f2), vf3<-fu1(f3), vf12<-fu1(f1:f2)-fu1(f1)-fu1(f2), vf13<-fu1(f1:f3)-fu1(f1)-fu1(f3),

Page 40: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

40

vf23<-fu1(f2:f3)-fu1(f2)-fu1(f3), vf123<-fu1(f1:f2:f3)-vf1-vf2-vf3-vf12-vf13-vf23)

Outra maneira de obter a interação tripla seria:

vf123=fu1(f1:f2:f3)-fu1(f1:f2)-fu1(f1:f3)-fu1(f2:f3)+fu1(f1)+fu1(f2)+fu1(f3)

Conferindo os resultados:

Lembre-se de que os tratamentos encerram todos os efeitos simples da interação, portanto,

SQ(simples+interação)=SQtratamentos, então:

vt<-vf1+vf2+vf3+vf12+vf13+vf23+vf123 vt

Colocando nomes nas linhas

rownames(vsq)<-c("bloc", "trat","total", "res", "f1", "f2", "f3", "f1i2", "f1i3", "f2i3","f1i2i3") vsq

## [,1] ## bloc 21.24667 ## trat 7178.73667 ## total 7342.83000 ## res 142.84667 ## f1 30.38000 ## f2 2049.07111 ## f3 4044.96000 ## f1i2 751.01556 ## f1i3 194.24000 ## f2i3 35.60111 ## f1i2i3 73.46889

Calculando os gls

vgl<-c(glb<-length(levels(fb))-1, glt<-length(levels(ft))-1, gltotal<-length(levels(fb:f1:f2:f2))-1, glresiduo<-gltotal-glb-glt, gl1<-length(levels(f1))-1, gl2<-length(levels(f2))-1, gl3<-length(levels(f3))-1, gl1i2<-gl1*gl2, gl1i3<-gl1*gl3, gl2i3<-gl2*gl3, gl123<-gl1*gl2*gl3)

Reunindo em uma matriz

ane1<-cbind(vsq, vgl, vqm<-vsq/vgl, vfcal<-vqm/vqm[4,1], p_valor<-pf(vfcal, vgl, gltotal-glb-glt, lower.tail = FALSE))

Identificando as colunas

colnames(ane1)

Page 41: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

41

## [1] "" "vgl" "" "" ""

colnames(ane1)<-c("SQ", "GL", "QM", "Fcal", "P_valor") ane1

## SQ GL QM Fcal P_valor ## bloc 21.24667 2 10.62333 1.636113 2.175559e-01 ## trat 7178.73667 11 652.61242 100.509684 3.571169e-16 ## total 7342.83000 35 209.79514 32.310821 1.532895e-12 ## res 142.84667 22 6.49303 1.000000 5.000000e-01 ## f1 30.38000 2 15.19000 2.339432 1.198972e-01 ## f2 2049.07111 1 2049.07111 315.580094 1.561996e-14 ## f3 4044.96000 1 4044.96000 622.969524 1.242833e-17 ## f1i2 751.01556 2 375.50778 57.832439 1.736180e-09 ## f1i3 194.24000 2 97.12000 14.957577 7.914325e-05 ## f2i3 35.60111 1 35.60111 5.482973 2.866498e-02 ## f1i2i3 73.46889 2 36.73444 5.657519 1.041372e-02

Arredondando os valores

round(ane1,dig=3)

## SQ GL QM Fcal P_valor ## bloc 21.247 2 10.623 1.636 0.218 ## trat 7178.737 11 652.612 100.510 0.000 ## total 7342.830 35 209.795 32.311 0.000 ## res 142.847 22 6.493 1.000 0.500 ## f1 30.380 2 15.190 2.339 0.120 ## f2 2049.071 1 2049.071 315.580 0.000 ## f3 4044.960 1 4044.960 622.970 0.000 ## f1i2 751.016 2 375.508 57.832 0.000 ## f1i3 194.240 2 97.120 14.958 0.000 ## f2i3 35.601 1 35.601 5.483 0.029 ## f1i2i3 73.469 2 36.734 5.658 0.010

Anova dos desdobramentos

levels(f1)

## [1] "A" "B" "C"

levels(f2)

## [1] "0" "1"

levels(f3)

## [1] "0" "1"

Qual cultivar produz mais dentro de cada nível de calagem e adubo? desdobraremos f1 d/f2... d/f3...

Faremos os recortes no banco de dados

expand.grid(levels(f2),levels(f3))#cobinações possíveis

## Var1 Var2 ## 1 0 0 ## 2 1 0 ## 3 0 1 ## 4 1 1

Page 42: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

42

Fazendo os recortes no banco de dados

f23_00<-subset(a1, f2=="0"&f3=="0") #f1 d/f2=0 d/f3=0 f23_10<-subset(a1, f2=="1"&f3=="0") #f1 d/f2=1 d/f3=0 f23_01<-subset(a1, f2=="0"&f3=="1") #f1 d/f2=0 d/f3=1 f23_11<-subset(a1, f2=="1"&f3=="1") #f1 d/f2=1 d/f3=1

Criaremos uma nova function

fu2<-function(x){ somqy<-tapply(x$resp,x$f1,sum)^2 n<-tapply(x$resp,x$f1,length) ter1<-sum(somqy/n) qsomy<-sum(tapply(x$resp,x$f1,sum))^2 t<-sum(n) ter2<-qsomy/t SQ<-ter1-ter2 GL<-length(somqy)-1 QM<-SQ/GL Fcal<- QM/(sum(residuals(ane0)^2)/df.residual(ane0)) PV<-round(c(pf(Fcal, GL, df.residual(ane0), lower.tail = FALSE)), dig=3) vetnum<-round(c(SQ,GL,QM,Fcal,PV),dig=3) return(vetnum) }

Aplicando a função fu2 aos recortes

fu2(f23_00)

## [1] 218.447 2.000 109.223 16.822 0.000

fu2(f23_10)

## [1] 18.747 2.000 9.373 1.444 0.258

fu2(f23_01)

## [1] 155.482 2.000 77.741 11.973 0.000

fu2(f23_11)

## [1] 656.429 2.000 328.214 50.549 0.000

Reunindo numa matriz

ane2<-rbind(fu2(f23_00), fu2(f23_10), fu2(f23_01), fu2(f23_11)) ane2

## [,1] [,2] [,3] [,4] [,5] ## [1,] 218.447 2 109.223 16.822 0.000 ## [2,] 18.747 2 9.373 1.444 0.258 ## [3,] 155.482 2 77.741 11.973 0.000 ## [4,] 656.429 2 328.214 50.549 0.000

Nomeando colunas

colnames(ane2)<-c("SQ", "GL", "QM", "Fcal", "P_valor") row.names(ane2)<-c("f1d/f2=0 d/f3=0",

Page 43: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

43

"f1d/f2=1 d/f3=0", "f1d/f2=0 d/f3=1", "f1d/f2=1 d/f3=1") ane2

## SQ GL QM Fcal P_valor ## f1d/f2=0 d/f3=0 218.447 2 109.223 16.822 0.000 ## f1d/f2=1 d/f3=0 18.747 2 9.373 1.444 0.258 ## f1d/f2=0 d/f3=1 155.482 2 77.741 11.973 0.000 ## f1d/f2=1 d/f3=1 656.429 2 328.214 50.549 0.000

Neste caso o teste F não é conclusivo, pois temos mais de um contraste para níveis de f1. Então faremos o teste de

Tukey para as médias de f1 d/ dos níveis f2 e f3

tapply(f23_00$resp, f23_00$f1, mean) # mostra as medias

## A B C ## 12.56667 19.90000 24.53333

tapply(f23_01$resp, f23_01$f1, mean)

## A B C ## 34.43333 36.20000 44.00000

tapply(f23_10$resp, f23_10$f1, mean)

## A B C ## 33.63333 32.50000 30.16667

tapply(f23_11$resp, f23_11$f1, mean)

## A B C ## 67.23333 50.86667 47.76667

Depois de ter instalado o pacoteagricolae no seu pc

require(agricolae) # carregando pacote

## Loading required package: agricolae

## Warning: package 'agricolae' was built under R version 3.2.3

Criando uma função para o teste de Tukey para f1 d/f2...d/f3...

fu3<-function(x){ tk<-HSD.test(x$resp,x$f1,glresiduo,QMr, alpha=0.05,group=TRUE, main = NULL,console=FALSE) return(tk[5]) }

Aplicando a função fu3 aos recortes

fu3(f23_00)# f1 d/f2=0 d/f3=0

## $groups ## trt means M ## 1 C 24.53333 a ## 2 B 19.90000 a ## 3 A 12.56667 b

fu3(f23_01)

Page 44: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

44

## $groups ## trt means M ## 1 C 44.00000 a ## 2 B 36.20000 b ## 3 A 34.43333 b

fu3(f23_10)

## $groups ## trt means M ## 1 A 33.63333 a ## 2 B 32.50000 a ## 3 C 30.16667 a

fu3(f23_11)

## $groups ## trt means M ## 1 A 67.23333 a ## 2 B 50.86667 b ## 3 C 47.76667 b

Parcelas subdivididas: produtividade de milho

Usando o ExpDes

Exemplo adaptado de Banzatto & Kronka (2008), sendo resp= produtividade de milho em kg/ha; bloc= blocos (4).

Fatorial (4 x 3), sendo:

4 adubos(f1)= adubaçao com salitre do chile (sc), sulfato de amonio (sa), ureia(u), calnitro (cn)

3 dos(f2)= doses de N ( 10, 40 ou 70 kg/ha)

Experimento em parcelas subdividas, sendo:

parc= bloc x adu (16)

spar= bloc x adu x dos (48)

Os objetivos são:

1. comparar as fontes(f1) independentemente de dose(f2)

2. comparar as doses(f2) dentro de cada fonte(f1)

3. comparar as fontes(f1) dentro de cada dose(f2)

Importando os dados.

a<-read.table("par_sub2.txt", h=T) head(a)

## par spar bloc adu dos resp ## 1 1sc 1sc10 1 sc 10 2747 ## 2 1sc 1sc40 1 sc 40 2889 ## 3 1sc 1sc70 1 sc 70 3578 ## 4 1sa 1sa10 1 sa 10 3164 ## 5 1sa 1sa40 1 sa 40 3831 ## 6 1sa 1sa70 1 sa 70 4107

str(a)

## 'data.frame': 48 obs. of 6 variables: ## $ par : Factor w/ 16 levels "1cn","1sa","1sc",..: 3 3 3 2 2 2 4 4 4 1 ... ## $ spar: Factor w/ 48 levels "1cn10","1cn40",..: 7 8 9 4 5 6 10 11 12 1 ... ## $ bloc: int 1 1 1 1 1 1 1 1 1 1 ...

Page 45: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

45

## $ adu : Factor w/ 4 levels "cn","sa","sc",..: 3 3 3 2 2 2 4 4 4 1 ... ## $ dos : int 10 40 70 10 40 70 10 40 70 10 ... ## $ resp: int 2747 2889 3578 3164 3831 4107 1902 2547 3364 2978 ...

Observe acima que os vetores das parcelas e subparcelas foram definidos anteriormente no próprio Excel. Nesta

rotina não usaremos estes vetores, pois o ExpDes já faz as combinações com os fatores em estudo para obtenção das

parcelas e subparcelas. Porém manteremos a estrutura da tabela de dados para ser utilizada em exemplos posteriores

onde aqueles vetores serão necessários.

Tranformando em fator

fspar<-as.factor(a$spar) # subparcelas fpar<-as.factor(a$par) # parcelas fb<-as.factor(a$bloc) f1<-as.factor(a$adu) f2<-as.factor(a$dos) resp<-as.numeric(a$resp)

Conferindo o obejeto a1

length(levels(fspar)) # são 48 subparcelas

## [1] 48

length(levels(fpar)) # são 16 parcelas

## [1] 16

length(levels(fb)) # são 4 blocos

## [1] 4

Usaremos o pacote ExpDes. Ao ativá-lo poderá aparecer uma mensagem de advertência a respeito da versão do R

mais recomendada. Mas usaremos a versão do R3.2.0 sem maiores problemas.

require(ExpDes)

## Loading required package: ExpDes

## Warning: package 'ExpDes' was built under R version 3.2.5

No consol, faça uma busca com a palavra-chave split, relacionada a parcelas subdivididas. rbd diz respeito a

radomized blocs design

??split2.rbd

## starting httpd help server ...

## done

Copie a estrutura da rotina na janela do help e cole no editor do Rstudio. Posteriormente informe quais são os

vetores dos fatores (f1,f2,fb) e da variável resposta(resp) em estudo. Informe se os fatores são qualitativos(TRUE) ou

quantitativos(FALSE); se qualitativos qual o teste de médias será usado (tukey); em fac.names informe quais os

nomes de saída dos fatores; e finalmente defina quais os níveis de alpha para o teste F e Tukey(ou para o teste de

médias).

split2.rbd(f1, f2, fb, resp, quali = c(TRUE, TRUE), mcomp = "tukey", fac.names = c("Adubo", "Dose"), sigT = 0.05, sigF = 0.05)

## ------------------------------------------------------------------------ ## Legend: ## FACTOR 1 (plot): Adubo

Page 46: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

46

## FACTOR 2 (split-plot): Dose ## ------------------------------------------------------------------------ ## ## ------------------------------------------------------------------------ ## $`Analysis of Variance Table\n------------------------------------------------------------------------\n` ## DF SS MS Fc Pr(>Fc) ## Adubo 3 2486093 828698 2.5815 0.11818 ## Block 3 3198892 1066297 3.3216 0.07058 . ## Error a 9 2889146 321016 ## Dose 2 4703630 2351815 31.5765 < 2e-16 *** ## Adubo*Dose 6 1286153 214359 2.8781 0.02945 * ## Error b 24 1787519 74480 ## Total 47 16351434 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## ------------------------------------------------------------------------ ## CV 1 = 18.63581 % ## CV 2 = 8.976448 % ## ## ## ## Significant interaction: analyzing the interaction ## ------------------------------------------------------------------------ ## ## Analyzing Adubo inside of each level of Dose ## ------------------------------------------------------------------------ ## DF SS MS Fc p.value ## Adubo : Dose 10 3.00000 933524.5 311174.8 1.986323 0.152462 ## Adubo : Dose 40 3.00000 1856524.2 618841.4 3.950252 0.025249 ## Adubo : Dose 70 3.00000 982197.5 327399.2 2.089888 0.13765 ## Pooled Error 17.84912 2796221.2 156658.7 ## ------------------------------------------------------------------------ ## ## ## Adubo inside of Dose 10 ## ------------------------------------------------------------------------ ## According to F test, the means of this factor are not different. ## ## Levels Means ## 1 cn 2732.25 ## 2 sa 3045.50 ## 3 sc 2666.75 ## 4 u 2365.50 ## ------------------------------------------------------------------------ ## ## Adubo inside of Dose 40 ## ------------------------------------------------------------------------ ## Tukey's test ## ------------------------------------------------------------------------ ## Groups Treatments Means ## a sa 3541 ## ab u 2865 ## ab sc 2752.25 ## b cn 2687.25 ## ------------------------------------------------------------------------

Page 47: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

47

## ## Adubo inside of Dose 70 ## ------------------------------------------------------------------------ ## According to F test, the means of this factor are not different. ## ## Levels Means ## 1 cn 3193.50 ## 2 sa 3619.00 ## 3 sc 3776.75 ## 4 u 3238.75 ## ------------------------------------------------------------------------ ## ## ## Analyzing Dose inside of each level of Adubo ## ------------------------------------------------------------------------ ## DF SS MS Fc p.value ## Dose : Adubo cn 2 628087.5 314043.75 4.216486 0.026958 ## Dose : Adubo sa 2 774008.7 387004.33 5.196086 0.013336 ## Dose : Adubo sc 2 3052014.0 1526007.00 20.488823 6e-06 ## Dose : Adubo u 2 1535673.2 767836.58 10.309303 0.000587 ## Error b 24 1787519.3 74479.97 ## ------------------------------------------------------------------------ ## ## ## Dose inside of Adubo cn ## ------------------------------------------------------------------------ ## Tukey's test ## ------------------------------------------------------------------------ ## Groups Treatments Means ## a 70 3193.5 ## ab 10 2732.25 ## b 40 2687.25 ## ------------------------------------------------------------------------ ## ------------------------------------------------------------------------ ## ## ## Dose inside of Adubo sa ## ------------------------------------------------------------------------ ## Tukey's test ## ------------------------------------------------------------------------ ## Groups Treatments Means ## a 70 3619 ## a 40 3541 ## b 10 3045.5 ## ------------------------------------------------------------------------ ## ------------------------------------------------------------------------ ## ## ## Dose inside of Adubo sc ## ------------------------------------------------------------------------ ## Tukey's test ## ------------------------------------------------------------------------ ## Groups Treatments Means ## a 70 3776.75 ## b 40 2752.25 ## b 10 2666.75 ## ------------------------------------------------------------------------

Page 48: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

48

## ------------------------------------------------------------------------ ## ## ## Dose inside of Adubo u ## ------------------------------------------------------------------------ ## Tukey's test ## ------------------------------------------------------------------------ ## Groups Treatments Means ## a 70 3238.75 ## a 40 2865 ## b 10 2365.5 ## ------------------------------------------------------------------------ ## ------------------------------------------------------------------------

Parcelas subdivididas: produtividade de milho

Obetenção rápida do QMr e teste de médias

Exemplo adaptado de Banzatto & Kronka (2008), sendo resp= produtividade de milho em kg/ha; bloc= blocos (4).

Fatorial (4 x 3), sendo:

4 adu(f1)= adubaçao com salitre do chile (sc), sulfato de amonio (sa), ureia(u), calnitro (cn)

3 dos(f2)= doses de N ( 10, 40 ou 70 kg/ha)

Experimento em parcelas subdividas, sendo:

parc= bloc x adu (16)

spar= bloc x adu x dos (48)

Os objetivos são:

1. comparar as fontes(f1) independentemente de dose(f2)

2. comparar as doses(f2) dentro de cada fonte(f1)

3. comparar as fontes(f1) dentro de cada dose(f2)

Importando os dados

a<-read.table("par_sub2.txt", h=T) head(a)

## par spar bloc adu dos resp ## 1 1sc 1sc10 1 sc 10 2747 ## 2 1sc 1sc40 1 sc 40 2889 ## 3 1sc 1sc70 1 sc 70 3578 ## 4 1sa 1sa10 1 sa 10 3164 ## 5 1sa 1sa40 1 sa 40 3831 ## 6 1sa 1sa70 1 sa 70 4107

str(a)

## 'data.frame': 48 obs. of 6 variables: ## $ par : Factor w/ 16 levels "1cn","1sa","1sc",..: 3 3 3 2 2 2 4 4 4 1 ... ## $ spar: Factor w/ 48 levels "1cn10","1cn40",..: 7 8 9 4 5 6 10 11 12 1 ... ## $ bloc: int 1 1 1 1 1 1 1 1 1 1 ... ## $ adu : Factor w/ 4 levels "cn","sa","sc",..: 3 3 3 2 2 2 4 4 4 1 ... ## $ dos : int 10 40 70 10 40 70 10 40 70 10 ... ## $ resp: int 2747 2889 3578 3164 3831 4107 1902 2547 3364 2978 ...

Tranformando em fator

fspar<-as.factor(a$spar) # subparcelas fpar<-as.factor(a$par) # parcelas fb<-as.factor(a$bloc)

Page 49: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

49

f1<-as.factor(a$adu) f2<-as.factor(a$dos) resp<-as.numeric(a$resp)

Gerando novo data.frame

a1<-data.frame(fspar,fpar,fb,f1,f2,resp) head(a1)

## fspar fpar fb f1 f2 resp ## 1 1sc10 1sc 1 sc 10 2747 ## 2 1sc40 1sc 1 sc 40 2889 ## 3 1sc70 1sc 1 sc 70 3578 ## 4 1sa10 1sa 1 sa 10 3164 ## 5 1sa40 1sa 1 sa 40 3831 ## 6 1sa70 1sa 1 sa 70 4107

str(a1)

## 'data.frame': 48 obs. of 6 variables: ## $ fspar: Factor w/ 48 levels "1cn10","1cn40",..: 7 8 9 4 5 6 10 11 12 1 ... ## $ fpar : Factor w/ 16 levels "1cn","1sa","1sc",..: 3 3 3 2 2 2 4 4 4 1 ... ## $ fb : Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 1 1 1 1 1 ... ## $ f1 : Factor w/ 4 levels "cn","sa","sc",..: 3 3 3 2 2 2 4 4 4 1 ... ## $ f2 : Factor w/ 3 levels "10","40","70": 1 2 3 1 2 3 1 2 3 1 ... ## $ resp : num 2747 2889 3578 3164 3831 ...

Conferindo o objeto a1

length(levels(fspar))

## [1] 48

length(levels(fpar))

## [1] 16

length(levels(fb))

## [1] 4

Anova geral

ane00<-summary(aov (resp~fb+(f1+f2)^2+Error(fb/f1))) ane00

## ## Error: fb ## Df Sum Sq Mean Sq ## fb 3 3198892 1066297 ## ## Error: fb:f1 ## Df Sum Sq Mean Sq F value Pr(>F) ## f1 3 2486093 828698 2.581 0.118 ## Residuals 9 2889146 321016 ## ## Error: Within ## Df Sum Sq Mean Sq F value Pr(>F) ## f2 2 4703630 2351815 31.576 1.9e-07 *** ## f1:f2 6 1286153 214359 2.878 0.0295 * ## Residuals 24 1787519 74480

Page 50: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

50

## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Porém para retirar as SQ e GL usaremos a ane01 abaixo

ane01<-aov(resp~fb+(f1+f2)^2+Error(fb/f1)) ane01

## ## Call: ## aov(formula = resp ~ fb + (f1 + f2)^2 + Error(fb/f1)) ## ## Grand Mean: 3040.292 ## ## Stratum 1: fb ## ## Terms: ## fb ## Sum of Squares 3198892 ## Deg. of Freedom 3 ## ## Estimated effects may be unbalanced ## ## Stratum 2: fb:f1 ## ## Terms: ## f1 Residuals ## Sum of Squares 2486093 2889146 ## Deg. of Freedom 3 9 ## ## Residual standard error: 566.583 ## 6 out of 9 effects not estimable ## Estimated effects may be unbalanced ## ## Stratum 3: Within ## ## Terms: ## f2 f1:f2 Residuals ## Sum of Squares 4703630 1286153 1787519 ## Deg. of Freedom 2 6 24 ## ## Residual standard error: 272.9102 ## Estimated effects may be unbalanced

Extraindo GLr e SQr relativa a parcelas (resíduo_a) da ane01.

GLra<-df.residual(ane01[[3]]) # GLresiduo_a GLra

## [1] 9

SQra<-sum(residuals(ane01[[3]])^2) # SQresidua_a QMra<-SQra/GLra QMra

## [1] 321016.3

Extraindo GLr e SQr relativa a subparcelas (resíduo_b)

Page 51: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

51

GLrb<-df.residual(ane01[[4]]) # GLresiduo_b SQrb<-sum(residuals(ane01[[4]])^2) # SQresidua_b QMrb<-SQrb/GLrb QMrb

## [1] 74479.97

Comentário: Já obtivemos os GLr e QMr, se não temos interesse em realizar a decomposição dos efeitos dos fatores e

testá-los pelo teste F,então partiremos diretamente para o teste de médias.

Utilizaremos o pacote agricolae

require(agricolae) # carregando pacote

## Loading required package: agricolae

## Warning: package 'agricolae' was built under R version 3.2.3

Efeito dos adubos(f1) com Tukey, independentemente da dose(f2)

OBS: usaremos o GLra e QMra

levels(f1) #apenas conferindo os níveis f1

## [1] "cn" "sa" "sc" "u"

Aplicando o teste de tukey para f1

tk1<-HSD.test(resp, f1, GLra,QMra,alpha=0.05, group=TRUE, main = NULL,console=FALSE) tk1[5] #tente rodar com com alpha 0.20!

## $groups ## trt means M ## 1 sa 3401.833 a ## 2 sc 3065.250 a ## 3 cn 2871.000 a ## 4 u 2823.083 a

Anova e Tukey f2 d/f1, ou seja, doses dentro de níveis de adubo

OBS: usaremos QMrb e Glrb

levels(f1)# lembrando os niveis de f1

## [1] "cn" "sa" "sc" "u"

Recortes de interesse

f1_cn<-subset(a1, f1=="cn") f1_sa<-subset(a1, f1=="sa") f1_sc<-subset(a1, f1=="sc") f1_u<-subset(a1, f1=="u") f1_cn # observe os níveis de f1 e f2 no recorte

## fspar fpar fb f1 f2 resp ## 10 1cn10 1cn 1 cn 10 2978 ## 11 1cn40 1cn 1 cn 40 3451 ## 12 1cn70 1cn 1 cn 70 3742 ## 22 2cn10 2cn 2 cn 10 2769 ## 23 2cn40 2cn 2 cn 40 2258

Page 52: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

52

## 24 2cn70 2cn 2 cn 70 2498 ## 34 3cn10 3cn 3 cn 10 2640 ## 35 3cn40 3cn 3 cn 40 2478 ## 36 3cn70 3cn 3 cn 70 3458 ## 46 4cn10 4cn 4 cn 10 2542 ## 47 4cn40 4cn 4 cn 40 2562 ## 48 4cn70 4cn 4 cn 70 3076

Teste de Tukey para f2 d/f1, ou seja, dose d/adubo. Lembre-se que já fizemos os recortes de a1 e que neste caso

usaremos o GLrb e QMrb

futk1<-function(x){ tk<-HSD.test(x$resp,x$f2,GLrb,QMrb,alpha = 0.05, group=TRUE, main = NULL,console=FALSE) return(tk[[5]]) }

Aplicando a futk1 nos recortes

futk1(f1_cn) # Tukey para f2 d/f1=cn

## trt means M ## 1 70 3193.50 a ## 2 10 2732.25 ab ## 3 40 2687.25 b

futk1(f1_sa)

## trt means M ## 1 70 3619.0 a ## 2 40 3541.0 a ## 3 10 3045.5 b

futk1(f1_sc)

## trt means M ## 1 70 3776.75 a ## 2 40 2752.25 b ## 3 10 2666.75 b

futk1(f1_u)

## trt means M ## 1 70 3238.75 a ## 2 40 2865.00 a ## 3 10 2365.50 b

Tukey f1 d/f2

Uma situação comum, porém que exige de rotinas mais elaboras é testar os níveis do fator 1 dentro dos níveis do

fator 2. Para comparar médias de f1 d/f2 faz-se necessário calcular um novo GLrm e QMrm (m=médio).Mais

detalhes em Pimentel Gomes (2008), v15, ed15, pg165-171.

Calculando a variância comum (QMrm)

QMra # calculado anteriormente

QMrb # calculado anteriormente

Page 53: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

53

n2= número de níves de f2

n2<-length(levels(f2)) # nº niveis do fator em estudo(f2) QMrm<-(QMra+QMrb*(n2-1))/n2 QMrm # QMrmédio

## [1] 156658.7

Calculando o GL médio a f1 e f2

Sabemos que a fórmula é:

GLrm=(QMra+((n2-1)QMrb))2/(((QMra

2)/GLra)+((((n2-1)QMrb)^2)/GLrb))

Para evitar erros de digitação vamos simplificar a formula:

GLrm = (termo1)^2/(termo2+termo3)

Agora detalharemos mais os termos:

termo1<-QMra+((n2-1)*QMrb) termo2<-(QMra^2)/GLra termo3<-(((n2-1)*QMrb)^2)/GLrb

Montaremos a equação para obter o GLr médio

GLrm<-((termo1)^2)/(termo2+termo3) GLrm<-round(GLrm, dig=0) #arredonda GLrm

## [1] 18

Antes de aplicar o teste de Tukey para f1 d/f2 faremos os recortes no banco de dados(a1)

levels(f2)# lembrando as doses

## [1] "10" "40" "70"

f2_10<-subset(a1, f2=="10") #recortando f2_40<-subset(a1, f2=="40") f2_70<-subset(a1, f2=="70")

Criando uma função para o teste de Tukey

futk2<-function(x){ tk<-HSD.test(x$resp, x$f1, GLrb,QMrb, alpha = 0.05, group=TRUE, main = NULL,console=FALSE) tk<-tk[5] return(tk)}

Aplicando a função futk2 nos recortes

futk2(f2_10) # f1 d/f2=10

## $groups ## trt means M ## 1 sa 3045.50 a ## 2 cn 2732.25 ab ## 3 sc 2666.75 ab ## 4 u 2365.50 b

Page 54: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

54

futk2(f2_40) # f1 d/f2=40

## $groups ## trt means M ## 1 sa 3541.00 a ## 2 u 2865.00 b ## 3 sc 2752.25 b ## 4 cn 2687.25 b

futk2(f2_70) # f1 d/f2=70

## $groups ## trt means M ## 1 sc 3776.75 a ## 2 sa 3619.00 ab ## 3 u 3238.75 b ## 4 cn 3193.50 b

Parcelas subdivididas: produtividade de milho

Passo a passo

Exemplo adaptado de Banzatto & Kronka (2008), sendo: resp= produtividade de milho em kg/ha, bloc= blocos (4).

Fatorial (4 x 3), sendo:

4 adu(f1)= adubaçao com salitre do chile (sc), sulfato de amonio (sa), ureia(u), calnitro (cn)

3 dos(f2)= doses de N ( 10, 40 ou 70 kg/ha)

Experimento em parcelas subdividas, sendo:

parc= bloc x adu (16)

spar= bloc x adu x dos (48)

Os objetivos são:

1. comparar as fontes(f1) independentemente de dose(f2)

2. comparar as doses(f2) dentro de cada fonte(f1)

3. comparar as fontes(f1) dentro de cada dose(f2)

Importando os dados

a<-read.table("par_sub2.txt", h=T) head(a)

## par spar bloc adu dos resp ## 1 1sc 1sc10 1 sc 10 2747 ## 2 1sc 1sc40 1 sc 40 2889 ## 3 1sc 1sc70 1 sc 70 3578 ## 4 1sa 1sa10 1 sa 10 3164 ## 5 1sa 1sa40 1 sa 40 3831 ## 6 1sa 1sa70 1 sa 70 4107

str(a)

## 'data.frame': 48 obs. of 6 variables: ## $ par : Factor w/ 16 levels "1cn","1sa","1sc",..: 3 3 3 2 2 2 4 4 4 1 ... ## $ spar: Factor w/ 48 levels "1cn10","1cn40",..: 7 8 9 4 5 6 10 11 12 1 ... ## $ bloc: int 1 1 1 1 1 1 1 1 1 1 ... ## $ adu : Factor w/ 4 levels "cn","sa","sc",..: 3 3 3 2 2 2 4 4 4 1 ... ## $ dos : int 10 40 70 10 40 70 10 40 70 10 ... ## $ resp: int 2747 2889 3578 3164 3831 4107 1902 2547 3364 2978 ...

Page 55: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

55

Tranformando

fspar<-as.factor(a$spar) # subparcelas fpar<-as.factor(a$par) # parcelas fb<-as.factor(a$bloc) f1<-as.factor(a$adu) f2<-as.factor(a$dos) resp<-as.numeric(a$resp)

Gerando um novo data.frame

a1<-data.frame(fspar,fpar,fb,f1,f2,resp) head(a1)

## fspar fpar fb f1 f2 resp ## 1 1sc10 1sc 1 sc 10 2747 ## 2 1sc40 1sc 1 sc 40 2889 ## 3 1sc70 1sc 1 sc 70 3578 ## 4 1sa10 1sa 1 sa 10 3164 ## 5 1sa40 1sa 1 sa 40 3831 ## 6 1sa70 1sa 1 sa 70 4107

str(a1)

## 'data.frame': 48 obs. of 6 variables: ## $ fspar: Factor w/ 48 levels "1cn10","1cn40",..: 7 8 9 4 5 6 10 11 12 1 ... ## $ fpar : Factor w/ 16 levels "1cn","1sa","1sc",..: 3 3 3 2 2 2 4 4 4 1 ... ## $ fb : Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 1 1 1 1 1 ... ## $ f1 : Factor w/ 4 levels "cn","sa","sc",..: 3 3 3 2 2 2 4 4 4 1 ... ## $ f2 : Factor w/ 3 levels "10","40","70": 1 2 3 1 2 3 1 2 3 1 ... ## $ resp : num 2747 2889 3578 3164 3831 ...

Conferindo o objeto a1

length(levels(fspar))

## [1] 48

length(levels(fpar))

## [1] 16

length(levels(fb))

## [1] 4

1ª parte da anova:

Relativa a parcelas, servirá para fb, f1 e fpar. A SQ do resíduo_a será calculada por diferença. Trabalharemos

inicialmente apenas com SQ e GL. Após montado o quadro calculamos o QM, F e PV de uma só vez.

fu1<-function(x){ y<-tapply(resp,x,sum) n<-tapply(resp,x,length) ter1<-sum((y^2)/n) ter2<-((sum(y))^2)/sum(n) SQ<-ter1-ter2 GL<-length(y)-1 vetnum<-round(c(SQ,GL),dig=3) return(vetnum) }

Page 56: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

56

Matriz dos GL e SQ dos fatores principais da parte da anova relativa à parcelas

sqp<-rbind(fu1(fb),fu1(f1),fu1(fpar)) vra<-c(sqra<-fu1(fpar)[1]-fu1(fb)[1]-fu1(f1)[1], glra<-fu1(fpar)[2]-fu1(fb)[2]-fu1(f1)[2]) # juntando em uma matriz anep<-rbind(fu1(fb),fu1(f1),fu1(fpar), c(sqra<-fu1(fpar)[1]-fu1(fb)[1]-fu1(f1)[1], glra<-fu1(fpar)[2]-fu1(fb)[2]-fu1(f1)[2])) rownames(anep)<-c("fb", "f1", "fpar", "res (a)") anep

## [,1] [,2] ## fb 3198892 3 ## f1 2486093 3 ## fpar 8574131 15 ## res (a) 2889146 9

Calculando QM, F, P_valor

vqmp<-anep[,1]/anep[,2] vfcal<-(anep[,1]/anep[,2])/glra vp_valor<-signif(pf(vfcal, anep[,2], glra, lower.tail = FALSE, log.p = FALSE), dig=3) anep<-cbind(anep,vqmp,vfcal, vp_valor) colnames(anep)<-c("SQ", "GL", "QM", "Fcal", "P_valor") anep

## SQ GL QM Fcal P_valor ## fb 3198892 3 1066297.2 118477.47 5.35e-21 ## f1 2486093 3 828697.7 92077.52 1.66e-20 ## fpar 8574131 15 571608.8 63512.08 9.98e-21 ## res (a) 2889146 9 321016.3 35668.47 2.17e-19

GLra<-glra # precisaremos dele no teste de tukey QMra<-sqra/glra # precisaremos dele no teste de tukey

2ª parte da anova

Calcularemos a SQ e o GL para f2 e fspar usando a fu1(...). Também usaremos a fu1(...) para SQ bruta de f1:f2 e por

diferença obteremos a SQ da interação f1i2. O GL da f1i2 é obtido através do glf1*glf2. Por diferença calcularemos

a SQ e GL do resíduo b.

fu1(f2) # sq e gl do fator 2

## [1] 4703630 2

fu1(fspar) # sq e gl da subparcela

## [1] 16351434 47

fu1(f1:f2)[1] # efeito bruto f1:f2

## [1] 8475876

vf1i2<-c(sqf1i2<-fu1(f1:f2)[1]-fu1(f1)[1]-fu1(f2)[1], # sq interação f1i2 glf1i2<-fu1(f1)[2]*fu1(f2)[2]) # gl interação f1i2 vresb<-c(sqrb<-fu1(fspar)[1]-sqf1i2-fu1(f2)[1]-fu1(fpar)[1],glrb<-fu1(fspar)[2]-glf1i2-fu1(f2)[2]-fu1(fpar)[2])

Page 57: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

57

# juntando em uma matriz anesp # pense na sequencia de linhas abaixo: # vetor de sq e gl do f2 # vetor de sq e gl da f1if2 # vetor de sq e gl da suparcela # vetor de sq e gl do resíduo b # reuna os obj com os vetores na sequencia e # depois junte com o rbind. Não se esqueça de usar "," entre os objs anesp<-rbind(fu1(f2), vf1i2<-c(sqf1i2<-fu1(f1:f2)[1]-fu1(f1)[1]-fu1(f2)[1], glf1i2<-fu1(f1)[2]*fu1(f2)[2]), fu1(fspar), vresb<-c(sqrb<-fu1(fspar)[1]-sqf1i2-fu1(f2)[1]-fu1(fpar)[1], glrb<-fu1(fspar)[2]-glf1i2-fu1(f2)[2]-fu1(fpar)[2])) rownames(anesp)<-c("f2", "f1if2", "fspar", "res (b)") anesp

## [,1] [,2] ## f2 4703630 2 ## f1if2 1286153 6 ## fspar 16351434 47 ## res (b) 1787519 24

vqm<-anesp[,1]/anesp[,2] vfcal<-anesp[,1]/anesp[,2]/(sqrb/glrb) vp_valor<-signif(pf(vfcal, anesp[,2],glrb ,lower.tail =FALSE, log.p = FALSE), dig=4) # reunindo numa matriz anesp anesp<-cbind(anesp, vqm,vfcal,vp_valor) colnames(anesp)<-c("SQ", "GL", "QM", "Fcal", "P_valor") anesp

## SQ GL QM Fcal P_valor ## f2 4703630 2 2351815.08 31.576476 1.902e-07 ## f1if2 1286153 6 214358.86 2.878074 2.945e-02 ## fspar 16351434 47 347902.85 4.671093 6.754e-05 ## res (b) 1787519 24 74479.97 1.000000 5.000e-01

GLrb<-glrb # precisaremos dele nos teste de tukey QMrb<-sqrb/glrb # precisaremos dele no teste de tukey

Reunindo anep e anesp numa matriz anepsp

anepsp<-rbind(anep, anesp) round(anepsp,dig=3)

## SQ GL QM Fcal P_valor ## fb 3198892 3 1066297.25 118477.472 0.000 ## f1 2486093 3 828697.69 92077.522 0.000 ## fpar 8574131 15 571608.75 63512.083 0.000 ## res (a) 2889146 9 321016.27 35668.474 0.000 ## f2 4703630 2 2351815.08 31.576 0.000 ## f1if2 1286153 6 214358.86 2.878 0.029 ## fspar 16351434 47 347902.85 4.671 0.000 ## res (b) 1787519 24 74479.97 1.000 0.500

Efeito dos adubos(f1 com Tukey), independente da dose. Usaremos o GLra e QMra

Page 58: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

58

levels(f1)#apenas conferindo os níveis f1

## [1] "cn" "sa" "sc" "u"

require(agricolae)

## Loading required package: agricolae

## Warning: package 'agricolae' was built under R version 3.2.3

tk1<-HSD.test(resp, f1, GLra,QMra,alpha=0.05, group=TRUE, main = NULL,console=FALSE) tk1[5] #tem rodar com com alpha 0.20!

## $groups ## trt means M ## 1 sa 3401.833 a ## 2 sc 3065.250 a ## 3 cn 2871.000 a ## 4 u 2823.083 a

Anova e Tukey f2 d/f1, ou seja,doses dentro de níveis de adubo. Usaremos QMrb e Glrb

levels(f1)# relembrando os niveis de f1

## [1] "cn" "sa" "sc" "u"

# Fazendo os recortes de interesse f1_cn<-subset(a1, f1=="cn") f1_sa<-subset(a1, f1=="sa") f1_sc<-subset(a1, f1=="sc") f1_u<-subset(a1, f1=="u")

Função para SQ dos desdobramento de f1:f2

fu3<-function(x){ y<-tapply(x$resp,x$f2,sum) n<-tapply(x$resp,x$f2,length) ter1<-sum((y^2)/n) ter2<-(sum(y)^2)/sum(n) SQ<-ter1-ter2 GL<-(length(levels(f2)))-1 QM<-SQ/GL Fcal<-QM/QMrb # usamos o residuo_b PV<-c(pf(Fcal, GL, QM, lower.tail=FALSE)) v3<-round(c(SQ,GL,QM,Fcal,PV),dig=3) return(v3) }

Aplicando a fu3 aos recortes e reunindo os vetores resultantes por linhas

anef2df1<-rbind(fu3(f1_cn), fu3(f1_sa), fu3(f1_sc), fu3(f1_u))

Renomeando linhas e colunas de anef2df1

rownames(anef2df1)<-c("f2df1_cn", "f2df1_sa", "f2df1_sc", "f2df1u") anef2df1

Page 59: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

59

## [,1] [,2] [,3] [,4] [,5] ## f2df1_cn 628087.5 2 314043.8 4.216 0.015 ## f2df1_sa 774008.7 2 387004.3 5.196 0.006 ## f2df1_sc 3052014.0 2 1526007.0 20.489 0.000 ## f2df1u 1535673.2 2 767836.6 10.309 0.000

colnames(anef2df1)<-c("SQ", "GL","QM", "Fcal", "P_valor") anef2df1

## SQ GL QM Fcal P_valor ## f2df1_cn 628087.5 2 314043.8 4.216 0.015 ## f2df1_sa 774008.7 2 387004.3 5.196 0.006 ## f2df1_sc 3052014.0 2 1526007.0 20.489 0.000 ## f2df1u 1535673.2 2 767836.6 10.309 0.000

Teste de Tukey para f2 d/f1

require(agricolae)

f2 d/f1 ou dose d/adubo. Lembre-se que já fizemos os recortes de a1. Lembrar que neste caso usaremos o GLrb e

QMrb

futk1<-function(x){ tk<-HSD.test(x$resp, x$f2, GLrb,QMrb, alpha = 0.05, group=TRUE, main = NULL,console=FALSE) tk<-tk[5] return(tk) }

Aplicando a futk1 aos recortes e reunindo numa lista

list(futk1(f1_cn), futk1(f1_sa), futk1(f1_sc), futk1(f1_u))

## [[1]] ## [[1]]$groups ## trt means M ## 1 70 3193.50 a ## 2 10 2732.25 ab ## 3 40 2687.25 b ## ## ## [[2]] ## [[2]]$groups ## trt means M ## 1 70 3619.0 a ## 2 40 3541.0 a ## 3 10 3045.5 b ## ## ## [[3]] ## [[3]]$groups ## trt means M ## 1 70 3776.75 a ## 2 40 2752.25 b ## 3 10 2666.75 b

Page 60: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

60

## ## ## [[4]] ## [[4]]$groups ## trt means M ## 1 70 3238.75 a ## 2 40 2865.00 a ## 3 10 2365.50 b

Tukey para f1 d/f2

Para comparar médias f1 d/f2 faz-se necessário calcular novo GLrm e QMrm (m=médio). Mais detalhes em Pimentel

Gomes (2008), v15, ed15, pg165-171

Calculando a variância média pela fórmula:

#QMrm=(QMra+QMrb*(n2-1))/n2

Sabemos que:

n2<-length(levels(f2)) # nº níveis do fator 2 em estudo QMra # calculado anteriormente

## [1] 321016.3

QMrb # calculado anteriormente

## [1] 74479.97

Então:

QMrm<-(QMra+QMrb*(n2-1))/n2

Calculando um GL médio para f1 e f2

#GLrm=(QMra+((n2-1)QMrb))2/(((QMra2)/GLra)+((((n2-1)QMrb)^2)/GLrb))

Para evitar erros de digitação simplificaremos a formula:

# GLrm=(termo1)^2/(termo2+termo3)

Agora detalharemos os termos:

termo1<-QMra+((n2-1)*QMrb) termo2<-(QMra^2)/GLra termo3<-(((n2-1)*QMrb)^2)/GLrb

Agora montaremos a equação

GLrm<-((termo1)^2)/(termo2+termo3) GLrm<-round(GLrm, dig=0) #arredonda GLrm

## [1] 18

Tukey para f1 d/f2

Primeiro faremos os recortes no banco de dados(a1)

levels(f2)# lembrando as doses

## [1] "10" "40" "70"

Page 61: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

61

f2_10<-subset(a1, f2=="10") # recorte... f2_40<-subset(a1, f2=="40") f2_70<-subset(a1, f2=="70")

Criaremos uma função para o teste de Tukey

futk2<-function(x){ tk<-HSD.test(x$resp, x$f1, GLrb,QMrb, alpha = 0.05, group=TRUE, main = NULL,console=FALSE) tk<-tk[5] return(tk) }

Aplicaremos a função futk2 nos recortes de f1d/f2

list(futk2(f2_10), futk2(f2_40), futk2(f2_70))

## [[1]] ## [[1]]$groups ## trt means M ## 1 sa 3045.50 a ## 2 cn 2732.25 ab ## 3 sc 2666.75 ab ## 4 u 2365.50 b ## ## ## [[2]] ## [[2]]$groups ## trt means M ## 1 sa 3541.00 a ## 2 u 2865.00 b ## 3 sc 2752.25 b ## 4 cn 2687.25 b ## ## ## [[3]] ## [[3]]$groups ## trt means M ## 1 sc 3776.75 a ## 2 sa 3619.00 ab ## 3 u 3238.75 b ## 4 cn 3193.50 b

Parcelas subdivididas: dados simulados de um experimento com amendoim forrageiro

Passo a passo

Dados simulados considerando um experimente,o em parcelas subdividas, com amendoim forrageiro.

Fatorial (6 x 4), sendo:

6 ecotipos de amendoim ( e1, e2, e3, e4, e5, e6)

4 fontes de P: super simples(ss), super triplo (st), fosfato natural (fn) e controle sem fertilizante (ct)

3 blocos parcelas= bloco x ecotipo

subparcelas= bloco x ecotipo x fonte de P

Page 62: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

62

Objetivos:

1. avaliar qual ecotipo(f1) produz mais, independente da fonte de P(f2)

2. avaliar qual fonte(f2) permite maior produção, dentro de cada ecotipo(f1)

3. avliar qual ecotipo(f1) responde melhor as fontes(f2)= st e fn

Importando os dados

a<-read.table("par_sub_amendoin.txt", h=T) head(a)

## par spar trat bloc esp fos resp ## 1 1e.1 1e.1ct 1 1 e.1 ct 41 ## 2 1e.2 1e.2ct 2 1 e.2 ct 29 ## 3 1e.3 1e.3ct 3 1 e.3 ct 41 ## 4 1e.4 1e.4ct 4 1 e.4 ct 45 ## 5 1e.5 1e.5ct 5 1 e.5 ct 23 ## 6 1e.6 1e.6ct 6 1 e.6 ct 48

str(a)

## 'data.frame': 72 obs. of 7 variables: ## $ par : Factor w/ 18 levels "1e.1","1e.2",..: 1 2 3 4 5 6 1 2 3 4 ... ## $ spar: Factor w/ 72 levels "1e.1ct","1e.1fn",..: 1 5 9 13 17 21 2 6 10 14 ... ## $ trat: int 1 2 3 4 5 6 7 8 9 10 ... ## $ bloc: int 1 1 1 1 1 1 1 1 1 1 ... ## $ esp : Factor w/ 6 levels "e.1","e.2","e.3",..: 1 2 3 4 5 6 1 2 3 4 ... ## $ fos : Factor w/ 4 levels "ct","fn","ss",..: 1 1 1 1 1 1 2 2 2 2 ... ## $ resp: int 41 29 41 45 23 48 76 74 74 98 ...

Tranformando em fator

fspar<-as.factor(a$spar) # subparcelas fpar<-as.factor(a$par) # parcelas fb<-as.factor(a$bloc) f1<-as.factor(a$esp) f2<-as.factor(a$fos) resp<-as.numeric(a$resp)

Gerando novo data.frame

a1<-data.frame(fspar,fpar,fb,f1,f2,resp) head(a1)

## fspar fpar fb f1 f2 resp ## 1 1e.1ct 1e.1 1 e.1 ct 41 ## 2 1e.2ct 1e.2 1 e.2 ct 29 ## 3 1e.3ct 1e.3 1 e.3 ct 41 ## 4 1e.4ct 1e.4 1 e.4 ct 45 ## 5 1e.5ct 1e.5 1 e.5 ct 23 ## 6 1e.6ct 1e.6 1 e.6 ct 48

str(a1)

## 'data.frame': 72 obs. of 6 variables: ## $ fspar: Factor w/ 72 levels "1e.1ct","1e.1fn",..: 1 5 9 13 17 21 2 6 10 14 ... ## $ fpar : Factor w/ 18 levels "1e.1","1e.2",..: 1 2 3 4 5 6 1 2 3 4 ... ## $ fb : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ... ## $ f1 : Factor w/ 6 levels "e.1","e.2","e.3",..: 1 2 3 4 5 6 1 2 3 4 ... ## $ f2 : Factor w/ 4 levels "ct","fn","ss",..: 1 1 1 1 1 1 2 2 2 2 ... ## $ resp : num 41 29 41 45 23 48 76 74 74 98 ...

Page 63: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

63

Conferindo o obj a1

length(levels(fspar))

## [1] 72

length(levels(fpar))

## [1] 18

length(levels(fb))

## [1] 3

Anova geral

ane00<-summary(aov (resp~fb+(f1+f2)^2+Error(fb/f1))) ane00

## ## Error: fb ## Df Sum Sq Mean Sq ## fb 2 25.86 12.93 ## ## Error: fb:f1 ## Df Sum Sq Mean Sq F value Pr(>F) ## f1 5 13158 2631.5 1226 1.34e-13 *** ## Residuals 10 21 2.1 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Error: Within ## Df Sum Sq Mean Sq F value Pr(>F) ## f2 3 139125 46375 15750 <2e-16 *** ## f1:f2 15 49545 3303 1122 <2e-16 *** ## Residuals 36 106 3 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Porém, para retirar as SQ e Gl usaremos a ane01 abaixo

ane01<-aov (resp~fb+(f1+f2)^2+Error(fb/f1)) ane01

## ## Call: ## aov(formula = resp ~ fb + (f1 + f2)^2 + Error(fb/f1)) ## ## Grand Mean: 95.27778 ## ## Stratum 1: fb ## ## Terms: ## fb ## Sum of Squares 25.86111 ## Deg. of Freedom 2 ## ## Estimated effects may be unbalanced ## ## Stratum 2: fb:f1

Page 64: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

64

## ## Terms: ## f1 Residuals ## Sum of Squares 13157.611 21.472 ## Deg. of Freedom 5 10 ## ## Residual standard error: 1.46534 ## 15 out of 20 effects not estimable ## Estimated effects may be unbalanced ## ## Stratum 3: Within ## ## Terms: ## f2 f1:f2 Residuals ## Sum of Squares 139124.78 49544.72 106.00 ## Deg. of Freedom 3 15 36 ## ## Residual standard error: 1.715938 ## Estimated effects may be unbalanced

Extraindo GLr e SQr relativa a parcelas (resíduo_a)

GLra<-df.residual(ane01[[3]]) # GLresiduo_a SQra<-sum(residuals(ane01[[3]])^2) # SQresidua_a QMra<-SQra/GLra QMra

## [1] 2.147222

Extraindo GLr e SQr relativa a subparcelas (resíduo_b)

GLrb<-df.residual(ane01[[4]]) # GLresiduo_b SQrb<-sum(residuals(ane01[[4]])^2) # SQresidua_b QMrb<-SQrb/GLrb QMrb

## [1] 2.944444

Comentário:

Já obtivemos o GLr e QMr, se não temos interesse em realizar a decomposição dos efeitos dos fatores e testá-los pelo

teste F, então partiremos diretamente para o teste de médias.

Utilizaremos o pacote agricolae

require(agricolae) # carregando pacote

## Loading required package: agricolae

## Warning: package 'agricolae' was built under R version 3.2.3

Efeito dos adubos(f1 com Tukey)

OBS: Independente da dose Usaremos o GLra e QMra

levels(f1)#apenas conferindo os níveis f1

## [1] "e.1" "e.2" "e.3" "e.4" "e.5" "e.6"

tk1<-HSD.test(resp, f1, GLra,QMra,alpha=0.05, group=TRUE, main = NULL,console=FALSE) tk1[5] #tem rodar com com alpha 0.20!

Page 65: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

65

## $groups ## trt means M ## 1 e.2 114.08333 a ## 2 e.5 112.66667 a ## 3 e.1 93.66667 b ## 4 e.4 88.66667 c ## 5 e.3 82.50000 d ## 6 e.6 80.08333 e

Anova e Tukey para f2 d/f1, ou seja, doses d/ de níveis de adubo.

Usaremos QMrb e Glrb

levels(f1)# lembrando os niveis de f1

## [1] "e.1" "e.2" "e.3" "e.4" "e.5" "e.6"

# recortes de interesse ----- f1_e.1<-subset(a1, f1=="e.1") f1_e.2<-subset(a1, f1=="e.2") f1_e.3<-subset(a1, f1=="e.3") f1_e.4<-subset(a1, f1=="e.4") f1_e.5<-subset(a1, f1=="e.5") f1_e.6<-subset(a1, f1=="e.6")

Teste de Tukey para f2 d/f1, ou seja, dose d dentro de adubo. Lembre-se que o procedimento exige o pacote agricolae.

Neste caso usaremos o GLrb e QMrb

futk1<-function(x){ tk<-HSD.test(x$resp,x$f2,GLrb,QMrb,alpha = 0.05, group=TRUE, main = NULL,console=FALSE) return(tk[[5]]) }

Aplicando a futk1 aos recortes

futk1(f1_e.1)# f2 d/f1=e.1

## trt means M ## 1 ss 154.00000 a ## 2 st 102.33333 b ## 3 fn 75.66667 c ## 4 ct 42.66667 d

futk1(f1_e.2)

## trt means M ## 1 ss 200.33333 a ## 2 st 154.33333 b ## 3 fn 72.33333 c ## 4 ct 29.33333 d

futk1(f1_e.3)

## trt means M ## 1 ss 124.33333 a ## 2 st 91.33333 b ## 3 fn 73.00000 c ## 4 ct 41.33333 d

futk1(f1_e.4)

Page 66: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

66

## trt means M ## 1 ss 119.66667 a ## 2 fn 98.00000 b ## 3 st 90.33333 c ## 4 ct 46.66667 d

futk1(f1_e.5)

## trt means M ## 1 ss 249.0000 a ## 2 st 124.6667 b ## 3 fn 55.0000 c ## 4 ct 22.0000 d

futk1(f1_e.6)

## trt means M ## 1 ss 104.33333 a ## 2 fn 85.00000 b ## 3 st 81.66667 b ## 4 ct 49.33333 c

Tukey f1 d/f2

Faz-se necessário calcular novo GLrm e QMrm (m=médio). Mais detalhes em Pimentel Gomes (2008), v15, ed15,

pg165-171

Variância comum é dada por:

# QMrm=(QMra+QMrb*(n2-1))/n2

Sabemos que:

QMra # calculado anteriormente

QMrb # calculado anteriormente n2=número de níves de f2

n2<-length(levels(f2)) # nº niveis do fator em estudo(f2) QMrm<-(QMra+QMrb*(n2-1))/n2 QMrm

## [1] 2.745139

Calculando um GLrm para f1 e f2 Sabemos que a fórmula é:

# GLrm=(QMra+((n2-1)QMrb))2/(((QMra2)/GLra)+((((n2-1)QMrb)^2)/GLrb))

Para evitar erros de digitação vamos simplificar a formula:

# GLrm= (termo1)^2/(termo2+termo3)

Agora detalhe mais os termos:

termo1<-QMra+((n2-1)*QMrb) termo2<-(QMra^2)/GLra termo3<-(((n2-1)*QMrb)^2)/GLrb

Montaresmo a equação

GLrm<-((termo1)^2)/(termo2+termo3) GLrm<-round(GLrm, dig=0) #arredonda GLrm

## [1] 46

Tukey f1 d/f2

Page 67: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

67

Primeiro faremos os recortes no banco de dados(a1)

levels(f2)# lembrando as doses

## [1] "ct" "fn" "ss" "st"

f2_ct<-subset(a1, f2=="ct") f2_fn<-subset(a1, f2=="fn") f2_ss<-subset(a1, f2=="ss") f2_st<-subset(a1, f2=="st")

Criando uma função para o Tukey

futk2<-function(x){ tk<-HSD.test(x$resp, x$f1, GLrb,QMrb, alpha = 0.05, group=TRUE, main = NULL,console=FALSE) tk<-tk[5] return(tk) }

Aplicando a futk2

futk2(f2_ct) # f1 d/f2=ct

## $groups ## trt means M ## 1 e.6 49.33333 a ## 2 e.4 46.66667 ab ## 3 e.1 42.66667 bc ## 4 e.3 41.33333 c ## 5 e.2 29.33333 d ## 6 e.5 22.00000 e

futk2(f2_fn)

## $groups ## trt means M ## 1 e.4 98.00000 a ## 2 e.6 85.00000 b ## 3 e.1 75.66667 c ## 4 e.3 73.00000 c ## 5 e.2 72.33333 c ## 6 e.5 55.00000 d

futk2(f2_ss)

## $groups ## trt means M ## 1 e.5 249.0000 a ## 2 e.2 200.3333 b ## 3 e.1 154.0000 c ## 4 e.3 124.3333 d ## 5 e.4 119.6667 e ## 6 e.6 104.3333 f

futk2(f2_st)

## $groups ## trt means M ## 1 e.2 154.33333 a

Page 68: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

68

## 2 e.5 124.66667 b ## 3 e.1 102.33333 c ## 4 e.3 91.33333 d ## 5 e.4 90.33333 d ## 6 e.6 81.66667 e

Fatorial duplo com um tratamento adicional

Odirley Campos

Exemplo foi retirado no endereço abaixo: http://ridiculas.wordpress.com/2011/08/09/experimento-fatorial-duplo-

com-um-tratamento-adicional/

Após gerar os dados utilizamos rotinas um pouco diferentes daquelas do site. A melhor cultivar de soja é A e tem

como dose ótima 100 kg/ha de fertilizante. Temos 5 novas cultivares e desejamos descobrir qual a melhor dose de

fertilizante. A produtividade será comparada com a da cultivar A, num experimento com os 5 níveis de cultivar de

soja (B, C, D, E, F). Temos 5 níveis de fertilizante (50, 75, 100, 125, 150 kg). Portanto o experimento tem 25 níveis

(5×5) da porção fatorial, um nível de referência que é cultivar A com 100 kg(identificado como 101). Trata-se de um

fatorial 5×5+1.

Objetivos:

1. comparar as culturas, independentemente da dose de fertilizante

2. comparar as doses de fertilizante dentro de cada cultura

OBS: o arquivo de entrada contendo os dados abriga tanto tratamentos fatoriais como a parte adicional

Importando os dados

a<-read.table("fat2_1ad_soja.txt", h=T) str(a) #verificar a "natureza" dos dados

## 'data.frame': 130 obs. of 5 variables: ## $ trat: int 1 2 3 4 5 6 7 8 9 10 ... ## $ bloc: int 1 1 1 1 1 1 1 1 1 1 ... ## $ cult: Factor w/ 6 levels "A","B","C","D",..: 1 2 3 4 5 6 2 3 4 5 ... ## $ dos : int 101 50 50 50 50 50 75 75 75 75 ... ## $ resp: num 361 133 156 111 226 ...

head(a)

## trat bloc cult dos resp ## 1 1 1 A 101 360.95 ## 2 2 1 B 50 133.17 ## 3 3 1 C 50 156.06 ## 4 4 1 D 50 111.30 ## 5 5 1 E 50 226.46 ## 6 6 1 F 50 53.48

Transformando os dados em fator

ft<-as.factor(a$trat) # tratamentos fb<-as.factor(a$bloc) f1<-as.factor(a$cult) # progenie f2<-as.factor(a$dos) # tipo de adubo resp<-as.numeric(a$resp)# variável resposta

Reunindo em novo data

a1<-data.frame(ft,fb,f1,f2,resp) head(a1)

Page 69: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

69

## ft fb f1 f2 resp ## 1 1 1 A 101 360.95 ## 2 2 1 B 50 133.17 ## 3 3 1 C 50 156.06 ## 4 4 1 D 50 111.30 ## 5 5 1 E 50 226.46 ## 6 6 1 F 50 53.48

# Anova apenas tratamentos ------ ane0 <-aov(resp~fb+ft, data=a1) summary(ane0)

## Df Sum Sq Mean Sq F value Pr(>F) ## fb 4 4412 1103 0.911 0.461 ## ft 25 941309 37652 31.092 <2e-16 *** ## Residuals 100 121098 1211 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

GLr<-df.residual(ane0) # gl do residuo GLr

## [1] 100

sum(residuals(ane0)^2) # SQresiduo

## [1] 121098.2

QMr<-sum(residuals(ane0)^2)/df.residual(ane0) QMr

## [1] 1210.982

Calculando as SQ para os efeitos principais

fu1<-function(x){ y<-tapply(resp,x,sum) n<-tapply(resp,x,length) t<-sum(n) term1<-sum((y^2)/n) term2<-((sum(y))^2)/t SQ<-term1-term2 GL<-length(n)-1 return(c(SQ,GL))}

Aplicando a fu1

ane1<-rbind(fu1(fb), fu1(ft), fu1(fb:ft), fu1(fb:ft)-fu1(ft)-fu1(fb))

Calculando o F e os P-valores

ane1<-cbind(ane1, QM<-ane1[,1]/ane1[,2], Fcal<-QM/QM[4], P_valor<-signif(pf(Fcal,ane1[,2], ane1[4,2], lower.tail = FALSE),dig=1)) ane1

Page 70: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

70

## [,1] [,2] [,3] [,4] [,5] ## [1,] 4412.279 4 1103.070 0.9108885 5e-01 ## [2,] 941308.528 25 37652.341 31.0923981 2e-36 ## [3,] 1066819.029 129 8269.915 6.8290969 2e-20 ## [4,] 121098.222 100 1210.982 1.0000000 5e-01

Renomeando colunas e linhas

colnames(ane1)<-c("SQ", "GL", "QM", "Fcal", "P_valor") ane1

## SQ GL QM Fcal P_valor ## [1,] 4412.279 4 1103.070 0.9108885 5e-01 ## [2,] 941308.528 25 37652.341 31.0923981 2e-36 ## [3,] 1066819.029 129 8269.915 6.8290969 2e-20 ## [4,] 121098.222 100 1210.982 1.0000000 5e-01

rownames(ane1)<-c("bloc", "trat", "total", "residuo") round(ane1,dig=3)

## SQ GL QM Fcal P_valor ## bloc 4412.279 4 1103.070 0.911 0.5 ## trat 941308.528 25 37652.341 31.092 0.0 ## total 1066819.029 129 8269.915 6.829 0.0 ## residuo 121098.222 100 1210.982 1.000 0.5

SQ para culturas, incluindo A

fu2<-function(x){ y<-tapply(resp,x,sum) n<-tapply(resp,x,length) term1<-sum((y^2)/n) term2<-(sum(y)^2)/sum(n) SQ<-term1-term2 GL<-length(n)-1 QM<-SQ/GL Fcal<-QM/ane1[4,3] P_valor<-pf(Fcal,GL, ane1[4,2], lower.tail = FALSE) return(round(c(SQ,GL,QM,Fcal,P_valor),dig=3)) } fu2(f2)# apliando a fu2

## [1] 560406.000 5.000 112081.200 92.554 0.000

Nova função para SQ da parte fatorial

a2<-subset(a1,!f1=="A")#recortando o obj a1 head(a2)# apenas o cabecalho

## ft fb f1 f2 resp ## 2 2 1 B 50 133.17 ## 3 3 1 C 50 156.06 ## 4 4 1 D 50 111.30 ## 5 5 1 E 50 226.46 ## 6 6 1 F 50 53.48 ## 7 7 1 B 75 249.36

Page 71: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

71

fu3<-function(vresp,vfator){ y<-as.vector(na.omit(as.vector(tapply(vresp,vfator,sum)))) n<-as.vector(na.omit(as.vector(tapply(vresp,vfator,length)))) term1<-sum((y^2)/n) term2<-(sum(y)^2)/sum(n) SQ<-term1-term2 GL<-length(n)-1 QM<-SQ/GL Fcal<-QM/ane1[4,3] P_valor<-pf(Fcal,GL, ane1[4,2], lower.tail = FALSE) vetor<-c(SQ,GL,QM,Fcal,P_valor) return(round(vetor,dig=3)) }

Aplicando a fu3

fu3(a2$resp,a2$f2)# para dose, excluindo 101

## [1] 498680.07 4.00 124670.02 102.95 0.00

fu3(a2$resp,a2$f1)# para cultura, excluindo "A"

## [1] 295159.660 4.000 73789.915 60.934 0.000

fu2(f1) # para cultura, incluindo "A"

## [1] 356885.588 5.000 71377.118 58.942 0.000

fu3(a1$resp,a1$f1) # para cultura, incluindo "A"

## [1] 356885.588 5.000 71377.118 58.942 0.000

# veja que a fu3(a1$resp,a1$f1) retorna o mesmo resultado da fu2(f1) # tornando desnecessária a fu2

Calculando a SQ da parte adicional. Lembrando que:

SQ_adicional= SQ_todas_culturas - SQ_culturas_parte_fatorial

fu2(f1)[1]-fu3(a2$resp,a2$f1)[1] #SQ da parte adicional

## [1] 61725.93

vadi<-c(fu2(f1)[1]-fu3(a2$resp,a2$f1)[1],1,1,1,1) #vetor sq adicional

Usaremos a fu3 para calcular a SQbruta f1:f2 sem a parte adicional

sqbruta<-fu3(a2$resp,a2$f1:a2$f2)[1] #sqbruta sqf1sa<-fu3(a2$resp,a2$f1)[1] #efeito simple f2 sem parte adicional sqf2sa<-fu3(a2$resp,a2$f2)[1] # efeito simples f2 sem parte adicional

Vetor da SQ da interação, sem a parte adicional

vf1i2<-c(sqf1i2<-sqbruta-sqf1sa-sqf2sa, glf1i2<-fu3(a2$resp,a2$f1)[2]*fu3(a2$resp,a2$f2)[2], qmf1i2<-sqf1i2/glf1i2, fcal1i2<-qmf1i2/ane1[4,3], p_valor<-round(pf(fcal1i2,glf1i2, ane1[4,2], lower.tail = FALSE),dig=3))

Page 72: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

72

Reunindo tudo numa matriz

ane2<-rbind(fu3(a1$resp,a1$f1),# culturas, inclui A fu3(a2$resp,a2$f1),# para cultura, excluindo "A" fu3(a2$resp,a2$f2),# para dose, excluindo 101 vadi, # parte adicional vf1i2) # intercao f1i2 rownames(ane2)<-c("culturas 6","culturas,sem A", "dose, sem 101", "adicional", "Inter_f1f2") ane2

## [,1] [,2] [,3] [,4] [,5] ## culturas 6 356885.59 5 71377.118 58.942000 0 ## culturas,sem A 295159.66 4 73789.915 60.934000 0 ## dose, sem 101 498680.07 4 124670.018 102.950000 0 ## adicional 61725.93 1 1.000 1.000000 1 ## Inter_f1f2 85742.87 16 5358.929 4.425275 0

colnames(ane2)<-c("SQ", "GL", "QM", "Fcal", "P_valor") round(ane2, dig=3) # Quadro da anova

## SQ GL QM Fcal P_valor ## culturas 6 356885.59 5 71377.118 58.942 0 ## culturas,sem A 295159.66 4 73789.915 60.934 0 ## dose, sem 101 498680.07 4 124670.018 102.950 0 ## adicional 61725.93 1 1.000 1.000 1 ## Inter_f1f2 85742.87 16 5358.929 4.425 0

Tukey para f1 d/ f2=100 ou 101 (cultura d/ dose 100 kg/ha)

dos_100<-subset(a1, f2==100|f2==101)#recorte require(agricolae) # carrega o pacote

## Loading required package: agricolae

## Warning: package 'agricolae' was built under R version 3.2.3

futk1<-function(x){ tk<-HSD.test(x$resp, x$f1, GLr, QMr, alpha=0.05, group=TRUE, main = NULL,console=FALSE) return(tk[5]) } futk1(dos_100)# cul d/ dos 100

## $groups ## trt means M ## 1 A 385.852 a ## 2 D 372.594 a ## 3 E 335.722 ab ## 4 C 304.546 bc ## 5 B 290.448 bc ## 6 F 265.636 c

# e para as cul_d/150 vs cul_d/101, como seria?

Tukey para f2 d/ f1 (dose d/ cultura)

levels(f1)

Page 73: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

73

## [1] "A" "B" "C" "D" "E" "F"

# Fazendo os recortes cul_b<-subset(a1,f1=="B") cul_c<-subset(a1,f1=="C") cul_d<-subset(a1,f1=="D") cul_e<-subset(a1,f1=="E") cul_f<-subset(a1,f1=="F") require(agricolae) futk2<-function(x){ tk<-HSD.test(x$resp, x$f2, GLr, QMr, alpha=0.05, group=TRUE, main = NULL,console=FALSE) return(tk[5]) } futk2(cul_b)

## $groups ## trt means M ## 1 100 290.448 a ## 2 150 285.602 a ## 3 125 263.840 a ## 4 75 233.632 a ## 5 50 143.872 b

futk2(cul_c)

## $groups ## trt means M ## 1 125 320.414 a ## 2 100 304.546 a ## 3 150 288.206 a ## 4 75 221.950 b ## 5 50 154.028 c

futk2(cul_d)

## $groups ## trt means M ## 1 150 459.758 a ## 2 125 438.276 a ## 3 100 372.594 b ## 4 75 305.874 c ## 5 50 180.924 d

futk2(cul_e)

## $groups ## trt means M ## 1 125 353.052 a ## 2 150 341.766 a ## 3 100 335.722 a ## 4 75 274.534 b ## 5 50 190.380 c

futk2(cul_f)

Page 74: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

74

## $groups ## trt means M ## 1 100 265.636 a ## 2 125 255.186 a ## 3 75 222.232 ab ## 4 150 192.998 b ## 5 50 118.098 c

Fatorial triplo com um tratamento adicional

Passo a passo

Dados simulados de um experimento onde avaliar-se-á a germinação de sementes em função da dose de fertilizante

aplicada. Veja a descrição abaixo:

3 blocos

2 solos (AG e AR)

2 fontes de K na forma de KCl (K e Kr) onde r indica revestido

4 doses de equivalente K2O (40; 80; 120; 180 kg/ha)

1 controle sem aplicação de K fará a vez do tratamento adicional

Variável resposta: % germinação de sementes de uma cultura X

Fatorial ((2 x 4)+1) x 2)= 18; ou seria ((2 x 2 x 4)+ 1 + 1)= 18;

Então temos 1 adicional para cada solo

Objetivo: comparar as doses d/ fonte d/ solo

OBS: o mesmo banco de dados se prestaria a ajuste de modelos dentro de cada fonte de K e solo

Importando os dados

a<-read.table("fat3_ad2.txt",h=T)# importando os dados str(a) #verificar a "natureza" dos dados

## 'data.frame': 54 obs. of 6 variables: ## $ trat: int 1 2 3 4 5 6 7 8 9 10 ... ## $ bloc: int 1 1 1 1 1 1 1 1 1 1 ... ## $ sol : Factor w/ 2 levels "ag","ar": 1 1 1 1 1 1 1 1 1 2 ... ## $ fon : Factor w/ 3 levels "0","k","kr": 1 2 2 2 2 3 3 3 3 1 ... ## $ dos : int 0 40 80 120 160 40 80 120 160 0 ... ## $ resp: int 100 99 95 70 20 100 99 94 88 100 ...

Transformando em fatores

ft<-as.factor(a$trat) fb<-as.factor(a$bloc) f1<-as.factor(a$sol) f2<-as.factor(a$fon) f3<-as.factor(a$dos) resp<-as.numeric(a$resp)

Reunindo em novo data

a1<-data.frame(ft,fb,f1,f2,f3,resp) str(a1)

Page 75: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

75

## 'data.frame': 54 obs. of 6 variables: ## $ ft : Factor w/ 18 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ... ## $ fb : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ... ## $ f1 : Factor w/ 2 levels "ag","ar": 1 1 1 1 1 1 1 1 1 2 ... ## $ f2 : Factor w/ 3 levels "0","k","kr": 1 2 2 2 2 3 3 3 3 1 ... ## $ f3 : Factor w/ 5 levels "0","40","80",..: 1 2 3 4 5 2 3 4 5 1 ... ## $ resp: num 100 99 95 70 20 100 99 94 88 100 ...

Anova apenas tratamentos

ane0 <-aov(resp~fb+ft, data=a1) summary(ane0)

## Df Sum Sq Mean Sq F value Pr(>F) ## fb 2 81 40.7 31.95 1.56e-08 *** ## ft 17 42690 2511.2 1971.98 < 2e-16 *** ## Residuals 34 43 1.3 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

GLr<-df.residual(ane0) # gl do residuo SQr<-sum(residuals(ane0)^2) # SQresiduo QMr<-SQr/GLr QMr

## [1] 1.27342

Achando os levels de cada fator

lt<-levels(ft) #levels tratamentos lb<- levels(fb) #levels blocos l1<- levels(f1) #levels solos l2<- levels(f2) #levels fontes, veja que ctl tb pode ser fonte l3<- levels(f3) #levels doses, veja que são 5 doses e não 4

Numero de obs de cada fator

nb <- length(lb) #nº de níveis do fator Bloco nt<-length(lt) # n de niveis dos trat n1 <- length(l1) #n niveis fontes n2 <- length(l2) # n niveis doses n3 <- length(l3) # n niveis doses nresp<- length(resp)# nº de obs do experimento

Modo rápido de calcular as SQ

# decompondo nos fatores principais fu1<-function(x){ y<-tapply(resp,x,sum) n<-tapply(resp,x,length) ter1<-sum((y^2)/n) fc<-(sum(y)^2)/sum(n) SQ<-ter1-fc GL<-length(y)-1 QM<-SQ/GL Fcal<-QM/QMr PV=signif(c(pf(Fcal, GL, GLr, lower.tail = FALSE)), dig=3) vetnum<-round(c(GL,SQ,QM,Fcal,PV),dig=3) return(vetnum)}

Page 76: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

76

Aplicando a fu1

ane1<-rbind(fu1(fb),fu1(f1),fu1(f2),fu1(f3))# reunindo colnames(ane1)<-c("GL", "SQ", "QM", "F", "PV") rownames(ane1)<-c("fb","f1","f2","f3") ane1

## GL SQ QM F PV ## fb 2 81.37 40.685 31.950 0 ## f1 1 1014.00 1014.000 796.281 0 ## f2 2 13282.45 6641.227 5215.266 0 ## f3 4 20216.37 5054.093 3968.911 0

Apenas relembrando os levels

l1

## [1] "ag" "ar"

l2

## [1] "0" "k" "kr"

l3

## [1] "0" "40" "80" "120" "160"

# lembremos que para os efeitos principais o adicional # está incluindo na SQ, isto é necessário qndo queremos fazer # algum teste de media, a nível de efeito principal (f1,f2 ou f3) # extraindo as SQ da matrix, apenas ilustrando SQ1<-ane1[2,2] SQ1

## [1] 1014

SQ2<-ane1[3,2] SQ2

## [1] 13282.45

SQ3<-ane1[4,2] SQ3

## [1] 20216.37

Tukey para fonte (f2) independentemente de f1 e f3

require(agricolae)

## Loading required package: agricolae

## Warning: package 'agricolae' was built under R version 3.2.3

futk1<-function(x){ tuk<-HSD.test(resp, x, GLr,QMr, alpha = 0.05, group=TRUE, main = NULL,console=FALSE) tk1<-tuk[5] return(tk1) }

Page 77: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

77

futk1(f2) # obs que a dose 0 (trat adicional) é mantida para

## $groups ## trt means M ## 1 0 98.66667 a ## 2 kr 91.79167 b ## 3 k 61.87500 c

# comparação com o K e Kr # mas isto é uma informação muito geral # é necessário desdobrar ao menos a nível de solo

SQ bruta das interações duplas

fu2<-function(x){ y0<-tapply(resp,x, sum) y<-as.vector(na.omit( as.vector(y0[-grep(":0",names(y0))]))) n0<-tapply(resp,x, length) n<-as.vector(na.omit( as.vector(n0[-grep(":0",names(y0))]))) ter1<-sum(y^2/n) fc<-(sum(y)^2)/(sum(n)) SQ<-ter1-fc return(SQ) } fu2(f1:f2) # sq bruto mas sem ctl ou dose 0

## [1] 12305.5

fu2(f1:f3) # sq bruto mas sem ctl ou dose 0

## [1] 19118.67

fu2(f2:f3) # sq bruto mas sem ctl ou dose 0

## [1] 38029

fu2(f1:f2:f3) # sq bruto mas sem ctl ou dose 0

## [1] 40146.67

Fazendo o recorte para extrair efeito dos fatores não considerando a parte adicional

a2<-subset(a1, !f2=="0") # retiranto a fonte 0 ou dose 0 do data # adpataremos a fu1 a nova condição e chamaremos de fu3 # para calcular a SQ dos fatores principais sem os adicionais ("0") fu3<-function(x){ y<-as.vector(na.omit( as.vector(tapply(a2$resp,x,sum)))) n<-as.vector(na.omit( as.vector(tapply(a2$resp,x,length)))) ter1<-sum(y^2/n) fc<-(sum(y)^2)/(sum(n)) SQ<-ter1-fc return(SQ) } fu3(a2$f1) # SQ do solo sem adicionais

Page 78: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

78

## [1] 1121.333

fu3(a2$f2) # SQ da fonte sem adicionais

## [1] 10740.08

fu3(a2$f3) # SQ da dose sem adicionais

## [1] 17674

Agora vamos achar as SQ das interações sem os adicionais

SQ12<-fu2(f1:f2)-fu3(a2$f1)-fu3(a2$f2) GL12<-(n1-1)*(n2-1-1) SQ13<-fu2(f1:f3)-fu3(a2$f1)-fu3(a2$f3) GL13<-(n1-1)*(n3-1-1) SQ23<-fu2(f2:f3)-fu3(a2$f2)-fu3(a2$f3) GL23<-(n2-1-1)*(n3-1-1) SQ123<-fu2(f1:f2:f3)-fu3(a2$f1)-fu3(a2$f2)-fu3(a2$f3) GL123<-(n1-1)*(n2-1-1)*(n3-1-1)

Matriz com a anova das interações

ane2<-cbind(GLs<-c(GL12,GL13,GL23,GL123), SQs<-c(SQ12,SQ13,SQ23,SQ123), QM<-SQs/GLs, Fcal<- QM/(QMr), PV<-round(c(pf(Fcal, GLs, GLr, lower.tail = FALSE)),dig=3)) rownames(ane2)<-c("f12","f13", "f23","f123") round(ane2,dig=3)

## [,1] [,2] [,3] [,4] [,5] ## f12 1 444.083 444.083 348.733 0 ## f13 3 323.333 107.778 84.636 0 ## f23 3 9614.917 3204.972 2516.822 0 ## f123 3 10611.250 3537.083 2777.624 0

ane2

## [,1] [,2] [,3] [,4] [,5] ## f12 1 444.0833 444.0833 348.73268 0 ## f13 3 323.3333 107.7778 84.63644 0 ## f23 3 9614.9167 3204.9722 2516.82164 0 ## f123 3 10611.2500 3537.0833 2777.62404 0

Desdobrando f3 d/f2 d/f1

# primeiro recortamos, l1

## [1] "ag" "ar"

l2

## [1] "0" "k" "kr"

# temos 2 nivies para solo e 3-1 para fonte # então emos 2 x 2= desdobramentos # repare que agora deixaremos a dose 0 (adicional) # pois queremos q as outras sejam comparadas a ela

Page 79: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

79

# num eventual teste de Tukey ou ajuste de modelos fagk<-subset(subset(a1,f1=="ag"),f2=="k"|f2=="0") fagkr<-subset(subset(a1,f1=="ag"),f2=="kr"|f2=="0") fark<-subset(subset(a1,f1=="ar"),f2=="k"|f2=="0") farkr<-subset(subset(a1,f1=="ar"),f2=="kr"|f2=="0") fu3<-function(x){ y<-tapply(x$resp,x$f3,sum) n<-tapply(x$resp,x$f3,length) ter1<-sum((y^2)/n) fc<-(sum(y)^2)/sum(n) SQ<-ter1-fc GL<-length(y)-1 vet<-c(GL,SQ) return(vet)} ane3<-rbind(fu3(fagk),fu3(fagkr),fu3(fark),fu3(farkr)) aned123<-cbind(GLs<-ane3[,1], SQs<-ane3[,2], QMs<-ane3[,2]/ane3[,1], Fcal<-QM/QMr, PV<-round(c(pf(Fcal, GLs, GLr, lower.tail = FALSE)),dig=3)) rownames(aned123)<-c("f3 d/f2=k d/f1=ag", "f3 d/f2=kr d/f1=ag", "f3 d/f2=k d/f1=ar", "f3 d/f2=kr d/f1=ar") aned123

## [,1] [,2] [,3] [,4] [,5] ## f3 d/f2=k d/f1=ag 4 14164.9333 3541.23333 348.73268 0 ## f3 d/f2=kr d/f1=ag 4 339.3333 84.83333 84.63644 0 ## f3 d/f2=k d/f1=ar 4 19789.7333 4947.43333 2516.82164 0 ## f3 d/f2=kr d/f1=ar 4 554.6667 138.66667 2777.62404 0

Tukey para f3 d/f2 d/f1

# require(agricolae) futk3<-function(x){ tuk<-HSD.test(x$resp, x$f3, GLr,QMr, alpha = 0.05, group=TRUE, main = NULL,console=FALSE) tk1<-tuk[5] return(tk1)} futk3(fagk)

## $groups ## trt means M ## 1 0 99.00000 a ## 2 40 98.66667 a ## 3 80 93.33333 b ## 4 120 68.66667 c ## 5 160 18.33333 d

futk3(fagkr)

Page 80: ANOVA e testes de médias com o Software Rgefert.com.br/wp-content/uploads/2017/07/Apostila.pdf · Vale ressaltar que, quando se trabalha com fatoriais, os tratamentos são obtidos

80

## $groups ## trt means M ## 1 0 99.00000 a ## 2 40 98.33333 a ## 3 80 96.66667 a ## 4 120 93.33333 b ## 5 160 86.00000 c

futk3(fark)

## $groups ## trt means M ## 1 0 98.33333 a ## 2 40 94.66667 b ## 3 80 79.00000 c ## 4 120 38.33333 d ## 5 160 4.00000 e

futk3(farkr)

## $groups ## trt means M ## 1 0 98.33333 a ## 2 40 97.66667 a ## 3 80 91.00000 b ## 4 120 89.66667 b ## 5 160 81.66667 c

Bibliografia

Banzatto, D. A.; Kronka, S. N. Experimentação agrícola. 4.ed. Jaboticabal: FUNEP, 2006. 237p.

Pimentel Gomes, F. Curso de estatística experimental. 15.ed. Piracicaba: Fealq, 2008. 451p.