Boxplots e IQR

Detecção de Anomalias em Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Revisão de boxplots

  • Boxplots:
    • São versões visuais aprimoradas do resumo de 5 números
    • Mostram localização, dispersão e assimetria dos dados
    • Indicam a presença de outliers

Um boxplot de exemplo com anotações.

Detecção de Anomalias em Python

Componentes do boxplot

Um boxplot com os percentis 25 e 75 e a caixa anotados com setas e textos.

Detecção de Anomalias em Python

Bigodes

Outro boxplot com mais componentes anotados: a mediana, um outlier de exemplo e os limites inferior e superior de outliers.

Detecção de Anomalias em Python

Intervalo Interquartil (IQR)

  • IQR - Intervalo Interquartil
  • IQR = Q3 - Q1
  • Comprimento dos bigodes = combinação de IQR e um fator

O mesmo boxplot do slide anterior, só que menor.

Detecção de Anomalias em Python

Calculando o comprimento dos bigodes

  • Fator = 1,5
  • Limite inferior: $Q1 - 1.5 * IQR$
  • Limite superior: $Q3 + 1.5 * IQR$

O mesmo boxplot do slide anterior.

Detecção de Anomalias em Python

Desenhando boxplots

import matplotlib.pyplot as plt

plt.boxplot(sales)
plt.xlabel("Product sales")

Um boxplot de vendas de produto com muitos outliers formando uma linha preta acima do limite superior de outliers.

Detecção de Anomalias em Python

Controlando o comprimento dos bigodes

plt.boxplot(sales, whis=2.5)
plt.xlabel("Product sales")

Um boxplot de vendas de produto com menos outliers acima do bigode superior.

Detecção de Anomalias em Python

IQR no código

# Calculate the percentiles
q1 = sales.quantile(0.25)
q3 = sales.quantile(0.75)


# Calculate IQR IQR = q3 - q1 # Set Multiplying factor factor = 2.5
Detecção de Anomalias em Python

Encontrando outliers com IQR

# Calculate the limits
lower_limit = q1 - (IQR * factor)


upper_limit = q3 + (IQR * factor)
# Create masks
is_lower = sales < lower_limit
is_upper = sales > upper_limit


# Filter outliers = sales[is_lower | is_upper] # Print the # of outliers print(len(outliers))
29
Detecção de Anomalias em Python

A flexibilidade do método

  • Boxplots e filtragem por IQR oferecem muita flexibilidade
  • Permitem criar regras personalizadas para marcar outliers
Detecção de Anomalias em Python

Vamos praticar!

Detecção de Anomalias em Python

Preparing Video For Download...