Σ
SDCalc
СереднійКонцепції·12 min

Робастна статистика: MAD, IQR та стійкі до викидів методи

Повний посібник із робастної статистики, включаючи медіанне абсолютне відхилення (MAD) та міжквартильний розмах (IQR). Дізнайтеся, коли використовувати стійкі до викидів міри розкиду з прикладами та кодом на Python.

Навіщо робастна статистика?

Стандартне відхилення є потужною мірою розкиду, але має критичну слабкість: надзвичайну чутливість до викидів. Одне екстремальне значення може різко збільшити СВ, даючи хибну картину типової варіації.

Робастна статистика надає міри розкиду, стійкі до впливу викидів, що робить їх незамінними для реальних даних, де помилки вимірювань, помилки введення даних або справжні екстремальні випадки є звичайними.

Приклад: вплив викиду

Дані: 10, 12, 11, 13, 12, 11, 100 (один викид) Стандартне відхилення: 32,4 (визначається викидом) MAD: 1,0 (ігнорує викид) IQR: 1,5 (ігнорує викид)

Точка зламу

“Точка зламу” статистики — це частка даних, яка може бути екстремальною, перш ніж статистика стане безглуздою. СВ має точку зламу 0% (один викид може його зруйнувати). MAD та IQR мають точку зламу 50% — половина даних може бути викидами, і вони все одно працюватимуть.

Медіанне абсолютне відхилення (MAD)

MAD є найбільш робастною мірою розкиду. Воно обчислює медіану абсолютних відхилень від медіани:

MAD Formula

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

Знайти медіану

Обчисліть медіану вашого набору даних.
2

Обчислити відхилення

Відніміть медіану від кожного значення та візьміть абсолютні значення.
3

Знайти MAD

Обчисліть медіану цих абсолютних відхилень.

Масштабування MAD для оцінки σ: Для нормально розподілених даних MAD ≈ 0,6745 × σ. Щоб оцінити СВ із MAD, помножте на 1,4826:

SD Estimate from MAD

σ̂ = 1.4826 × MAD

Чому 1,4826?

Цей масштабний множник випливає зі зв’язку між MAD та СВ для нормальних розподілів. Він забезпечує, що масштабований MAD є незміщеною оцінкою справжнього стандартного відхилення при нормальному розподілі даних.

Міжквартильний розмах (IQR)

IQR вимірює розкид середніх 50% даних — діапазон між 25-м та 75-м перцентилями:

IQR Formula

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

IQR широко використовується завдяки своїй простоті для розуміння, легкості візуалізації у діаграмах розмаху та як основа поширеного “правила 1,5×IQR” для виявлення викидів.

Масштабування IQR для оцінки σ: Для нормальних даних IQR ≈ 1,35 × σ. Щоб оцінити СВ із IQR:

SD Estimate from IQR

σ̂ = IQR / 1.35 ≈ 0.7413 × IQR

Порівняння робастних мір

Стандартне відхилення

Використовує всі точки даних · Найефективніше для нормальних даних · Дуже чутливе до викидів · Точка зламу: 0%

MAD

Найробастніша міра · Використовує медіану (не середнє) · Нечутливе до будь-яких викидів · Точка зламу: 50%

IQR

Легке для розуміння · Використовується в діаграмах розмаху · Ігнорує крайні 50% · Точка зламу: 25%

Коли використовувати робастну статистику

  • Розвідувальний аналіз: коли невідомо, чи існують викиди, починайте з робастних мір
  • Проблеми якості даних: коли дані можуть містити помилки або проблеми вимірювань
  • Важкохвості розподіли: коли очікуються екстремальні значення (фінансові доходності, страхові виплати)
  • Малі вибірки: коли викиди мають непропорційний вплив через малу кількість спостережень
  • Виявлення викидів: використання СВ для виявлення викидів є замкненим колом; замість нього використовуйте IQR або MAD

Приклади реалізації

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