中位数绝对偏差(MAD)是由Hampel(1974)发现并推广的,中位数(M)和平均数(mean)一样,是中心趋势的衡量标准,但它的优点是对异常值的存在非常不敏感。异常检测模型的击穿点是可以被污染(即设置为无穷大)而不迫使模型出现错误(在规模估计器的情况下为无穷大或空)的最大观察比例。例如,当单个观测值具有无限值时,所有观测值的平均值就变成了无限值;因此,平均值的击穿点是0。只有当超过50%的观察值是无限的时候,中位数才会出错。在分解点为0.5的情况下,中位数是具有最高击穿点的离群点估计模型。MAD作为一个异常检测的模型(定义见下面的公式),利用了中位数的这一特性。初此之外,MAD完全不受样本大小的影响。
M
A
D
=
b
M
i
×
x
i
−
M
j
×
x
j
MAD=bM_i\times x_i-M_j\times x_j
MAD=bMi×xi−Mj×xj
其中,
x
j
x_j
xj是n个原始值的观测值,
M
i
M_i
Mi是
∣
x
i
−
M
j
(
x
j
)
∣
\left|x_i-M_j\left(x_j\right)\right|
∣xi−Mj(xj)∣的中位数,
M
j
M_j
Mj是
x
j
x_j
xj的中位数,即一个单一维度数据集合。通常情况下,
b
=
1.4826
b=1.4826
b=1.4826,这是一个与数据的正态性假设有关的常数。假设数据整体具有正态性,不考虑离群值所引起的异常。
一般情况下,在中位数上下3倍MAD值范围内波动被认为是正常数据,超过3倍MAD值被认为是离群值,判断公式如下:
M
−
3
×
M
A
D
<
x
i
<
M
+
3
×
M
A
D
M-3\times MAD < x_i<M+3×MAD
M−3×MAD<xi<M+3×MAD
or
∣
x
i
−
M
M
A
D
∣
<
3
\vert \frac{x_i-M}{MAD}\vert<3
∣MADxi−M∣<3
其中,
M
M
M为样本中位数,
x
i
x_i
xi为样本值。不满足上述两式的被判断为离群点,满足等式的判定为正常点。
clear
clc
close all
%离群值的删除
t = 1:1:4096;
A = load("3A附件/9.txt");% A读入的为一个一维数组
figure(3)
B3 = filloutliers(A,'linear','movmedian',51);%MAD法
hold on
plot(t,A)
% YL = ylim;
% ylim(YL)
xlim([0,4100])
plot(t,B3)
% ylim(YL)
hold off
legend('原数据','去除离散值后','Location','southeast')
title('中位数绝对偏差去除离散值(MAD)效果图')
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/130523.html