Um outlier (valor aberrante/atípico ou fora de série) é uma observação que apresenta um grande afastamento das demais do conjunto. Ele fica visível quanto é plotado um gráfico dos dados ou é feito um histograma com a distribuição deles. Quando é necessário caracterizar essa distribuição, um valor muito grande ou muito pequeno (quando comparado com o restante dos dados) pode gerar conclusões erradas sobre o objetivo de estudo.
Como encontrar
De modo a evitar classificações subjetivas do que está afastado ou não, existem técnicas para definir intervalos dentro dos quais estão os dados – o que estiver fora, é outlier. Para uma série temporal sem tendência, existe uma forma bem simples que é definir um valor (20, por exemplo) e limitar o valor absoluto (sem sinal) para ser menor que esse limite (o que estiver fora, é outlier).
O Teste de amplitude (range) de Tukey usa o conceito de amplitude (ou intervalo) interquartil, desenvolvido com a finalidade de avaliar o grau de espalhamento de dados (dispersão) em torno da medida de centralidade (assim como o desvio padrão e a variância). Um quartil é qualquer um dos três valores que divide o conjunto ordenado de dados em quatro partes iguais, e assim cada parte representa 1/4 da amostra ou população. Veja o passo-a-passo para aplicar o teste e os conceitos envolvidos:
- Ordenar a amostra em ordem crescente
- Calcule a mediana (ou segundo quartil – Q1/4 – que indica metade da amostra)
- Encontre o quartil inferior (ou primeiro quartil – Q1/4 – ou ainda 25º percentil, pois indica 25% da amostra ordenada do menor para o maior) – se tiver mais de uma amostra “ao redor” desse ponto, fazer a média simples entre os dois valores
- Encontre o quartil superior (ou terceiro quartil – Q3/4 – ou ainda 75º percentil)
- Calcule a amplitude interquartílica e multiplique por 1,5: A1 = (Q3/4-Q1/4)*1.5
- Calcule as “barreiras internas”: Q3/4 + A1 (barreira superior) e Q1/4 – A1 (barreira inferior)
- Calcule a amplitude interquartílica e multiplique por 3: A2 = (Q3/4-Q1/4)*3
- Calcule as “barreiras externas”: Q3/4 + A2 (barreira superior) e Q1/4 – A2 (barreira inferior)
Dessa forma, os dados fora das “barreiras internas” são outliers moderados e fora das “barreiras externas” são outliers extremos.
Outro teste envolve calcular o Desvio Padrão Absoluto da Média (MAD) e o Desvio Padrão Quadrático da Média (MSE). Um MAD baixo e um MSE alto indicam ocorrência de outliers no conjunto de dados – veja mais no post sobre Medidas de Acurácia.
O que fazer com os outliers
Geralmente, os outliers são identificados para serem excluídos das análises logo de início. No entanto, existem situações em que sua presença faz toda a diferença na análise – como em uma ditribuição logarítmica de valores em um grafico linear. Por vezes, apenas a magnitude em um dos eixos está muito grande mas que um procedimento estatístico utilizando valores próximos reduz a aberração.
Nesse caso, já estamos falando de valores extremos – nem sempre um outlier é um valor extremo. A técnica de trimming remove uma fração dos dados de cada extremo. Veja esse exemplo no R:
mean(c(1:10, 300), trim=.1)
Já o Winsorization serve para substituir valores extremos (somente os mais extremos ou uma coleção dos mais distantes, que é o exemplo abaixo):
winsor2 = function (x, multiple=3){ if(length(multiple) != 1 || multiple <= 0) { stop("bad value for 'multiple'") } med = median(x) y = x - med sc = mad(y, center=0) * multiple y[ y > sc ] = sc y[ y < -sc ] = -sc y + med }
O procedimento abaixo utiliza uma função exponencial para calcular um fator a ser multiplicado pelo valor da série – desse modo, quanto maior sua magnitude, maior o corte. Para reduzir a magnitude de todos os valores, multiplica-se o resultado anterior por um outro fator repetidamente até o valor máximo da série atingir um limite:
# Mediana e desvio padrão dos valores absolutos de toda a amostra mediana = median(abs(x)) despad = sd(abs(x)) # Coeficiente para redução proporcional e eliminar outliers coef = 1/(exp(abs(x)/despad)) # Porcentagem para redução de toda a amostra if (mediana < despad){ p = mediana/despad } else { p = despad/mediana } # Cálculo do novo valor (verifica necessidade de tirar outliers) if (max(abs(x)) > 300){ novos_valores = p*coef*x } else { novos_valores = p*x } # Reaplicação do filtro while (max(abs(novos_valores)) > 20){ novos_valores = p*novos_valores }
Não sei para que ser, mas o script acima pode ter alguma serventia para alguém. Se usar, por favor comente para que lhe foi útil =)
(curiosidade) Livro Outliers
No livro Outliers (2008), o autor Malcom Gladwell apresenta uma extensa pesquisa destinada a comprovar que são inúmeras as variáveis que levam uma pessoa ao sucesso extraordinário, apresentando algumas delas. Ele acaba por desmistificar a formação de um gênio: são pessoas que trabalharam muito, estudaram muito e que estavam no lugar certo e na hora certa. Um dos pontos abordados é a diferença do oriente e do ocidente, onde os orientais pregam muito a importância da paciência – algo muito importante na pesquisa científica mas que vai de encontro ao imediatismo do pensamento ocidental.
Fontes
2 comments