Box plot dan IQR

Deteksi Anomali dengan Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Ringkasan boxplot

  • Boxplot:
    • Versi visual dari ringkasan 5-angka
    • Menunjukkan lokasi data, sebaran, dan kemencengan
    • Menandai adanya outlier

Contoh boxplot dengan anotasi.

Deteksi Anomali dengan Python

Komponen boxplot

Sebuah boxplot dengan persentil ke-25, ke-75, dan kotak dianotasi dengan panah dan teks.

Deteksi Anomali dengan Python

Whisker

Boxplot lain dengan lebih banyak komponen dianotasi: median, contoh outlier, batas outlier bawah dan atas.

Deteksi Anomali dengan Python

Interquartile Range (IQR)

  • IQR - Interquartile Range
  • IQR = Q3 - Q1
  • Panjang whisker = kombinasi IQR dan faktor

Boxplot yang sama dari slide sebelumnya namun lebih kecil.

Deteksi Anomali dengan Python

Menghitung panjang whisker

  • Faktor = 1,5
  • Batas bawah: $Q1 - 1.5 * IQR$
  • Batas atas: $Q3 + 1.5 * IQR$

Boxplot yang sama dari slide sebelumnya.

Deteksi Anomali dengan Python

Menggambar boxplot

import matplotlib.pyplot as plt

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

Sebuah boxplot penjualan produk dengan banyak outlier membentuk garis hitam di atas batas outlier atas.

Deteksi Anomali dengan Python

Mengatur panjang whisker

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

Sebuah boxplot penjualan produk dengan lebih sedikit outlier di atas whisker atas.

Deteksi Anomali dengan Python

IQR dalam kode

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


# Calculate IQR IQR = q3 - q1 # Set Multiplying factor factor = 2.5
Deteksi Anomali dengan Python

Menemukan outlier dengan 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
Deteksi Anomali dengan Python

Fleksibilitas metode

  • Boxplot dan pemfilteran IQR sangat fleksibel
  • Memungkinkan aturan kustom untuk menandai outlier
Deteksi Anomali dengan Python

Ayo berlatih!

Deteksi Anomali dengan Python

Preparing Video For Download...