UNIVERSIDADE FEDERAL DE SANTA CATARINA
CAMPUS DE CURITIBANOS
CENTRO DE CIÊNCIAS RURAIS
DISCIPLINA: ESTATÍSTICA EXPERIMENTAL
PROCESSAMENTO DE ANOVA NO SOFTWARE R
Profa. Rita Carolina de Melo
Monitor: Gustavo Mozzer
Curitibanos, SC
2023
1 DEFININDO ÁREA DE TRABALHO, IMPORTANDO E ORGANIZANDO
OS DADOS (data frames)
1.2 LINHAS DE CÓDIGOS (FUNÇÕES E ARGUMENTOS):
1) rm(list=ls(all=TRUE)) (é uma função): limpa todos os dados armazenados no projeto.
Sempre que começar um projeto novo, utilize essa função.
2) setwd() (é uma função): define diretório de trabalho (área de trabalho);
3) [Link]() (é uma função): importa e lê arquivos em .txt;
a. Argumentos da função:
i. [Link](): escolher arquivos dentro do diretório de trabalho;
ii. dec=: determina qual símbolo de separação decimal;
iii. header = TRUE: quer dizer que a tabela .txt, que você importou para dentro
do R possui cabeçalho;
iv. [Link]=: determina o símbolo que foi usado para células em branco,
utilizado para experimentos com parcela (unidade amostral) perdida.
4) attach(ex01) (é uma função): fixa um objeto de interesse, no caso o ex01, e acessa as colunas
de dados (variáveis) dentro desse objeto.
5) [Link]() (é uma função): investiga se a coluna (variável) em questão é reconhecida pelo R
como um fator (factor).
6) [Link]() (é uma função): investiga se a coluna (variável) em questão está sendo entendida
pelo R como numérica (numeric).
7) [Link]() (é uma função): determina a coluna (variável) em questão como um fator (factor);
8) [Link]() (é uma função): determina a coluna (variável) em questão como numérica
(numeric);
9) [Link]() (é uma função): instalar um pacote;
10) require ou library() (são funções): carregar um pacote para que ele possa ser usado;
2 ANOVA
2.1 LINHAS DE CÓDIGOS (FUNÇÕES E ARGUMENTOS):
Uma pequena observação antes de vermos as funções. Ao percorrer as linhas de código abaixo,
você irá notar um argumento “data=”, dentro da função aov() ou lm(). Por exemplo, o argumento
“data=ex01” indica qual o objeto, no qual, você armazenou a base de dados, ou seja, a sua tabela,
que nesse caso, é o objeto ex01. Isso é necessário para que o R entenda onde procurar as variáveis, as
quais, vai utilizar para executar as análises correspondentes.
Entretanto, se antes de executar a ANOVA, utilizarmos a função attach(), esse argumento torna-
se facultativo (as vezes você nem consegue executar a função com essa informação adicional).
Por que isso acontece? Porque a função attach() faz o seguinte:
“O banco de dados é anexado ao caminho de pesquisa R. Isso significa que o banco de dados é
pesquisado pelo R ao avaliar uma variável, de modo que os objetos no banco de dados podem ser
acessados simplesmente dando seus nomes” (R Core Team, 2023).
Usando essa função é como se você indicasse ao R que, a partir daquele momento, todas as
operações seguintes serão realizadas naquele objeto.
Por exemplo: quando eu aplicado a função attach(dados), é como se eu indicasse ao R que a
partir de agora todas as operações serão executadas usando as variáveis e informações presentes no
objeto dados.
Porém, as vezes a função attach() pode não funcionar muito bem. Então, tome cuidado!
Sabendo disso, vamos às linhas de código e às funções:
1) dic <- aov(y ~ trat) (é uma função): a função aov() realiza a análise de variância, ANOVA.
Nesse exemplo em questão, o experimento é em DIC, pois o modelo utilizado dentro dos
argumentos da função é y ~ trat. Esse modelo indica execução da ANOVA em DIC. O
resultado da ANOVA ficará contido dentro do objeto criado, chamado de dic.
2) anova(dic) ou summary(dic) (são funções): lê o objeto dic (nesse caso) e revela as
informações contidas nele, ou seja, nesse exemplo apresentará a tabela de ANOVA em DIC.
3) dic_2 <- lm(y ~ trat) (é uma função): uma outra forma de executar a ANOVA é utilizando a
função lm( ). As informações da execução desse processo serão armazenadas dentro do objeto
criado, dic_2. Para ler as informações dentro do objeto criado, usa-se a função anova() ou
summary(), como por exemplo, anova(dic_2).
Para executar ANOVA em outros delineamentos, como DBC e DQL, basta mudar o modelo
dentro da função. Os exemplos seguem abaixo:
dbc <- aov(y ~ bloco+ trat, data=ex01)
summary(dbc)
dbc_2 <- lm(y ~ bloco+trat, data=ex01)
anova(dbc_2)
Com as linhas de código acima, executa-se ANOVA em DBC, tanto pela função lm(), como
pela função aov(). E lê-se o objeto dbc ou dbc_2 criados, tanto pela função summary(), quanto pela
função anova().
dql <- aov(y ~ fila+coluna+trat, data=ex01)
summary(dql)
dql_2 <- lm(y ~ fila+coluna+trat, data=ex01)
anova(dql_2)
Com as linhas de código acima, executa-se a ANOVA para experimentos em DQL, utilizando-
se da mesma lógica para ANOVA em DIC ou DBC.
2.2 TESTANDO ALGUNS PRESSUPOSTOS DO EXPERIMENTO
Existem alguns pressupostos que um experimento precisa atender para garantir a validade e
características da análise de variância. Os dois principais deles são:
1) Homogeneidade de variâncias dos resíduos;
2) Normalidade dos resíduos;
Alguns testes para esses pressupostos são:
1) O teste de Bartlett, para testar a homogeneidade.
2) O teste de Shapiro-Wilk para testar a normalidade da distribuição dos resíduos.
Para cada delineamento (DIC, DBC e DQL) as funções utilizadas para executar esses testes são
as mesmas, o que muda é o modelo e os argumentos dentro da função. A função para executar o teste
de homogeneidade das variâncias é a [Link]() e para testar a normalidade é utilizada a função
[Link](). Os exemplos para cada delineamento seguem abaixo:
Para DIC:
[Link](residuals(aov(y ~ trat))~trat, data=ex01)
[Link](residuals(aov(y ~ trat)), data=ex01)
Para DBC:
[Link](residuals(aov(y ~ bloco+trat, data=ex01))~ trat, data=ex01)
[Link](residuals(aov(y ~ bloco+trat, data=ex01)))
Para DQL:
[Link](residuals(aov(y~fila+coluna+trat, data=ex01))~ trat, data=ex01)
[Link](residuals(aov(y ~ fila+coluna+trat, data=ex01)))
2.3 SAÍDAS DO R:
Antes de vermos os resultados gerados para as ANOVAS, precisamos entender dois conceitos.
A pesquisa cientifica sempre parte da premissa de que não existe um efeito observado, de que os
grupos são semelhantes, ou de que não existe diferença entre os tratamento. Para isso, o
pesquisador, antes de ter o resultado em mãos, estabelece duas hipoteses, a primeira e principal, é a
hipótese nula, também chamada de H0, que afirma que, por exemplo, não há diferenteça entre os
resultados dos diferentes tratamentos; a segunda é a hipótese alternativa, chamada também de H’,
H1 ou Ha. Um experimento científico tem como objetivo, investigar a hipótese nula, H 0, aceitando-a
ou rejeitando-a.
Sabendo disso, vamos aos quadros de ANOVA gerados pelo R:
Vemos que essa saída do R se trata em um primeiro momento de uma ANOVA em DIC, pois
possui apenas duas causas de variação (trat e Residuals). Notamos que há diferença significativa entre
os tratamentos, pois o valor da intercessão da linha trat e coluna Pr(<F) é menor que 0,05. Isso indica
a rejeição de H0 (rejeição da hipótese de nulidade).
Já para os testes dos pressupostos, precisamos nos atentar para suas hipóteses H 0, antes de
interpretar os resultados. As hipóteses para os testes de normalidade e homogeneidade de variâncias
são respectivamente: “H0: os resíduos são normais” e “H0: as variâncias entre tratamentos são
homogêneas”. Assim, observando os resultados obtidos na Figura acima, os testes confirmam que há
normalidade (Shapiro Wilk) e homogeneidade da distribuição dos resíduos (Bartlett), pois os
resultados do p-value são maiores que 0,05, ou seja, aceita-se H0 (aceita a hipótese de nulidade).
Vemos nessa saída um quadro de ANOVA, só que desta vez, em DQL, pois há quatro causas
de variação (linha, coluna, trat, Residuals). Isso também é constatado pela presença de linha e coluna
como fontes de variação. Vemos, nesse exemplo que não há diferença significativa entre as filas e as
colunas, mas há entre os tratamentos.
Por último, vemos um quadro de ANOVA em DBC, pois há a presença da causa de variação
bloco. Nesse exemplo não houve diferença significativa entre os blocos, mas houve diferença entre
os tratamentos.