Lådagram och IQR

Avvikelsedetektering i Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Repetition: lådagram

  • Lådagram:
    • Är visuella versioner av femtalssummeringen
    • Visar datats läge, spridning och skevhet
    • Indikerar förekomsten av extremvärden

Ett exempellådagram med annoteringar.

Avvikelsedetektering i Python

Lådagrammets komponenter

Ett lådagram med 25:e och 75:e percentilen samt lådan annoterade med pilar och förklarande text.

Avvikelsedetektering i Python

Morrhår

Ett annat lådagram med fler annoterade komponenter: medianen, ett exempelexträmvärde samt nedre och övre gränser för extremvärden.

Avvikelsedetektering i Python

Kvartilavstånd (IQR)

  • IQR – kvartilavstånd
  • IQR = Q3 - Q1
  • Morrhårslängd – en kombination av IQR och en faktor

Samma lådagram som på föregående slide, men mindre.

Avvikelsedetektering i Python

Beräkna morrhårslängder

  • Faktor = 1,5
  • Nedre gräns: $Q1 - 1.5 * IQR$
  • Övre gräns: $Q3 + 1.5 * IQR$

Samma lådagram som på föregående slide.

Avvikelsedetektering i Python

Rita lådagram

import matplotlib.pyplot as plt

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

Ett lådagram över produktförsäljning med många extremvärden som bildar ett svart streck ovanför den övre extremvärdsgränsen.

Avvikelsedetektering i Python

Styra morrhårslängder

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

Ett lådagram över produktförsäljning med färre extremvärden ovanför det övre morrhåret.

Avvikelsedetektering i Python

IQR i kod

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


# Calculate IQR IQR = q3 - q1 # Set Multiplying factor factor = 2.5
Avvikelsedetektering i Python

Hitta extremvärden med 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
Avvikelsedetektering i Python

Metodens flexibilitet

  • Lådagram och IQR-filtrering erbjuder stor flexibilitet
  • Möjliggör anpassade regler för att märka ut extremvärden
Avvikelsedetektering i Python

Nu kör vi en övning!

Avvikelsedetektering i Python

Preparing Video For Download...