Detectar outliers é necessário em qualquer análise. Não importa se você pretende excluí-los ou mantê-los, você precisa saber quem são eles. Um dos métodos mais comuns e fáceis é através do desvio padrão. Uma rule of thumb comumente utilizada é: se o indivíduo/ponto estiver a mais de 3 desvios padrões da média, é um outlier. No Python, podemos localizar esses pontos através do código abaixo. Teremos aí df como sendo nosso datarame e coluna_1 como sendo a coluna analisada:
# carrega bibliotecas
import numpy as np
import matplotlib.pyplot as plt
import statistics
# inicia uma lista vazia onde colocaremos os outliers
outliers = []
# desvio padrão
desv_pad = statistics.stdev(df['coluna_1'])
# média dos seus dados
media = statistics.mean(df['coluna_1'])
# coloca o limite que determina se é outlier
limite = desv_pad * 3
limite_inferior = media - limite
limite_superior = media + limite
# Localiza outliers e anexa à nossa lista que iniciamos sem nada
for outlier in df['coluna_1']:
if outlier > limite_superior or outlier < limite_inferior:
outliers.append(outlier)
# exibe a lista com os outliers
print(outliers)
# conta quantos elementos são outliers
print(len(outliers))
# percentual da coluna que é outlier
print(len(outliers)/len(df['coluna_1'])
Simples, não? Que tal testar com algumas das bases que já brincamos inicialmente, como a do Fifa 19 que está em Tutorial: Limpeza e Análise de Dados com Python. E que tal criar uma função chamada extrair_outliers, usando o que aprendemos em Construindo Funções em Python?
Alguma dúvida? Entre em contato deixando um comentário ou mandando mensagem por alguma das redes listadas em Sobre o Estatsite / Contato.