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:
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 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):
#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 02. Resultado Geral
Figura 03. Resultado do teste de normalidade
Figura04. Resultado do teste de homogeneidade
Figura 05. Resultado do teste post-hoc
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].
Muito boa a explicação. Parabéns!
Olá Elisia! Muito obrigado! Espero ter ajudado!!
Muito bom Herick. Tutorial importantíssimo para a galera. Parabéns!!
Valeu Rosa!!!! Sucesso!!! Tomara que a galera use e abuse!!! hehehe
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!
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!!!
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.
Obrigada, cara. Salvou minha vida! É exatamente o teste que preciso fazer.
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. ????
Muito obrigado, cara! Estou aprendendo R e seu script tutorial foi excelente pra mim! Grande abraço!
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.
Fiquei com a mesma dúvida!!
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.
Não entendi como o arquivo teste.anova.txt está armazenando as variáveis.
Olá Patricia, tudo bem? O arquivo está montando em duas colunas, uma com o fator e a outra com os valores.
Gostaria de saber como monta essa tabela no Excel e depois salva em formato .txt.
Parabens pelo texto! muito esclarecedor!