Teste de Levene

O teste de Levene verifica se dois ou mais grupos têm variâncias iguais (homocedasticidade), sem exigir a suposição forte de normalidade que o teste F precisa, que já apresentou por que o teste F clássico é extremamente sensível à não normalidade. Ele se generaliza naturalmente para qualquer número de grupos e é a verificação de homocedasticidade padrão usada na ANOVA antes de confiar na estatística F da ANOVA.

Hipóteses

Diferentemente do teste F, que só compara duas amostras, o teste de Levene se generaliza para \(k \geq 2\) grupos:

\[H_0: \sigma_1^2 = \sigma_2^2 = \cdots = \sigma_k^2 \qquad H_1: \text{pelo menos um } \sigma_i^2 \text{ difere}\]

Um resultado significativo significa que a suposição de variâncias iguais é violada, o que importa porque tanto o teste t de duas amostras combinado quanto a ANOVA de um fator padrão assumem homocedasticidade.

Como o teste de Levene funciona

A ideia-chave é transformar o problema de comparar variâncias em um problema de comparar médias, algo que a maquinaria comum da ANOVA já consegue lidar de forma robusta. Para cada observação \(x_{ij}\) no grupo \(i\), calcule o desvio absoluto em relação ao centro do seu grupo:

\[Z_{ij} = |x_{ij} - \bar{x}_i|\]

em que \(\bar{x}_i\) é a média do grupo (Levene clássico) ou a mediana do grupo (a variante de Brown-Forsythe, mais robusta a outliers e dados assimétricos). Duas ideias simples justificam essa transformação:

  • Se os valores de um grupo estão fortemente agrupados em torno de seu centro, os \(Z_{ij}\) resultantes serão pequenos e razoavelmente consistentes.
  • Se os valores de um grupo estão dispersos, os \(Z_{ij}\) serão maiores e mais variáveis.

Grupos com quantidades genuinamente diferentes de dispersão, portanto, produzem \(Z_{ij}\) médios diferentes, que é exatamente o que uma ANOVA de um fator comum é projetada para detectar. Execute essa ANOVA F-test nos valores \(Z_{ij}\) em vez dos dados brutos:

\[W = \frac{(N-k)}{(k-1)} \cdot \frac{\sum_{i=1}^k n_i (\bar{Z}_i - \bar{Z})^2}{\sum_{i=1}^k \sum_{j=1}^{n_i} (Z_{ij} - \bar{Z}_i)^2}\]

Sob \(H_0\), \(W \sim F(k-1, N-k)\): exatamente a mesma distribuição de referência de uma ANOVA F-test comum, porque é exatamente isso que está sendo calculado, só que sobre os valores \(Z\) transformados.

Exemplo resolvido: três linhas de produção

Aplicar o passo de centralização pela média acima a medições reais torna todo o procedimento concreto:

Consistência entre três linhas de produção

Três máquinas produzem 5 unidades cada; engenheiros de qualidade medem uma dimensão (mm) para verificar se as máquinas são igualmente consistentes (não se suas médias diferem, a ANOVA testaria isso, este teste pergunta sobre a dispersão):

  • Máquina A: 23, 25, 24, 26, 22 (\(\bar{x}_A = 24\), \(s_A^2 = 2{,}5\))
  • Máquina B: 20, 30, 15, 35, 25 (\(\bar{x}_B = 25\), \(s_B^2 = 62{,}5\))
  • Máquina C: 24, 24, 25, 23, 24 (\(\bar{x}_C = 24\), \(s_C^2 = 0{,}5\))

Passo 1: desvios absolutos em relação à média de cada grupo

Máquina A Máquina B Máquina C
\(Z_{i1}\) 1 5 0
\(Z_{i2}\) 1 5 0
\(Z_{i3}\) 0 10 1
\(Z_{i4}\) 2 10 1
\(Z_{i5}\) 2 0 0
\(\bar{Z}_i\) 1,2 6,0 0,4

Média geral de todos os \(Z_{ij}\): \(\bar{Z} = 2{,}5\overline{3}\).

Passo 2: execute a ANOVA de um fator nos \(Z_{ij}\)

Fonte SQ gl QM F valor-p
Entre grupos 91,733 2 45,867 7,438 0,00792
Dentro dos grupos 74,000 12 6,167
Total 165,733 14

\[W = \frac{91{,}733/2}{74{,}0/12} = \frac{45{,}867}{6{,}167} = 7{,}438\]

valor-p = 0,00792. Valor crítico \(F_{0{,}05,2,12} = 3{,}885\).

Decisão: como \(W = 7{,}438 > 3{,}885\) (e \(p < 0{,}05\)), rejeitamos \(H_0\). As três máquinas NÃO têm variância igual: a Máquina B é muito mais errática do que A ou C.

Example icon

Boxplots da dimensão medida em três linhas de produção, mostrando centros similares mas a Máquina B com dispersão muito maior

Os centros das três máquinas parecem similares, mas a caixa e os bigodes da Máquina B são muito mais largos do que os de A ou C: exatamente o padrão que impulsiona a estatística \(W\) significativa.

Levene vs. Brown-Forsythe

A versão clássica acima centraliza cada grupo em sua média. A variante de Brown-Forsythe centraliza cada grupo em sua mediana:

\[Z_{ij} = |x_{ij} - \tilde{x}_i|\]

