Teste F de igualdade de variâncias

O teste F compara as variâncias de duas populações independentes formando a razão entre suas variâncias amostrais. Ele é usado como verificação preliminar antes de testes t combinados, mas sua extrema sensibilidade à não normalidade torna o teste de Levene uma alternativa mais robusta na maioria das situações práticas.

Contexto: dois usos da distribuição F

A distribuição F aparece em dois contextos de teste diferentes que não devem ser confundidos:

  • Teste F para duas variâncias: testa \(H_0: \sigma_1^2 = \sigma_2^2\) usando a razão \(S_1^2/S_2^2\). Este é o tema deste post.
  • Teste F na ANOVA: testa a igualdade de médias em três ou mais grupos usando a razão entre a variância entre grupos e a variância dentro dos grupos. Abordado no post de ANOVA.

Ambos usam a distribuição F, mas respondem a perguntas completamente diferentes.

Hipóteses

Teste \(H_0\) \(H_1\)
Bilateral \(\sigma_1^2 = \sigma_2^2\) \(\sigma_1^2 \neq \sigma_2^2\)
Unilateral à direita \(\sigma_1^2 = \sigma_2^2\) \(\sigma_1^2 > \sigma_2^2\)
Unilateral à esquerda \(\sigma_1^2 = \sigma_2^2\) \(\sigma_1^2 < \sigma_2^2\)

Estatística do teste

Dadas duas amostras independentes com variâncias amostrais \(S_1^2\) (\(n_1\) observações) e \(S_2^2\) (\(n_2\) observações):

\[F = \frac{S_1^2}{S_2^2}\]

Sob \(H_0\) e a suposição de que ambas as populações são normais, \(F \sim F(n_1-1,\, n_2-1)\).

Por convenção, coloque a variância maior no numerador para um teste unilateral à direita. Para testes bilaterais, o valor-p é \(2 \times \min(P(F \leq F_\text{obs}),\, P(F \geq F_\text{obs}))\).

⚠️ O teste F é extremamente sensível à não normalidade

Diferentemente do teste t (que é robusto a desvios leves de normalidade), o teste F para variâncias não é robusto. Dados não normais podem produzir resultados altamente significativos mesmo quando as variâncias populacionais são iguais, simplesmente porque a razão de variâncias amostrais é sensível à assimetria e a caudas pesadas.

Para dados não normais, use:

  • Teste de Levene: baseado em desvios absolutos em relação à mediana do grupo. Muito mais robusto. Disponível no R via car::leveneTest().
  • Teste de Brown-Forsythe: semelhante ao de Levene, mas usa a mediana em vez da média, ainda mais robusto a outliers. Disponível via lawstat::levene.test(..., location = "median").

Use o teste F apenas quando tiver verificado que ambas as amostras vêm de distribuições normais.

Exemplos

Exemplo 1: consistência de duas linhas de produção (bilateral)

Uma fábrica opera duas linhas de produção fabricando o mesmo componente. Engenheiros de qualidade amostram 20 unidades da Linha 1 (\(S_1^2 = 4{,}8\) mm²) e 18 unidades da Linha 2 (\(S_2^2 = 2{,}1\) mm²). Há evidência de que a variabilidade difere entre as linhas?

Hipóteses: \(H_0: \sigma_1^2 = \sigma_2^2\) vs. \(H_1: \sigma_1^2 \neq \sigma_2^2\).

Estatística do teste:

\[F = \frac{4{,}8}{2{,}1} \approx 2{,}286 \quad (gl_1 = 19,\; gl_2 = 17)\]

Valor-p (bilateral):

\[p = 2 \times P(F_{19,17} \geq 2{,}286) \approx 2 \times 0{,}061 = 0{,}122\]

Decisão: \(p = 0{,}122 > 0{,}05\), não rejeitamos \(H_0\).

Nenhuma evidência significativa de diferença na variabilidade entre as duas linhas no nível de 5%.

Distribuição F com regiões de rejeição bilaterais e a estatística F observada para o exemplo das linhas de produção

Exemplo 2: precisão de um novo instrumento (unilateral à direita)

Um laboratório afirma que um novo instrumento de medição é mais preciso do que o atual. Instrumento atual: \(n_1 = 25\) medições, \(S_1^2 = 0{,}042\) mg². Novo instrumento: \(n_2 = 21\) medições, \(S_2^2 = 0{,}018\) mg². Há evidência de que o instrumento atual é mais variável?

Hipóteses: \(H_0: \sigma_1^2 = \sigma_2^2\) vs. \(H_1: \sigma_1^2 > \sigma_2^2\).

Estatística do teste:

\[F = \frac{0{,}042}{0{,}018} \approx 2{,}333 \quad (gl_1 = 24,\; gl_2 = 20)\]

Valor-p (unilateral à direita):

\[p = P(F_{24,20} \geq 2{,}333) \approx 0{,}038\]

Decisão: \(p = 0{,}038 < 0{,}05\), rejeitamos \(H_0\).

O instrumento atual é significativamente mais variável do que o novo. A afirmação do laboratório sobre a maior precisão é sustentada.

Distribuição F com região de rejeição à direita e a estatística F observada para o exemplo da precisão do instrumento

Conexão com o intervalo de confiança

Um IC \((1-\alpha)\) para \(\sigma_1^2/\sigma_2^2\) está diretamente ligado ao teste F bilateral: se o IC exclui 1, o teste rejeita \(H_0\) no nível \(\alpha\). O IC também mostra a magnitude da razão de variâncias, algo que o valor-p isoladamente não revela.

Para o Exemplo 1: \(\text{IC} = (F/F_{0{,}975},\; F/F_{0{,}025}) = (2{,}286/2{,}769,\; 2{,}286/0{,}393) = (0{,}83,\; 5{,}82)\). Como 1 está dentro do intervalo, o teste não rejeita \(H_0\), consistente com \(p = 0{,}122\).

Executando o teste em R

var.test() lida com o teste F propriamente dito, com Levene e Brown-Forsythe ao lado como as alternativas mais robustas quando a normalidade está em dúvida:

# F-test for equality of variances
var.test(x1, x2, alternative = "two.sided")
var.test(x1, x2, alternative = "greater")

# Levene's test (more robust, recommended for non-normal data)
library(car)
leveneTest(value ~ group, data = df)

# Brown-Forsythe test
library(lawstat)
levene.test(value, group, location = "median")

var.test() no R coloca a variância maior no numerador por padrão quando alternative = "greater".

💡 Qual teste usar para comparação de variâncias

  • Dados normais (verificado por Shapiro-Wilk ou gráfico Q-Q): use o teste F (var.test()).
  • Dados não normais ou normalidade incerta: use o teste de Levene (car::leveneTest()).
  • Dados com outliers extremos ou caudas muito pesadas: use Brown-Forsythe.
  • Você só precisa verificar a suposição de igualdade de variâncias antes de um teste t combinado: observe que o teste t de Welch não exige variâncias iguais e é preferido por padrão. O teste de variância frequentemente é desnecessário se você simplesmente usar Welch.