数据平滑是指消除数据中的不需要噪声或行为的技术,而异常检测识别与数据的其余部分显着不同的数据点。
移动窗口方法是一次以较小批次处理数据的方法,通常为了统计数据代表数据中的点附近。移动平均值是一种常见的数据平滑技术,其沿数据滑动窗口,计算每个窗口内部的点的平均值。这有助于消除从一个数据点到下一个数据点的微不足道的变化。
例如,考虑每分钟的风速测量约3小时。使用Movemean
功能窗口大小为5分钟,以平滑高速风力阵风。
加载winddata.mat.mins = 1:长度(速度);窗口= 5;介绍= movmean(速度,窗口);情节(分钟,速度,分钟,剪辑)轴紧的传奇('测量风速'那'平均风速超过5分钟'那'地点'那'最好的')Xlabel('时间')ylabel('速度')
同样,您可以使用的是使用滑动窗口计算中位风速movmedian.
功能。
Medianspeed = MovMedian(速度,窗口);情节(分钟,速度,分钟,中等飞行)轴紧的传奇('测量风速'那'中位风速超过5分钟'那'地点'那'最好的')Xlabel('时间')ylabel('速度')
并非所有数据都适用于平滑移动窗口方法。例如,使用注入的随机噪声创建正弦信号。
t = 1:0.2:15;a = sin(2 * pi * t)+ cos(2 * pi * 0.5 * t);anoise = a + 0.5 * rand(1,长度(t));绘图(t,a,t,anoise)轴紧的传奇('原始数据'那'嘈杂的数据'那'地点'那'最好的')
使用窗口大小为3的移动均值来平滑噪声数据。
窗口= 3;amean = movmean(天敌,窗口);绘图(T,A,T,AMEAN)轴紧的传奇('原始数据'那'移动平均 - 窗口大小3')
移动均衡达到数据的一般形状,但不会非常精确地捕获谷(局部最小值)。由于山谷点被每个窗口中的两个较大的邻居包围,因此平均值对这些点并不是很好的近似。如果使窗口大小更大,则平均值完全消除了较短的峰值。对于此类数据,您可能会考虑替代平滑技术。
Amean = Movmean(Anoise,5);绘图(T,A,T,AMEAN)轴紧的传奇('原始数据'那'移动平均 - 窗口大小5'那'地点'那'最好的')
这smoothdata.
功能提供了多种平滑选项,例如Savitzky-Golay方法,它是一种在信号处理中使用的流行平滑技术。默认,smoothdata.
根据数据选择方法的最佳猜测窗口大小。
使用savitzky-golay方法来平滑噪声信号吵闹声
,并输出它使用的窗口大小。与...相比,该方法提供了更好的谷近似值Movemean
。
[Asgolay,Window] = SmoothData(Anoise,'sgolay');绘图(t,a,t,asgolay)轴紧的传奇('原始数据'那'savitzky-golay'那'地点'那'最好的')
窗户
窗口= 3.
鲁棒借助于噪声除噪声之外的异常值存在于数据中时特别有用的另一种平滑方法。将异常值注入嘈杂数据,并使用强大的Lowess来平滑数据,从而消除了异常值。
一个天气(36)= 20;arlowess = smoothdata(天敌,'rlowess'5);绘图(T,Anoise,T,Arlowess)轴紧的传奇('嘈杂的数据'那'强大的洛杉矶')
数据中的异常值可以显着偏斜数据处理结果和其他计算量。例如,如果您尝试使用移动的中位数平滑包含异常值的数据,则可以获得误导性峰值或山谷。
amedian = smoothdata(天敌,'movmedian');绘图(T,Anoise,T,Amedian)轴紧的传奇('嘈杂的数据'那'移动中位')
这isoullier.
检测到异常值时,函数返回逻辑1。验证异常值的索引和值吵闹声
。
tf = isoullier(天敌);IND =查找(TF)
IND = 36.
aoutlier = anoise(ind)
aoutlier = 20.
你可以使用Fillutiers.
通过指定填充方法来替换数据中的异常值。例如,填写异常值吵闹声
立即右边的邻居的价值。
asill = fillouters(anoise,'下一个');绘图(T,Anoise,T,AFILL)轴紧的传奇('具有异常值的嘈杂数据'那'填充异常值的嘈杂数据')
并非所有数据都包含同样间隔的点,这可能会影响数据处理的方法。创建一个约会时间
载体包含不规则采样时间的传染媒介Airreg.
。这时间
向量代表前30分钟每分钟采取的样品,然后每小时超过两天。
t0 = DateTime(2014,1,1,1,1,1,1);时间戳= sort(t0 +分钟(1:30));timehours = t0 +时间(1:48);Time = [时间造型时间himehours];Airreg = rand(1,长度(时间));图(时间,空调)轴紧的
默认,smoothdata.
在这种情况下,相应的间隔整数平滑,1,2,...,78
。由于整数时间戳不与点的采样协调Airreg.
,在平滑后,上半个半小时仍然仍然嘈杂。
Adefault = SmoothData(Airreg,'movmean',3);绘图(时间,安全,时间,Adefault)轴紧的传奇('原始数据'那“具有默认采样点的”平滑数据“)
MATLAB®中的许多数据处理功能,包括smoothdata.
那Movemean
, 和Fillutiers.
,允许您提供采样点,确保数据相对于其采样单元和频率处理。删除上半小时数据中的高频变化Airreg.
, 使用'samplepoints'
选择时间戳的选项时间
。
asamplepoints = smoothdata(airreg,'movmean',小时(3),'samplepoints',时间);绘图(时间,空中,时间,asamplepoints)轴紧的传奇('原始数据'那“使用样本点”平滑数据“)
Fillutiers.
|isoullier.
|Movemean
|movmedian.
|smoothdata.