Teste de Grubbs
Aderência e normalidade · distribuição de referência: G (crítico via t)
Quando usar
Verificar se o valor mais extremo de uma amostra é um outlier, isto é, distante demais para vir da mesma distribuição normal que os outros.
Hipótese nula
Não há outlier: todos os valores vêm da mesma distribuição normal.
Pressupostos
- Dados normais, fora o possível outlier
- Procura um outlier por vez: repetir o teste depois de remover um infla o erro tipo I
Estatística
G = \dfrac{\max_i |x_i - \bar{x}|}{s}Como reportar
G = 2,91; n = 20; p = 0,017: o maior valor é um outlier
No R e no Python
R
library(outliers)
grubbs.test(x)
Python
n = len(x)
G = np.abs(x - x.mean()).max() / x.std(ddof=1)
t = stats.t.ppf(1 - 0.05 / (2 * n), n - 2)
G_crit = (n - 1) / np.sqrt(n) * np.sqrt(t**2 / (n - 2 + t**2))
No Python, stats é scipy.stats e np é numpy.
Variantes e alternativas
- Dixon (Q), para amostras muito pequenas
- ESD generalizado de Rosner, para procurar vários outliers de uma vez
Onde fica no catálogo
Aderência e normalidade. Aderência: os dados seguem a distribuição esperada? Os testes de normalidade são o caso mais comum e conferem um pressuposto dos testes paramétricos.
Na árvore de decisão
- O que você quer fazer? Verificar um pressuposto ou a distribuição dos dados
- O que você quer verificar? Se um valor extremo é um outlier