Detectando Outliers pelo Desvio Padrão no Python

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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *