Ticker

6/recent/ticker-posts

4 Formas de Encontrar Outliers em Seus Dados

Neste ano, tenho ofertado um curso de Aprendizagem de Máquina (AM) para alunos do curso técnico de informática do IFAL - Campus Arapiraca. No curso, chegamos na etapa de pré-processar os dados que serão utilizados pelos modelos de AM e precisei falar um pouco sobre os problemas e soluções existentes para que os dados a serem utilizados possuam a melhor forma possível.

Outliers e dados anormais quando exibidos em gráficos.

Um dos problemas comuns existentes em diversos conjuntos de dados que nos deparamos ao treinar modelos de AM é a presença de outliers - que podem ou não ser explicados pelo processo de aquisição dos dados. A presença de outliers em um dataset se torna problemática quando leva os testes a perderem informações importantes ou distorce o resultado real. Ah, apesar do nome famoso, vale conceituar que um outlier nada mais é do que um ponto significativamente distante de outros pontos do conjunto de dados.

Para identificá-los, não há uma regra estatística específica. Essa identificação depende da área de conhecimento e do processo de coleta que envolve os dados. Porém, apesar de não haver uma definição matemática sólida, ou uma fórmula, existem diretrizes e testes estatísticos que podemos utilizar para encontrar pontos candidatos a serem considerados outliers. Nesta publicação vou mostrar 4 formas que utilizo para encontrar outliers.

Outliers e seus impactos

O conceito de outliers é simples - são valores notavelmente diferentes de outros pontos de dados e que podem causar problemas em procedimentos estatísticos e, obviamente, em modelos de AM.

Para demonstrar o quanto um único outlier pode afetar os resultados, vamos examinar as propriedades de um conjunto de dados de exemplo. Ele contém 15 medições com a altura de pessoas do sexo masculino. Um destes valores é um outlier. A tabela abaixo mostra a média da altura e o desvio padrão considerando os dados com e sem outlier.

Durante toda essa publicação, usaremos esse conjunto de dados em CSV: baixe aqui.
Com outlier Sem outlier Diferença
2,4m 1,8m 0,6m
σ 2,3m 0,14m 2,16m

A partir dessa tabela, é possível visualizar como um único outlier pode distorcer a realidade. Um único valor muda a média (x̄) de altura em 0,6 metros e o desvio padrão (σ) em consideráveis 2,16m. Neste cenário, testes de hipótese que utilizam a média (com o outlier presente) estarão errados. Além disso, o desvio padrão maior irá reduzir drasticamente o poder estatístico dos dados.

Assim, antes de realizar uma análise estatística, devemos identificar potenciais outliers. Este é o principal foco dessa publicação. Na próxima publicação, veremos o que podemos fazer com eles (e.g., suavizar média, obter dados por regressão linear).

Existe uma variedade de formas para encontrar outliers. Todas elas aplicam diferentes abordagens para encontrar valores que não são usuais quando comparados ao restante do conjunto de dados. Nesta publicação, veremos 4 formas, começando pelas formas visuais e depois partindo para avaliações mais analíticas.

Ordenando seu conjunto de dados para encontrar outliers

Ordenar o seu conjunto de dados é uma maneira simples mas efetiva de destacar valores não-usuais. Você deve simplesmente ordenar o seu conjunto de dados e então procurar por valores incomumente altos ou baixos.

Por exemplo, eu ordenei o conjunto de dados de exemplo em uma ordem ascendente, como mostrado abaixo. O valor mais alto é claramente diferente dos anteriores (em até 10 níveis de grandeza). Apesar de essa abordagem não quantificar quão incomum é o nível do outlier, ela é interessante porque em um relance você irá encontrar valores incomumente altos ou baixos.

Valores do atributo altura ordenados do menor para o maior.

Utilizando gráficos para identificar outliers

Diagramas de caixa (i.e., boxplot), histogramas, gráfico de dispersão (i.e., scatterplot) podem destacar outliers

No caso dos diagramas de caixa, pontos ou asteriscos são exibidos fora da caixa quando outliers são encontrados no conjunto de dados. Estes gráficos utilizam a regra do interquartil para encontrar outliers. O diagrama de caixa abaixo mostra nosso conjunto de dados de exemplo. Fica claro que o outlier é bastante diferente que um valor típico desse conjunto.



