Bakit Robust Statistics?
Ang standard deviation ay isang makapangyarihang sukatan ng pagkakalat, ngunit mayroon itong kritikal na kahinaan: matinding sensitivity sa outliers. Ang isang extreme na halaga ay maaaring dramatikong magpalaki sa SD, na nagbibigay ng nakakalitong larawan ng tipikal na variation.
Nagbibigay ang robust statistics ng mga sukatan ng pagkakalat na lumalaban sa impluwensya ng outliers, kaya naman ito ay mahalaga para sa real-world data kung saan ang mga pagkakamali sa pagsukat, pagkakamali sa data entry, o tunay na extreme cases ay karaniwan.
Halimbawa: Ang Epekto ng Outlier
Breakdown Point
Median Absolute Deviation (MAD)
Ang MAD ang pinaka-robust na sukatan ng pagkakalat. Kinakalkula nito ang median ng absolute deviations mula sa median:
MAD Formula
Hanapin ang Median
Kalkulahin ang mga Deviation
Hanapin ang MAD
Pag-scale ng MAD upang tantiyahin ang σ: Para sa normally distributed data, MAD ≈ 0.6745 × σ. Upang tantiyahin ang SD mula sa MAD, i-multiply sa 1.4826:
SD Estimate from MAD
Bakit 1.4826?
Interquartile Range (IQR)
Sinusukat ng IQR ang pagkakalat ng gitnang 50% ng data—ang range sa pagitan ng ika-25 at ika-75 percentiles:
IQR Formula
Malawakang ginagamit ang IQR dahil simple itong maunawaan, madaling i-visualize sa box plots, at ito ang batayan ng karaniwang “1.5×IQR rule” para sa outlier detection.
Pag-scale ng IQR upang tantiyahin ang σ: Para sa normal data, IQR ≈ 1.35 × σ. Upang tantiyahin ang SD mula sa IQR:
SD Estimate from IQR
Paghahambing ng Robust Measures
Standard Deviation
MAD
IQR
Kailan Gamitin ang Robust Statistics
- Exploratory analysis: Kapag hindi mo alam kung may outliers, magsimula sa robust measures
- Mga isyu sa kalidad ng data: Kapag maaaring may mga error o problema sa pagsukat ang data
- Heavy-tailed distributions: Kapag inaasahan ang mga extreme values (financial returns, insurance claims)
- Maliliit na samples: Kapag ang outliers ay may sobrang malaking epekto dahil sa kakaunting obserbasyon
- Outlier detection: Ang paggamit ng SD upang matukoy ang outliers ay circular; gamitin ang IQR o MAD sa halip
Mga Halimbawa ng Implementation
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}")