Como fazer Análise de Variância One-Way (ANOVA One-Way) no R

A ANOVA é um teste paramétrico (possui estimativas de parâmetros) utilizado quando o pesquisador deseja verificar se existem diferenças entre as médias de uma determinada variável (variável resposta) em relação a um tratamento com dois ou mais níveis categóricos (variável preditora). O teste t também é utilizado nesse tipo de procedimento (com no máximo de dois níveis), porém a ANOVA é indicada para análises com um “n” amostral superior a 30.

Antes de realizar a ANOVA é importante verificar se os dados atingem os pressupostos da análise. Eles servem para que o algoritmo da análise funcione em sua mais perfeita forma, ou seja, se algum deles for violado, o teste perderá sua robustez e, em alguns casos, sua validade.

A ANOVA possui três principais pressupostos:

Amostras independentes – isso significa que uma observação não pode ser influenciada pela anterior ou pela próxima. Esse pressuposto garante que os dados sejam coletados aleatoriamente dentro do espaço amostral.

Homogeneidade das variâncias entre os grupos – as variância dentro de cada grupo é igual (ou pelo menos aproximadamente) àquela dentro de todos os grupos. Desta forma, cada tratamento contribui de forma igual para a soma dos quadrados.

Resíduos seguem uma distribuição normal – assume-se que a média geral dos resíduos é igual a zero, ou seja, distribuem-se normalmente. Esse pressuposto não é muito restritivo dependendo do tamanho amostral.

Portanto, vamos à prática!!

Suponha queira-se testar se existem diferenças na abundância de jacarés entre três tipos de ambiente (lagoas abertas, lagoas fechadas e canal). 15 observações são feitas em cada ambiente e obtêm-se os seguintes resultados (Esses valores são fictícios e foram gerados no Excel):

Lagoas abertas: 13, 11, 14, 12, 12, 10, 10, 15, 10, 13, 11, 12, 11, 10, 14

Lagoas fechadas: 9, 6, 9, 5, 8, 10, 11, 11, 5, 8, 5, 11, 11, 8, 6

Canal: 17, 15, 20, 19, 17, 23, 21, 18, 19, 21, 15, 15, 19, 15, 17

A planilha deve ser montada em duas colunas, no seguinte formato:

Figura-1

Figura 01. Exemplo de organização dos dados

Segue um script comentado para a realização da análise no R (em verde são comentários):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#Mudar o diretório do R para a pasta onde esta sua planilha (deve-se colocar o endereço do seu computador)
 setwd("C:/Users/Herick/Desktop")
 
#ler a planilha (a planilha não pode conter espaços) - teste é o nome que eu nomeei
teste.anova< -read.table("teste.anova.txt",header=T)
 
#Função para análise de variância (variável resposta ~ variável preditora)
anova<-aov(Abundancia~Ambiente,data=teste.anova)
 
#Verificar um sumário dos resultados
summary(anova)
 
#Teste de normalidade (a normalidade é alcançada com um valor de p > 0,05)
shapiro.test(resid(anova))
 
#carregar pacote para rodar a função do teste para homogeneidade das variâncias
#Caso não tenho instalado é só digitar: install.packages("car")
library(car)
 
#Teste da homogeneidade das variâncias (a homogeneidade é alcançada com valores acima de p acima de 0,05)
leveneTest(Abundancia~Ambiente,data=teste.anova)
 
# O resultado da ANOVA foi significativo a um p < 0,05, ou seja, é necessário realizar um teste post-hoc para verificar quais grupos diferem entre si
 
#Teste de Tukey
TukeyHSD(anova)
 
#Caso queira visualizar o gráfico
boxplot(Abundancia~Ambiente,data=teste)

Finalmente, caso você tenha digitado tudo corretamente (inclusive os valores de cada ambiente), o resultado final deve ser o seguinte:

Figura-2

Figura 02. Resultado Geral

Figura-3

Figura 03. Resultado do teste de normalidade

Figura-4

Figura04. Resultado do teste de homogeneidade

Figura-5

Figura 05. Resultado do teste post-hoc

Figura-6

Figura 06. Visualização Gráfica

Desta forma, conclui-se que a abundância de jacarés é significativamente diferente em cada um dos ambientes analisados, já a ANOVA foi significativa (p = 8,62e-15) e o teste de Tukey demonstrou que todos os tratamentos diferem entre si.