Histogramas também enfatizam a existência de outliers. Devemos procurar por barras isoladas, como mostrado abaixo. O gráfico posiciona pontos de dados legítimos à esquerda.


A maioria dos outliers discutidos nessa publicação são outliers invariáveis. Ou seja, nós procuramos em uma distribuição de dados por uma única variável que possui valores fora desta distribuição. Entretanto, podemos utilizar um gráfico de dispersão para detectar outliers em um ambiente multivariado.

No gráfico abaixo, estamos observando duas variáveis, entrada e saída. O gráfico de dispersão com uma linha de regressão mostra como a maioria dos pontos seguem a linha ajustada para o modelo. Entretanto, o ponto circulado não se encaixa bem no modelo.


É interessante observar que o valor de entrada (~15) para essa observação não é incomum - já que valores de Entrada variam de 10 até 20 no eixo X. Além disso, note como o valor de Saída (~40) está, de forma similar, dentro dos valores do eixo Y. Nem a entrada e nem a saída são valores incomuns para este conjunto de dados. Porém, os valores formam um outlier por não se encaixarem no modelo (i.e., na reta traçada).

Este tipo de outlier pode ser um problema em análise de regressão. Dada a natureza multifacetada da regressão multivariada, existe uma quantidade de numerosa de tipos de outliers que podem estar presentes neste domínio.

Utilizando Z-Score para detectar outliers

Nas estatísticas, a pontuação padrão, i.e., Z-score ou Escore-Z, é o número de desvios padrão pelos quais o valor de uma pontuação bruta está acima ou abaixo do valor médio do que está sendo observado ou medido. Escores brutos acima da média têm escores padrão positivos, enquanto aqueles abaixo da média têm escores padrão negativos.

Por exemplo, um Z-score de 2 indica que uma observação está dois desvios padrão acima da média, enquanto um Z-score de -2 significa que esta observação está dois desvios padrão abaixo da média. Um Z-score de zero representa um valor que é igual à média.

Para calcular um Z-score, é necessário saber a média da população e o desvio padrão da população. Em casos onde não é possível medir cada observação de uma população, é possível estimar o desvio padrão usando uma amostra aleatória. O cálculo fica o seguinte: 


onde, X é a observação, μ é a média e σ o desvio padrão.

Quanto mais distante o Z-score de uma observação é de zero, mais incomum ela é. Um valor de corte padrão para encontrar outliers são Z-scores de +/- 3 (ou além) distantes de zero. A distribuição de probabilidade abaixo mostra a distribuição de escores-Z em uma distribuição normal padrão. Z-scores além de +/- 3 são tão extremos que mal podermos vê-los abaixo da curva.  


Em uma população que segue uma distribuição normal, valores de escore-Z mais extremos que +/- 3 possuem uma probabilidade de 0,0027 (2*0,00135), que é aproxidamente 1 em 370 observações. Entretanto, se seus dados não seguem uma distribuição normal, essa abordagem talvez não seja adequada ou precisa.

Escore-Z e nosso conjunto de dados de exemplo 

No nosso conjunto de dados abaixo, eu mostro os valores de altura junto com os valores de Z. Esta abordagem identifica a mesma observação como um outlier.

Perceba que escores-Z podem levar a um mal entendido com conjuntos de dados pequenos porque o valor máximo do escore-Z é limitado a (n-1)/√n. De fato, nosso escore-Z de ~3,6 é bem próximo do valor máximo para uma amostra de 15 elementos. Amostras de 10 ou menos observações não podem ter escores-Z que excedam um valor corte de +/-3.

Além disso, note que a presença de um outlier diminui os escores-Z, inflando a média e o desvio padrão. Veja como todos os escores-Z são negativos exceto o valor do outlier. Se nós tivéssemos calculado os escores-Z sem o outlier, eles seriam diferentes. Esteja consciente que se seu conjunto de dados possui outliers, valores de Z serão enviesados tal que eles aparentem ser menos extremos (i.e., mais próximos de zero).

Encontrando outliers com Testes de Hipótese

