Đo lường độ phân tán dữ liệu: Absolute Deviation (độ lệch tuyệt đối) và Mean Absolute Deviation - MAD.
Độ lệch tuyệt đối (Absolute Deviation)
- Tính mean (trung bình) của mẫu.
- Với mỗi giá trị:
|x_i - mean|.
import numpy as np
data = np.array([12, 42, 53, 13, 112])
mean_val = np.mean(data)
print(f"Mean: {mean_val}") # 46.4
# Độ lệch tuyệt đối từng điểm
abs_dev = np.abs(data - mean_val)
print("Absolute Deviations:", abs_dev)
# [34.4 4.4 6.6 33.4 65.6]
Độ lệch trung bình tuyệt đối (MAD)
MAD = mean của các absolute deviations.
mad = np.mean(abs_dev)
print(f"MAD: {mad}") # 28.88
# Hoặc một dòng
mad_one_line = np.mean(np.abs(data - np.mean(data)))
print(f"MAD (1 line): {mad_one_line}")
Kết quả
Mean: 46.4 Absolute Deviations: [34.4 4.4 6.6 33.4 65.6] MAD: 28.88
So sánh với Standard Deviation (std)
print("Std (numpy):", np.std(data)) # 36.57 (population)
print("Std (sample):", np.std(data, ddof=1)) # 40.93 (sample)
- MAD: Dễ hiểu, robust (ít bị ảnh hưởng outlier hơn std).
- Std: Dùng rộng rãi trong thống kê suy luận, có tính chất toán học tốt (phương sai).
Kết luận
NumPy vector hóa làm cho tính MAD trở nên cực kỳ ngắn gọn: np.mean(np.abs(data - data.mean())).