Este tutorial foi elaborado por Herick Soares de Santana, aluno de doutorado do programa de pós-graduação em Ecologia de Ambientes Aquáticos Continentais. Gosto bastante de trabalhar com números e estatística univariada e multivariada (principalmente no ambiente R) e, atualmente, tenho focado minhas pesquisas em dinâmica populacional e crescimento de peixes migradores, ecologia aquática e efeito da construção de hidroelétricas sobre as comunidades aquáticas. Qualquer dúvida, sugestão ou erro no script é só enviar um email para [email protected].

By |2018-12-06T01:56:23+00:0007-05-2014|guia|16 Comments

About the Author:

O posgraduando.com é um espaço na internet para troca de experiências, opiniões, depoimentos, dicas, tutoriais, humor e debates saudáveis sobre o meio acadêmico. Para participar também, leia nossas instruções aos colaboradores.

16 Comments

  1. Elisia 16.05.14 at 21:57 - Reply

    Muito boa a explicação. Parabéns!

    • Herick 19.05.14 at 21:40 - Reply

      Olá Elisia! Muito obrigado! Espero ter ajudado!!

  2. Rosa da Silva Santos 30.05.14 at 20:16 - Reply

    Muito bom Herick. Tutorial importantíssimo para a galera. Parabéns!!

    • Herick 02.06.14 at 07:39 - Reply

      Valeu Rosa!!!! Sucesso!!! Tomara que a galera use e abuse!!! hehehe

  3. Guellity Marcel 09.11.14 at 23:04 - Reply

    Parabéns, Herick, pela aula!
    Gostei muito. O script me ajudou ainda mais, pois agora poderei tê-lo como modelo.
    Sou biólogo, mestrando em Ecologia e Conservação e trabalho com ecologia de paisagem e mamíferos no pantanal.

    Muito obrigado. Abração!
    http://www.euquerobiologia.com.br

    • Herick 08.12.14 at 19:04 - Reply

      Olá Guellity Marcel!!! Que ótimo que valeu a pena!!! Fico feliz em ter essa contrapartida de quem tem acesso ao script!

      Muito legal trabalhar com Ecologia de Paisagem!! Quem sabe possamos fazer parcerias!!! Bom trabalho e tudo de bom!!!

  4. Fernando Carvalho 30.08.15 at 14:24 - Reply

    Caros,
    A soma dos resíduos igual a zero é uma propriedade estatística básica, e não uma característica específica da distribuição normal.
    Muito cuidado.
    Para testar a distribuição normal deve-se avaliar a participação dentro de cada desvio (1º, 2º e 3º) por padrão.

  5. Allana 10.03.16 at 02:03 - Reply

    Obrigada, cara. Salvou minha vida! É exatamente o teste que preciso fazer.

  6. Stela 14.06.16 at 13:41 - Reply

    Adorei! O script ficou show.
    Tô começando estudar o R agora e gostaria de saber mais sobre a anova, tipos DIC, DBS etc. Se tiver alguns exemplos para próximas pastagens, eu adoraria. ????

  7. Eduardo 03.07.16 at 12:03 - Reply

    Muito obrigado, cara! Estou aprendendo R e seu script tutorial foi excelente pra mim! Grande abraço!

  8. Leandro 06.07.16 at 13:56 - Reply

    Quando você diz ““n” amostral superior a 30”, cada amostra tem que ser de no minimo 30 elementos ou tem que ter no minimo 30 elementos no total considerando todas as amostras? Pois no seu exemplo, cada amostra tem tamanho 15. Obrigado.

    • Aline 06.09.16 at 09:47 - Reply

      Fiquei com a mesma dúvida!!

    • Herick 26.12.17 at 19:24 - Reply

      Olá Leandro, é 30 no total, mas deixo um “warning”, esse número é uma convenção, não é regra e muito menos absoluto, isso seria um número ideal para conseguir atingir os pressupostos, mas tudo vai depender muito da distribuição de cada variável.

  9. Patricia 13.12.16 at 16:35 - Reply

    Não entendi como o arquivo teste.anova.txt está armazenando as variáveis.

    • Herick 26.12.17 at 19:23 - Reply

      Olá Patricia, tudo bem? O arquivo está montando em duas colunas, uma com o fator e a outra com os valores.

  10. Marcus Vinícius 11.07.18 at 12:18 - Reply

    Parabens pelo texto! muito esclarecedor!

Leave A Comment