Também podemos utilizar testes de hipótese para encontrar outliers. Vários testes existem para essa finalidade, porém eu vou focar em apenas um para ilustrar como eles funcionam. Nesta publicação, eu demonstro o Teste de Grubb, que testa as seguintes hipóteses:

- Nula: Todos os valores da amostra foram obtidos de uma única população que segue a mesma distribuição normal.
- Alternativa: Um valor da amostra não foi obtido da mesma população normalmente distribuída como os demais valores.

Se o p-value para esse teste for menor que o nível de significância, você pode rejeitar a hipótese nula e concluir que um dos valores da amostra é um outlier. A análise identifica o valor em questão.

Vamos realizar o teste de hipótese utilizando o nosso conjunto de dados de exemplo. O teste de Grubb assume que seus dados foram obtidos de uma população normalmente distribuída pode detectar apenas um outlier. Se você suspeita que sua amostra possui mais de um outlier, utilize um teste diferente (como o Teste Generalizado ESD).

Se você suspeita que o valor máximo do conjunto de dados é um outlier, o teste estatístico é calculado por:

G = (xmax – μ) / σ

Se você suspeita que o valor mínimo do conjunto de dados é um outlier, o teste estatístico é calculado por:

G = (μ – xmin) / σ

E se você não tem certeza se o valor máximo ou mínimo do conjunto de dados é um outlier, e deseja realizar um teste por ambos os lados, o teste estatístico é calculado por:

G = max|xi – μ| / σ

onde, xi é a observação, μ é a média e σ o desvio padrão.

O valor crítico para o teste é calculado como:

Gcrítico = (n-1)tcrítico  /  √[n(n-2 + t2crítico)]

Onde tcrítico é o valor crítico da distribuição t com n-2 graus de liberdade e o nível de significância é α/n para um teste unicaudal e α/(2n) para um teste bicaudal.

No teste, quando o valor de dé maior que o valor de Gcrítico, significa que o valor testado é um outlier. Isso porque Grubbs outros tabularam valores críticos para Z. O valor crítico aumenta com o tamanho da amostra. Se o valor calculado de Z é maior do que o valor crítico tabulado, então o p-value é menor que 0,05. Nesse caso, considerando um intervalo de confiança de 95%. Assim, como visto anteriormente, quando o p-value para o teste for menor que o nível de significância, você pode rejeitar a hipótese nula e concluir que um dos valores da amostra é um outlier.

Teste de Grubb no Excel

Vamos aplicar o teste no nosso conjunto de dados de exemplo, verificando se o valor máximo do conjunto de dados se encaixa como um outlier.



Ao testar o valor 10,81353, o teste estatístico, G, na célula E2 resultou em 3,609091.

O valor crítico, G_crítico, na célula E9, resultou em 2,409038. Já que o teste estatístico é maior que o valor crítico, isso significa que 10,81353 é de fato um outlier deste conjunto de dados, rejeitando a hipótese nula, já que, neste caso, o p-value é menor que 0,05.

Concluindo

Vimos que existem diversas formas de encontrar outliers. Minha visão é que você deve utilizar seu conhecimento aprofundado sobre as variáveis ao analisar os dados. Em alguns casos, um teste X pode detectar outliers de forma mais precisa do que um teste Y. Parte desse conhecimento vem do entendimento do comportamento dos dados.

Muitas vezes, quando temos o entendimento do comportamento dos dados, utilizar métodos visuais é uma maneira direta e simples de identificar a presença de outliers. Por outro lado, ferramentas estatísticas não conhecem o assunto por trás dos dados e não tem a definição do processo de coleta de dados, não podendo ser o crivo final para determinar ou não a exclusão de dados de um conjunto. Neste estágio, estamos apenas identificando pontos para uma investigação mais aprofundada.

Posteriormente à identificação dos pontos não usuais de conjunto de dados, devemos analisar se é preciso ou não removê-los do conjunto. Nem todos os outliers são ruins e alguns não devem ser excluídos. Na verdade, outliers são bastante informativos sobre a área de interesse e o proceso de coleta de dados. O importante é saber que eles existem e entender como surgiram no conjunto, pois, caso aconteçam de novo poderemos considerá-los como parte do processo ou da área de estudo.


Postar um comentário

0 Comentários

Ad Code