ANOVA: como utilizar e aplicar

ANOVA: como utilizar e aplicar

Uma das maiores dúvidas de nossos leitores é como utilizar a ANOVA ou até mesmo como verificar se a média entre mais de dois grupos são iguais. Vista como uma generalização do teste t, a ANOVA, abreviação em inglês de Análise de Variância, é amplamente utilizada em experimentos biológicos, agrícolas e diversas outras pesquisas.

Este post é um guia bem simples de como utilizar a chamada One-way ANOVA, nome dado para quando queremos comparar as médias de mais de dois grupos. Vamos passar pela ideia geral, os requisitos para sua utilização, como interpretar o teste de hipótese que a ferramenta realiza e como implementar no R e no Excel.

A ANOVA pode ser utilizada para muitas outras coisas, principalmente em planejamento de experimentos. Se você tem uma boa leitura em inglês, recomendo o artigo da Wikipedia sobre ANOVA.

A ideia por trás da ANOVA

Suponha que temos três amostras independentes de tamanho 100 (n=100) e dispomos o boxplot delas no gráfico na figura abaixo. Além do boxplot, traçamos uma linha auxiliar na horizontal que nos diz qual é a média de todas as 300 observações (3 amostras de 100 observações, 3×100 = 300). Na figura temos dois exemplos: um em que a média das três amostras é diferente (esquerda) e outro em que a média das três amostras é igual (direita).

amostras independentes anova boxplot
Figura: Exemplo de três amostras e seus boxplots. A linha cinza horizontal representa a média de todas as observações.

Note que se as médias das amostras são diferentes, como no caso da figura à esquerda, a diferença entre a média de cada amostra e a média global (a linha cinza horizontal) vai ser grande. Por outro lado, se as médias são iguais, a média de cada grupo/amostra é a mesma que a média global ou muito próximas. Tão próximas que estatisticamente são iguais.

A ideia da ANOVA é justamente verificar o quão distante a média de cada grupo está da média global. Ou seja, em termos de variância, se os grupos possuem a mesma média, a variância entre os grupos deve ser pequena quando comparada com a variância amostral dentro de cada grupo. Caso isto não tenha ficado tão claro para você, visualize a figura acima e pense que se as médias forem estatisticamente iguais as caixas dos boxplots irão conter a média global. Caso contrário, eu rejeito a hipótese de igualdade se uma linha horizontal não pode ser traçada tal que cruze todas as caixas de boxplot.

Mas ATENÇÃO! Demos apenas a ideia da ANOVA, agora para facilitar sua interpretação e visualização. Para realmente utilizar a ferramenta é preciso satisfazer alguns requisitos dispostos a seguir.

O que preciso ter para usar ANOVA

Assim como o teste t, a ANOVA possui algumas restrições para ser usada que são listadas abaixo.

  • Os resíduos (observação menos a média) devem ser normais ou próximos da normalidade. Para verificar se suas dados são normais, clique aqui.
  • As variâncias de cada amostra devem ser iguais. Caso não seja, é possível padronizar dividindo pela variância amostral de forma a obter variância igual a um em todos os grupos.
  • As amostras devem ser independentes.

Como interpretar uma tabela ANOVA

Não entraremos em detalhes do cálculo dos resultados de uma ANOVA, deixamos isso para os cursos de estatística e planejamento de experimentos. O foco deste tópico é como interpretar a tabela ANOVA resultante.

Para o exemplo da esquerda da figura mostrada acima, ou seja, para médias diferentes em cada grupo, temos a seguinte tabela ANOVA nesta saída do R (vamos mostrar na sequência como fazer).

Analysis of Variance Table

Response: valor
           Df  Sum Sq Mean Sq F value    Pr(>F)    
grupo       2 1368.65  684.32  697.89 < 2.2e-16 ***
Residuals 297  291.23    0.98                      

Esta é uma tabela ANOVA comum. A primeira linha corresponde à análise de variância dos grupos/amostras/tratamentos, enquanto que a segunda linha representa a análise de variância dos resíduos. Na primeira coluna temos os graus de liberdade, seguido da soma de quadrados (Sum Sq), Soma média de quadrados (Mean Sq) que nada mais é que a soma de quadrados divididos pelos graus de liberdade, Em seguida, temos o valor da estatística F utilizada para realizar o teste de hipótese (F value) e por último o p-valor (Pr(>F)).

No fim das contas, o que provavelmente mais importa para você é o p-valor, valor da última coluna. Se o p-valor é abaixo do nível de significância estabelecido, geralmente 0.05 (5%), então existe pelo menos uma diferença significativa entre dois grupos. CUIDADO: observe que eu disse pelo menos uma diferença significativa entre dois grupos, ou seja, um p-valor significativo não quer dizer que a média é diferente em todos os grupos, mas sim que existe pelo menos um grupo de média diferente dos demais. Por isso a importância de se observar os gráficos para verificar qual o grupo diferente.

Para ilustrar também o caso de médias iguais, vejamos a saída da tabela ANOVA para o exemplo mostrado à direita da figura acima.

Analysis of Variance Table

Response: valor
           Df Sum Sq Mean Sq F value Pr(>F)
grupo       2   0.32 0.16195  0.1332 0.8753
Residuals 297 361.04 1.21562               

Note que o p-valor é bem acima de 0.05. De fato, os grupos tem médias muito parecidas. Tanto que a soma de quadrados (Sum Sq) dos grupos é de 0.32, minúsculo perto dos 361.04 do mesmo correpondente aos resíduos. Como dito anteriormente, se as médias dos grupos são iguais, elas coincidem com a média global e quando calculamos o quão distante as médias de cada grupo estão da média global, temos uma soma de quadrados pequena.

Como implementar no R ou Excel

Para implementar no R é preciso criar um conjunto de dados de duas variáveis: uma com os valores a serem estudados e outra identificando a que grupo aquele valor pertence. Depois basta fazer um ajuste linear pela função lm() e utilizar a função anova() para obter a tabela ANOVA. No exemplo abaixo vamos criar os mesmos dados da figura mostrada anteriormente, criar esse conjunto de dados de duas variáveis e construir a tabela ANOVA. O código pode ser simplesmente copiado e colado que você irá obter os mesmos resultados mostrados aqui.

#### Gerar amostras aleatórias
# Médias diferentes
set.seed(14)
am1 <- rnorm(100) + 5
am2 <- rnorm(100) + 7
am3 <- rnorm(100) + 2

diff <- data.frame(valor = c(am1, am2, am3),
                   grupo = rep(c("g1", "g2", "g3"), each =100))

# Médias iguais
am1 <- rnorm(100) + 4
am2 <- rnorm(100) + 4
am3 <- rnorm(100) + 4

iguais <- data.frame(valor = c(am1, am2, am3),
                     grupo = rep(c("g1", "g2", "g3"), each =100))


#### Boxplots
par(mfrow = c(1,2))
boxplot(valor~grupo,
        data = diff, 
        col = c("lightyellow", "lightpink", "lightblue"),
        main = "médias diferentes")
abline( h = mean(diff$valor),
        col = "gray80",
        lwd = 2 )

boxplot(valor~grupo,
        data = iguais, 
        col = c("lightyellow", "lightpink", "lightblue"),
        main = "médias diferentes")
abline( h = mean(iguais$valor),
                 col = "gray80",
                 lwd = 2 )
        
#### ANOVA 
fit.diff <- lm(valor ~ grupo, data = diff) 
anova(fit.diff)

fit.iguais <- lm(valor ~ grupo, data = iguais) 
anova(fit.iguais)

Para ver como implementar uma ANOVA no Excel, veja aqui neste link do eHow Brasil.

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *