Σ
SDCalc
PokročilýKoncepty·12 min

Robustní statistika: MAD, IQR a metody odolné vůči odlehlým hodnotám

Kompletní průvodce robustní statistikou včetně mediánu absolutních odchylek (MAD) a mezikvartilového rozpětí (IQR). Naučte se, kdy použít míry rozptylu odolné vůči odlehlým hodnotám, s příklady a kódem v Pythonu.

Proč robustní statistika?

Směrodatná odchylka je výkonnou mírou rozptylu, ale má zásadní slabinu: extrémní citlivost na odlehlé hodnoty. Jediná extrémní hodnota může dramaticky nafouknout SO a poskytnout zavádějící obraz o typické variabilitě.

Robustní statistika nabízí míry rozptylu, které odolávají vlivu odlehlých hodnot, a jsou proto nezbytné pro reálná data, kde se běžně vyskytují chyby měření, překlepy při zadávání dat nebo skutečné extrémní případy.

Příklad: Vliv odlehlé hodnoty

Data: 10, 12, 11, 13, 12, 11, 100 (jedna odlehlá hodnota) Směrodatná odchylka: 32,4 (ovládnuta odlehlou hodnotou) MAD: 1,0 (odlehlou hodnotu ignoruje) IQR: 1,5 (odlehlou hodnotu ignoruje)

Bod zhroucení

„Bod zhroucení“ statistiky je podíl dat, která mohou být extrémní, aniž by se statistika stala bezvýznamnou. SO má bod zhroucení 0 % (jedna odlehlá hodnota ji může zničit). MAD a IQR mají bod zhroucení 50 % — polovina vašich dat může být odlehlých a stále fungují.

Medián absolutních odchylek (MAD)

MAD je nejrobustnější míra rozptylu. Počítá medián absolutních odchylek od mediánu:

MAD Formula

MAD = median(|xᵢ - median(x)|)
1

Najděte medián

Vypočítejte medián vašeho datového souboru.
2

Vypočítejte odchylky

Od každé hodnoty odečtěte medián a vezměte absolutní hodnoty.
3

Najděte MAD

Vypočítejte medián těchto absolutních odchylek.

Škálování MAD pro odhad σ: Pro normálně rozdělená data platí MAD ≈ 0,6745 × σ. Pro odhad SO z MAD vynásobte hodnotou 1,4826:

SD Estimate from MAD

σ̂ = 1.4826 × MAD

Proč 1,4826?

Tento škálovací faktor vychází ze vztahu mezi MAD a SO pro normální rozdělení. Zajišťuje, že škálovaný MAD je nestranným odhadem skutečné směrodatné odchylky, pokud jsou data normální.

Mezikvartilové rozpětí (IQR)

IQR měří rozptyl středních 50 % dat — rozpětí mezi 25. a 75. percentilem:

IQR Formula

IQR = Q3 - Q1 = 75th percentile - 25th percentile

IQR se široce používá, protože je snadno srozumitelné, dobře vizualizovatelné v krabicových grafech a tvoří základ běžného pravidla „1,5×IQR“ pro detekci odlehlých hodnot.

Škálování IQR pro odhad σ: Pro normální data platí IQR ≈ 1,35 × σ. Pro odhad SO z IQR:

SD Estimate from IQR

σ̂ = IQR / 1.35 ≈ 0.7413 × IQR

Porovnání robustních měr

Směrodatná odchylka

Využívá všechny datové body · Nejefektivnější pro normální data · Velmi citlivá na odlehlé hodnoty · Bod zhroucení: 0 %

MAD

Nejrobustnější míra · Využívá medián (ne průměr) · Imunní vůči jakýmkoli odlehlým hodnotám · Bod zhroucení: 50 %

IQR

Snadno srozumitelné · Používá se v krabicových grafech · Ignoruje extrémních 50 % · Bod zhroucení: 25 %

Kdy použít robustní statistiku

  • Průzkumová analýza: Když nevíte, zda existují odlehlé hodnoty, začněte robustními mírami
  • Problémy s kvalitou dat: Když data mohou obsahovat chyby nebo problémy s měřením
  • Rozdělení s těžkými chvosty: Když se očekávají extrémní hodnoty (finanční výnosy, pojistné nároky)
  • Malé výběry: Když mají odlehlé hodnoty nepřiměřený dopad kvůli malému počtu pozorování
  • Detekce odlehlých hodnot: Používání SO k detekci odlehlých hodnot je kruhové; místo toho použijte IQR nebo MAD

Příklady implementace

Python
import numpy as np
from scipy import stats

def mad(data):
    """Median Absolute Deviation"""
    median = np.median(data)
    return np.median(np.abs(data - median))

def scaled_mad(data):
    """MAD scaled to estimate SD (for normal data)"""
    return 1.4826 * mad(data)

def iqr(data):
    """Interquartile Range"""
    return np.percentile(data, 75) - np.percentile(data, 25)

# Compare on data with outlier
data = [10, 12, 11, 13, 12, 11, 100]
print(f"SD: {np.std(data, ddof=1):.2f}")
print(f"MAD: {mad(data):.2f}")
print(f"Scaled MAD: {scaled_mad(data):.2f}")
print(f"IQR: {iqr(data):.2f}")