文档

数据平滑和异常值检测

数据平滑指技术来消除不需要的噪声或行为数据,而异常值检测识别数据点明显不同于其他数据。

移动窗口方法

移动窗口方法处理数据的方法分成更小的单位,通常以统计数据代表一个社区的点。移动平均线是一种常见的数据平滑技术,滑动窗口的数据,计算每个窗口内的点的均值。这可以帮助消除无关紧要的变化从一个数据点。

例如,考虑风速测量每分钟大约3个小时。使用movmean功能的窗口大小5分钟消除高速狂风。

负载windData.mat分钟= 1:长度(速度);窗口= 5;meanspeed = movmean(速度、窗口);情节(分钟,速度,分钟,meanspeed)轴传奇(测量风速的,“5分钟平均风速窗口”,“位置”,“最佳”)包含(“时间”)ylabel (“速度”)

类似地,您可以计算出在一个滑动窗口使用平均风速movmedian函数。

medianspeed = movmedian(速度、窗口);情节(分钟,速度,分钟,medianspeed)轴传奇(测量风速的,“平均风速超过5分钟窗口”,“位置”,“最佳”)包含(“时间”)ylabel (“速度”)

并不是所有的数据都是适合平滑移动窗口法。例如,创建一个正弦信号与随机噪声注入。

t = 1:0.2:15;A =罪(2 *π* t) + cos(2 *π* 0.5 * t);声音吵醒= A + 0.5 *兰德(1、长度(t));情节(t, t,声音吵醒)轴传奇(“原始数据”,“数据”,“位置”,“最佳”)

使用一个移动平均的窗口大小3 -平滑噪声数据。

窗口= 3;Amean = movmean(声音吵醒,窗口);情节(t, t Amean)轴传奇(“原始数据”,“移动的意思——窗口大小3 ')

移动均值达到的总体形状数据,但不捕获的山谷(局部最小值)非常准确。自谷点是两大邻国包围在每个窗口中,意味着不是一个非常好的近似点。如果你使窗口大小更大,意味着完全消除了较短的山峰。对于这种类型的数据,您可能会考虑选择平滑技术。

Amean = movmean(声音吵醒,5);情节(t, t Amean)轴传奇(“原始数据”,“移动的意思——窗口大小5 ',“位置”,“最佳”)

常见的平滑方法

smoothdata函数提供了几种平滑选项,例如Savitzky-Golay方法,这是一个流行的平滑技术用于信号处理。默认情况下,smoothdata选择的最佳猜测窗口大小取决于数据的方法。

使用Savitzky-Golay方法来平滑噪声信号声音吵醒它所使用的和输出的窗口大小。这种方法提供了一个更好的山谷近似相比movmean

[Asgolay,窗口]= smoothdata(声音吵醒,“sgolay”);情节(t, t Asgolay)轴传奇(“原始数据”,“Savitzky-Golay”,“位置”,“最佳”)

窗口
窗口= 3

健壮的洛斯方法另一个平滑方法是特别有用,当数据存在异常值除了噪音。注入一个异类的数据,使用健壮的黄土平滑数据,消除了异常值。

声音吵醒(36)= 20;Arlowess = smoothdata(声音吵醒,“rlowess”5);情节(t,声音吵醒,t, Arlowess)轴传奇(“数据”,‘强健’洛斯)

检测异常值

数据中的异常值可以显著影响数据处理的结果和其他计算量。举个例子,如果你想顺利数据包含异常值与一个移动的值,你可以误导的高峰或低谷。

Amedian = smoothdata(声音吵醒,“movmedian”);情节(t,声音吵醒,t, Amedian)轴传奇(“数据”,“移动平均”)

isoutlier函数返回一个逻辑1当检测到一个异类。验证的离群值的指数和价值声音吵醒

TF = isoutlier(声音吵醒);印第安纳州=找到(TF)
印第安纳州= 36
Aoutlier =声音吵醒(印第安纳州)
Aoutlier = 20

您可以使用filloutliers函数来代替离群值数据通过指定填充方法。例如,填补的离群值声音吵醒立即与邻国的价值。

Afill = filloutliers(声音吵醒,“下一个”);情节(t,声音吵醒,t, Afill)轴传奇(离群值的干扰数据的,了离群值的干扰数据的)

非均匀数据

并非所有的数据由等距的点,从而影响数据处理的方法。创建一个datetime向量包含不规则采样时间的数据Arand。的时间向量代表样本第一30分钟,每分钟每小时超过两天。

t0 = datetime(2014年,1,1,1,1,1);timeminutes = (t0 +分钟(1:30));timehours = t0 +小时为止(1:48);时间= [timeminutes timehours];Airreg =兰德(1、长度(时间);情节(时间,Airreg)轴

默认情况下,smoothdata平滑对等距的整数,在这种情况下,1、2、…,78。由于整数时间戳不协调的采样点Airreg,第一个半个小时后仍然出现噪声平滑的数据。

Adefault = smoothdata (Airreg,“movmean”3);情节(时间、Airreg时间,Adefault)轴传奇(“原始数据”,平滑数据和默认的采样点的)

在MATLAB®很多数据处理功能,包括smoothdata,movmean,filloutliers,让你提供样本点,确保数据处理相对于其抽样单位和频率。删除数据的高频变化的半个小时Airreg,可以使用“SamplePoints”选择的时间戳时间

Asamplepoints = smoothdata (Airreg,“movmean”小时(3),“SamplePoints”、时间);情节(时间、Airreg时间,Asamplepoints)轴传奇(“原始数据”,平滑数据与采样点的)

另请参阅

||||

相关的话题

这个主题有帮助吗?