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.