למה סטטיסטיקה חסינה?
סטיית תקן היא מדד פיזור רב עוצמה, אך יש לה חולשה קריטית: רגישות קיצונית לחריגים. ערך קיצוני בודד יכול לנפח דרמטית את סט“ת ולתת תמונה מטעה של השתנות אופיינית.
סטטיסטיקה חסינה מספקת מדדי פיזור שעומדים בפני השפעת חריגים, מה שהופך אותם לחיוניים לנתוני עולם אמיתי שבהם שגיאות מדידה, טעויות הזנת נתונים או מקרים קיצוניים אמיתיים שכיחים.
דוגמה: אפקט החריג
נקודת שבירה
סטייה מוחלטת חציונית (MAD)
MAD הוא מדד הפיזור החסין ביותר. הוא מחשב את החציון של הסטיות המוחלטות מהחציון:
MAD Formula
מציאת החציון
חישוב סטיות
מציאת MAD
שינוי קנה מידה של MAD לאומדן σ: לנתונים מתפלגים נורמלית, MAD ≈ 0.6745 × σ. כדי לאמוד סט“ת מ-MAD, הכפילו ב-1.4826:
SD Estimate from MAD
למה 1.4826?
טווח בין-רבעוני (IQR)
IQR מודד את פיזור 50% האמצעיים של הנתונים — הטווח בין האחוזון ה-25 לאחוזון ה-75:
IQR Formula
IQR נמצא בשימוש נרחב כי הוא פשוט להבנה, קל להמחשה בתרשימי קופסה, ומהווה את הבסיס לכלל “1.5×IQR” הנפוץ לזיהוי חריגים.
שינוי קנה מידה של IQR לאומדן σ: לנתונים נורמליים, IQR ≈ 1.35 × σ. כדי לאמוד סט“ת מ-IQR:
SD Estimate from IQR
השוואת מדדים חסינים
סטיית תקן
MAD
IQR
מתי להשתמש בסטטיסטיקה חסינה
- ניתוח חקרני: כשאינכם יודעים אם קיימים חריגים, התחילו עם מדדים חסינים
- בעיות איכות נתונים: כשהנתונים עלולים לכלול שגיאות או בעיות מדידה
- התפלגויות בעלות זנבות כבדים: כשערכים קיצוניים צפויים (תשואות פיננסיות, תביעות ביטוח)
- מדגמים קטנים: כשלחריגים השפעה גדולה יתר בשל מיעוט תצפיות
- זיהוי חריגים: שימוש בסט“ת לזיהוי חריגים הוא מעגלי; השתמשו ב-IQR או MAD במקום
דוגמאות מימוש
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}")