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%.

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.

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.