A variante centralizada pela mediana geralmente é preferida para dados assimétricos ou dados com outliers, porque a mediana é uma medida de centro mais robusta do que a média. Para o exemplo das linhas de produção acima, as medianas dos grupos acontecem de estar próximas das médias dos grupos, já que os três grupos são razoavelmente simétricos, então ambas as variantes dão essencialmente o mesmo resultado, mas em geral elas podem diferir significativamente: um único valor extremo pode deslocar substancialmente a média de um grupo enquanto move pouco sua mediana, então Brown-Forsythe permanece mais estável nessa situação.

Levene clássico Brown-Forsythe
Centro usado Média do grupo Mediana do grupo
Robustez a outliers Moderada Alta
Robustez a dados assimétricos Moderada Alta
Poder quando os dados são normais Levemente maior Levemente menor
Argumento de car::leveneTest() center = mean center = median (padrão do pacote)

⚠️ O teste de Levene só diz que as variâncias diferem, não quais pares, e ele próprio é uma verificação preliminar, não a questão principal

Um teste de Levene significativo diz “a suposição de variâncias iguais é violada” (útil para decidir se deve confiar em um teste t combinado ou em uma ANOVA padrão), ele NÃO identifica por si só quais grupos diferem, ou quão grande é a diferença prática na dispersão. Para a magnitude numérica, reporte as variâncias ou desvios padrão dos grupos diretamente junto com o teste (como feito acima: 2,5 vs. 62,5 vs. 0,5 é uma diferença prática grande, não apenas estatisticamente significativa). Lembre-se também: o teste de Levene não ser significativo não “prova” variâncias iguais, significa apenas que não houve evidência suficiente contra essa suposição, a mesma lógica que se aplica ao resultado nulo de qualquer teste de hipóteses.

Suposições

O teste de Levene exige muito menos do que o teste F, mas não é livre de suposições:

  • Independência: as observações devem ser independentes dentro de cada grupo e entre grupos, exatamente como no teste F e na ANOVA.
  • Nenhuma exigência estrita de normalidade: esse é todo o propósito do teste. Executar uma ANOVA comum nos \(Z_{ij}\) é razoavelmente robusto à forma da distribuição dos dados brutos, por isso o teste de Levene tolera assimetria e caudas pesadas muito melhor do que o teste F ou o teste de Bartlett.
  • Tamanhos de amostra razoáveis por grupo: com \(n_i\) muito pequenos, como no exemplo acima (\(n_i = 5\)), o teste ainda funciona corretamente, mas seu poder para detectar diferenças genuínas de variância é limitado. Amostras maiores tornam o teste mais sensível a diferenças reais de dispersão.

Por conta desse conjunto leve de suposições, o teste de Levene é a verificação de homocedasticidade que a maioria dos softwares estatísticos executa por padrão antes de confiar em um teste t combinado ou na estatística F de uma ANOVA padrão.

O teste de Levene comparado a outros testes de variância

Teste Grupos Exige normalidade Robustez a outliers
Teste F (var.test()) Apenas 2 Sim, estritamente Baixa
Teste de Bartlett 2 ou mais Sim, estritamente Baixa
Teste de Levene (centralizado na média) 2 ou mais Não Moderada
Brown-Forsythe (centralizado na mediana) 2 ou mais Não Alta

O teste de Bartlett generaliza a lógica do teste F para mais de dois grupos, mas herda a mesma fragilidade: com dados não normais, ele pode rejeitar “variâncias iguais” mesmo quando as verdadeiras variâncias populacionais coincidem, simplesmente porque os dados são assimétricos ou de caudas pesadas. O teste de Levene evita essa armadilha ao nunca assumir uma distribuição para os dados brutos, ele só depende dos valores \(Z_{ij}\) transformados alimentando uma ANOVA comum e robusta.

Executando o teste em R

car::leveneTest() executa tanto a variante clássica quanto a de Brown-Forsythe, e uma chamada manual a aov() nos desvios confirma que corresponde exatamente ao resultado manual acima:

values <- c(23,25,24,26,22, 20,30,15,35,25, 24,24,25,23,24)
group  <- factor(rep(c("A","B","C"), each = 5))

library(car)
leveneTest(values ~ group, center = mean)     # classical Levene's test
leveneTest(values ~ group, center = median)   # Brown-Forsythe variant

# Manual verification (matches leveneTest exactly)
Z <- ave(values, group, FUN = function(x) abs(x - mean(x)))
summary(aov(Z ~ group))

leveneTest() reporta o mesmo \(F\), \(gl\), e valor-p calculados manualmente acima: \(F = 7{,}438\) em \((2, 12)\) graus de liberdade, \(p = 0{,}00792\). A chamada manual aov(Z ~ group) corresponde exatamente, porque leveneTest() é, por debaixo dos panos, precisamente essa ANOVA aplicada aos desvios absolutos.

💡 Quando recorrer ao teste de Levene

Execute o teste de Levene sempre que planejar usar um método que assume variâncias iguais (um teste t de duas amostras combinado, ou uma ANOVA de um fator padrão) e não estiver totalmente confiante de que os dados são normais.

  • O teste de Levene rejeita \(H_0\): mude para o teste t de Welch (que não assume variâncias iguais) em vez do teste t combinado, ou para a ANOVA de Welch em vez da ANOVA padrão.
  • Os dados são verificados como normais: o teste F clássico é uma alternativa igualmente válida, levemente mais poderosa para o caso de dois grupos.
  • Os dados são assimétricos ou contêm outliers: prefira a variante Brown-Forsythe centralizada na mediana (center = median) em vez do Levene clássico.
  • A normalidade é incerta ou não testada, o que é o caso comum na prática: o teste de Levene é o padrão mais seguro, já que custa pouco poder em relação ao teste F ou ao teste de Bartlett quando os dados realmente são normais, e evita suas falsas rejeições quando não são.