Σ
SDCalc
MellannivåBegrepp·12 min

Robust statistik: MAD, IQR och avvikelsetåliga metoder

Komplett guide till robust statistik inklusive Median Absolute Deviation (MAD) och kvartilavstånd (IQR). Lär dig när du ska använda avvikelsetåliga spridningsmått med exempel och Python-kod.

Varför robust statistik?

Standardavvikelse är ett kraftfullt spridningsmått, men den har en kritisk svaghet: extrem känslighet för avvikande värden. Ett enda extremvärde kan dramatiskt blåsa upp SA:en och ge en missvisande bild av den typiska variationen.

Robust statistik tillhandahåller spridningsmått som motstår inflytandet från avvikande värden, vilket gör dem oumbärliga för verkliga data där mätfel, datainmatningsmisstag eller genuint extrema fall är vanliga.

Exempel: Effekten av avvikande värden

Data: 10, 12, 11, 13, 12, 11, 100 (en avvikare) Standardavvikelse: 32,4 (domineras av avvikaren) MAD: 1,0 (ignorerar avvikaren) IQR: 1,5 (ignorerar avvikaren)

Bristningspunkt

En statistikas “bristningspunkt” är den andel data som kan vara extrem innan statistikan blir meningslös. SA har en bristningspunkt på 0 % (en enda avvikare kan förstöra den). MAD och IQR har bristningspunkter på 50 % – hälften av dina data kan vara avvikare och de fungerar fortfarande.

Median Absolute Deviation (MAD)

MAD är det mest robusta spridningsmåttet. Den beräknar medianen av absolutavvikelserna från medianen:

MAD Formula

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

Hitta medianen

Beräkna medianen av din datamängd.
2

Beräkna avvikelserna

Subtrahera medianen från varje värde och ta absolutvärdet.
3

Hitta MAD

Beräkna medianen av dessa absolutavvikelser.

Skalning av MAD för att skatta σ: För normalfördelade data gäller MAD ≈ 0,6745 × σ. För att skatta SA från MAD, multiplicera med 1,4826:

SD Estimate from MAD

σ̂ = 1.4826 × MAD

Varför 1,4826?

Denna skalningsfaktor kommer från sambandet mellan MAD och SA för normalfördelningar. Den säkerställer att den skalade MAD:en är en väntevärdesriktig skattning av den sanna standardavvikelsen när data är normalfördelade.

Kvartilavstånd (IQR)

IQR mäter spridningen av de mittersta 50 % av data – intervallet mellan 25:e och 75:e percentilen:

IQR Formula

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

IQR används flitigt eftersom den är enkel att förstå, lätt att visualisera i låddiagram och utgör grunden för den vanliga “1,5×IQR-regeln” för att identifiera avvikande värden.

Skalning av IQR för att skatta σ: För normalfördelade data gäller IQR ≈ 1,35 × σ. För att skatta SA från IQR:

SD Estimate from IQR

σ̂ = IQR / 1.35 ≈ 0.7413 × IQR

Jämförelse av robusta mått

Standardavvikelse

Använder alla datapunkter · Mest effektiv för normalfördelade data · Mycket känslig för avvikare · Bristningspunkt: 0 %

MAD

Mest robusta måttet · Använder median (inte medelvärde) · Immun mot alla avvikare · Bristningspunkt: 50 %

IQR

Lätt att förstå · Används i låddiagram · Ignorerar extrema 50 % · Bristningspunkt: 25 %

När ska robust statistik användas

  • Explorativ analys: När du inte vet om avvikande värden finns, börja med robusta mått
  • Datakvalitetsproblem: När data kan innehålla fel eller mätproblem
  • Tungsvansade fördelningar: När extremvärden förväntas (finansiell avkastning, försäkringskrav)
  • Små stickprov: När avvikare har oproportionerlig påverkan på grund av få observationer
  • Avvikelsedetektering: Att använda SA för att upptäcka avvikare är cirkulärt; använd IQR eller MAD istället

Implementeringsexempel

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}")