Σ
SDCalc
OrtaKavramlar·12 min

Dayanıklı İstatistikler: MAD, IQR ve Aykırı Değere Dirençli Yöntemler

Medyan Mutlak Sapma (MAD) ve Çeyrekler Arası Açıklık (IQR) dahil dayanıklı istatistikler rehberi. Örnekler ve Python kodu ile aykırı değere dirençli yayılım ölçülerinin ne zaman kullanılacağını öğrenin.

Neden Dayanıklı İstatistikler?

Standart sapma güçlü bir yayılım ölçüsüdür, ancak kritik bir zayıflığı vardır: aykırı değerlere aşırı duyarlılık. Tek bir uç değer SS’yi dramatik biçimde şişirebilir ve tipik değişimin yanıltıcı bir resmini çizebilir.

Dayanıklı istatistikler, aykırı değerlerin etkisine direnen yayılım ölçüleri sağlar ve ölçüm hataları, veri giriş yanlışlıkları veya gerçek uç durumların yaygın olduğu gerçek dünya verileri için gereklidir.

Örnek: Aykırı Değer Etkisi

Veri: 10, 12, 11, 13, 12, 11, 100 (bir aykırı değer) Standart Sapma: 32,4 (aykırı değer tarafından domine edilmiş) MAD: 1,0 (aykırı değeri göz ardı eder) IQR: 1,5 (aykırı değeri göz ardı eder)

Kırılma Noktası

Bir istatistiğin “kırılma noktası”, istatistik anlamsız hale gelmeden önce uç olabilecek veri oranıdır. SS’nin kırılma noktası %0’dır (tek bir aykırı değer onu bozabilir). MAD ve IQR %50 kırılma noktasına sahiptir—verilerinizin yarısı aykırı değer olabilir ve yine de çalışırlar.

Medyan Mutlak Sapma (MAD)

MAD en dayanıklı yayılım ölçüsüdür. Medyandan mutlak sapmaların medyanını hesaplar:

MAD Formülü

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

Medyanı Bulun

Veri setinizin medyanını hesaplayın.
2

Sapmaları Hesaplayın

Her değerden medyanı çıkarın ve mutlak değerleri alın.
3

MAD’ı Bulun

Bu mutlak sapmaların medyanını hesaplayın.

MAD’ı σ tahmin etmek için ölçeklendirme: Normal dağılımlı veriler için MAD ≈ 0,6745 × σ. MAD’dan SS tahmin etmek için 1,4826 ile çarpın:

MAD’dan SS Tahmini

σ̂ = 1.4826 × MAD

Neden 1,4826?

Bu ölçekleme faktörü, normal dağılımlar için MAD ile SS arasındaki ilişkiden gelir. Veri normal olduğunda ölçeklenmiş MAD’ın gerçek standart sapmanın yansız bir tahminleyicisi olmasını sağlar.

Çeyrekler Arası Açıklık (IQR)

IQR, verilerin orta %50’sinin yayılımını ölçer—25. ve 75. yüzdelik dilimler arasındaki aralık:

IQR Formülü

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

IQR yaygın olarak kullanılır çünkü anlaşılması basit, kutu grafiklerinde görselleştirmesi kolay ve yaygın “1,5×IQR kuralı”nın aykırı değer tespiti için temelini oluşturur.

IQR’ı σ tahmin etmek için ölçeklendirme: Normal veriler için IQR ≈ 1,35 × σ. IQR’dan SS tahmin etmek için:

IQR’dan SS Tahmini

σ̂ = IQR / 1.35 ≈ 0.7413 × IQR

Dayanıklı Ölçüleri Karşılaştırma

Standart Sapma

Tüm veri noktalarını kullanır · Normal veri için en verimli · Aykırı değerlere çok duyarlı · Kırılma noktası: %0

MAD

En dayanıklı ölçü · Medyan kullanır (ortalama değil) · Aykırı değerlere bağışık · Kırılma noktası: %50

IQR

Anlaşılması kolay · Kutu grafiklerinde kullanılır · Uç %50’yi göz ardı eder · Kırılma noktası: %25

Dayanıklı İstatistikleri Ne Zaman Kullanmalı?

  • Keşifsel analiz: Aykırı değerlerin var olup olmadığını bilmediğinizde dayanıklı ölçülerle başlayın
  • Veri kalitesi sorunları: Veriler hata veya ölçüm sorunları içerebiliyorsa
  • Kalın kuyruklu dağılımlar: Uç değerlerin beklendiği durumlarda (finansal getiriler, sigorta talepleri)
  • Küçük örneklemler: Az sayıda gözlem nedeniyle aykırı değerlerin orantısız etkiye sahip olduğu durumlarda
  • Aykırı değer tespiti: Aykırı değerleri tespit etmek için SS kullanmak döngüsel bir mantıktır; bunun yerine IQR veya MAD kullanın

Uygulama Örnekleri

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