使用matlab剔除数据中的异常点
的有关信息介绍如下:在采集的数据中,有些会是异常数据,因此需要进行剔除,这里给大家介绍如何分析和剔除异常数据。
这里我们只给出一个例子。
aa=randn(1000,1)/10;
给aa人为的加入几个异常点:
aa(100) = aa(100)+3;aa(301) = aa(301)+5;aa(501) = aa(501)-14;aa(781) = aa(781)-2;
plot(aa);
可以看一下aa的直方分布图;
hist(aa,100);
这个数据还不错;但是可以通过其他方式来对数据进行处理。
从科学角度来看,需要计算其标准偏差,三倍标准偏差为限制,超出范围的即作为异常数据进行剔除。
使用上述方法,可以看到新加入的数据几乎都是异常数据。
看看结果:
然后看看直方分布图,好看了很多。
请不要只看图形,还要看一下坐标轴。
数据量越大,异常值越明显。
最后看看剔除后的均值和标准偏差,可以看到,只剔除了几个数据,就把标准偏差减去了许多,数据也显得更加合理可信。