Neste repositório, realizo a comparação de diferentes métodos para a detecção de outliers, incluindo IQR, Z-Core, Isolation Forest e KNN. Meu objetivo é determinar qual desses métodos é mais adequado para o tipo de distribuição de dados em questão. Este análises foi implementado em Python. 💼
A detecção de outliers é uma etapa crucial na análise de dados, pois esses valores atípicos podem distorcer significativamente as análises estatísticas e os resultados dos modelos preditivos. Portanto, comparar e selecionar o método mais eficaz para identificar e tratar esses outliers é essencial para garantir a precisão e a confiabilidade das conclusões derivadas dos dados.
Cada método de detecção de outliers possui suas próprias vantagens e limitações, e a escolha do método mais apropriado depende da natureza dos dados e das características da distribuição subjacente. Ao realizar essa comparação, busco não apenas identificar o método mais preciso, mas também entender melhor as nuances dos dados e como diferentes métodos de detecção de outliers podem ser aplicados de forma eficaz em diferentes contextos analíticos.
Um outlier é uma observação que se diferencia tanto das demais observações que levanta suspeitas de que aquela observação foi gerada por um mecanismo distinto” (Hawkins, 1980)
Detectar outliers é uma etapa crucial na análise de dados, pois ajuda a garantir a integridade, precisão e confiabilidade das conclusões derivadas dos dados. A presença de outliers pode distorcer as análises estatísticas e os resultados dos modelos preditivos, influenciando negativamente as interpretações feitas a partir dos dados. Portanto, identificar e tratar esses valores atípicos de forma adequada é fundamental para assegurar que as conclusões obtidas sejam válidas e representativas do verdadeiro comportamento dos dados.
Os dados contêm o tempo de atendimento (em dias) dos tickets da área de suporte de uma empresa, divididos em L1 (layer 1) e L2 (layer 2). O Tempo Total de Suporte é a soma dos tempos de L1 e L2, desde o ano de 2021 até 2024.
No Fig 1, por meio do histograma visualizamos a distribuição do nossos dados para L1, L2 e Suporte. L1: Tempo de atendimento tem um range de 0 até 482 dias L2: Tempo de atendimento tem um range de 0 até 349 dias Suporte: Tempo de atendimento tem um range de 0 até 510 dias
Na Fig2, por medio do gráfico de box plot podemos observar a presença de outliers (os pontos em preto).
Na Figura 3, realizei os cálculos das estatísticas e tanto em L1, L2 e Suporte podemos observar que a média é maior que a mediana, o que indica que a distribuição está inclinada para a direita (positivamente assimétrica). A maioria dos dados encontra-se à esquerda da média, isso também é possível observar na Figura 1. Este tipo de distribuição pode ser afetado por valores extremos.No nível L2, o tempo médio de atendimento é ainda maior, em torno de 50.2 dias, com um desvio padrão de 59.9 dias. Isso indica uma variabilidade ainda maior nos tempos de atendimento em comparação com o nível L1, c
É evidente que os tempos de atendimento são significativamente mais longos no nível L2 em comparação com o nível L1. Isso sugere que as solicitações de suporte nos níveis L2 são mais complexas ou exigem mais tempo para serem resolvidas do que as do nível L1.
Através desse método, outliers são definidos matematicamente como as observações que estão abaixo (Q1 − 1,5 x IQR) do "bigode inferior" do boxplot ou acima (Q3 + 1,5 x IQR) do "bigode superior" do boxplot.
Após o cálculo dos limites superior e inferior, procedemos com a detecção dos outliers, os pontos em vermelho, como pode ser observado na Figura 5. Uma vez detectados os outliers, procedi com a remoção dos mesmos. Portanto, é possível observar nosso histograma e as estatísticas após a aplicação do 1º método nas Figuras 6 e 7.Ao remover os outliers, observamos uma redução na variabilidade dos tempos de atendimento em todos os níveis de suporte (L1, L2 e Suporte total). Isso é evidenciado pela diminuição dos desvios padrão em relação aos valores originais, o que sugere uma distribuição dos dados mais concentrada em torno das medidas de tendência central.
Ao aplicar o método de Intervalo Interquartil para remover outliers, conseguimos melhorar a qualidade e a confiabilidade das análises dos tempos de atendimento nos diferentes níveis de suporte. Isso nos permite obter insights mais robustos e tomar decisões mais informadas para otimizar os processos de suporte e melhorar a experiência do cliente.
O método Z-Score (ou escore Z) é uma medida estatística que indica quantos desvios padrão um ponto de dados está da média de um conjunto de dados.
– μ é a média do conjunto de dados
– σ é o desvio padrão do conjunto de dados
Após calcular a média e o desvio padrão, calculei os limites superior e inferior e procedi à extração dos outliers. A distribuição de dados após a remoção dos outliers pelo método Z-Core pode ser observada na Figura 8.
Após aplicar o método Z-Core para remover outliers dos dados, foram identificados poucos outliers em comparação com o primer método, ainda observamos uma alta variabilidade significativa nos tempos de atendimento em todos os niveis.
Este método envolve a média e o desvio padrão, se houver outliers extremos, especialmente em distribuição assimétricas como as que temos, pode afetar significativamente a estimação dos parametros.
O Isolation Forest é um algoritmo de machine learning utilizado para detecção de anomalias. Este modelo baseia-se na criação de partições recursivas nos dados, visando isolar as anomalias, assim como mostra a Fig 9, onde o outliers esta respresentando com o label Xj.
Após criar e treinar o modelo Isolation Forest da biblioteca scikit-learn, onde definimos o número de árvores na floresta (n_estimators=100), é possível visualizar os pontos de outliers (em vermelho) na Figura 10.
Uma vez detectados os outliers, procedi com a remoção dos mesmos. Portanto, é possível observar nosso histograma e as estatísticas após a aplicação do 3º método nas Figuras 11 e 12.
A extração de outliers usando o método de Isolation Forest mostram uma redução na variabilidade dos tempos de atendimento em todos os níveis de suporte, indicando uma distribuição mais homogênea dos dados
Este método de Isolation Forest é conhecido por sua robustez a distribuições assimétricas. Isso ocorre porque ele se baseia no princípio de isolar anomalias com base em sua raridade e não em sua distribuição.
O método k-NN (k-Nearest Neighbors) é uma técnica de aprendizado de máquina que detecta anomalias com base na proximidade dos vizinhos mais próximos. Ele calcula a distância entre cada ponto de dados e seus vizinhos mais próximos, e considera um ponto como uma anomalia se estiver significativamente distante de seus vizinhos. Na Fig 13, podemos observar que os pontos em vermelho (outliers) estão londe de seus vizinhos próximos, os pontos em azul.
Após criar e treinar o modelo k-NN da biblioteca scikit-learn, onde definimos o número de vizinhos (n_neighbors=3), é possível visualizar os pontos de outliers (em vermelho) na Figura 14. Verificamos que tem algunos meses que nossos dados são mais densos, isso se deve a assimetría de nossos dados, isso pode levar a uma consideração desigual dos vizinhos mais próximos ao determinar-se o ponto que é um outlier.
Uma vez detectados os outliers, procedi com a remoção dos mesmos. Portanto, é possível observar nosso histograma e as estatísticas após a aplicação do 4º método nas Figuras 15 e 16.
A extração de outliers pelo método k-NN teve um impacto positivo na redução da variabilidade dos dados
A distribuição não simétrica dos dados pode influenciar a detecção de outliers pelo método k-NN, especialmente na definição de vizinhos próximos.
Após analisar os resultados dos quatro métodos de detecção de outliers (Intervalo Interquartil, Z-Core, Isolation Forest e KNN), podemos fazer as seguintes conclusões:
A assimetria dos nossos dados pode influenciar a eficácia dos métodos que utilizamos para detecção de outliers. Alguns métodos foram mais sensíveis aos valores extremos, como é o caso dos métodos IQR, Isolation Forest e k-NN.
Em distribuições assimétricas, como é o caso, a média e o desvio padrão estão sendo influenciados pelos valores extremos. Portanto, o método Z- core que utiliza estes parámetros estão sendo afetados significativamente, isso podemos confirmar quando vemos o número de outliers identificado por este método.
- Os métodos IQR, Isolation Forest e k-NN, tiveram uma porcetagem proxima para detecção de outliers em todos os niveis de suporte.
- Debido a distribuição assimetrica de nossos dados, podemos em primera isntancia descartar o método Z-core devido ao tipo de dsitribuição.
- Debido a distribuição asimétrica dos dados, podemos descartar o a detecção de outliers pelo método k-NN, isso pode levar a uma consideração desigual dos vizinhos mais próximos ao determinar-se o ponto que é um outlier.
- Tanto o Isolation Forest quanto o método do Intervalo Interquartil são bons para extração de outliers para nosso dados assimétricos porque são robustos, não fazem suposições sobre a distribuição dos dados e levam em consideração a dispersão dos dados de forma eficaz. tanto o Isolation Forest quanto o método do Intervalo Interquartil são bons para extração de outliers em dados assimétricos porque são robustos, não fazem suposições sobre a distribuição dos dados e levam em consideração a dispersão dos dados de forma eficaz.