检测和替换数据中的异常值
发现异常值B
= filloutliers (一个
,Fillmethod.
)一个
并根据Fillmethod.
.例如,filloutliers (A,“之前”)
用前面的非离群值元素替换离群值。默认情况下,离群值是一个大于三倍的值中位绝对偏差(疯狂)远离中位数。如果一个
是矩阵还是表格Fillutiers.
分别对每一列进行操作。如果一个
是一个多维数组吗Fillutiers.
作用于尺寸不等于1的第一个维度。
指定检测异常值的方法。例如,B
= filloutliers (一个
,Fillmethod.
,findmethod
)filloutliers (A,“之前”,“的意思是”)
的元素定义离群值一个
离均值超过三个标准差。
中指定的百分比之外的点定义为异常值B
= filloutliers (一个
,Fillmethod.
,百分位数,阈值
)阈值
.的阈值
参数是一个包含上下百分位阈值的双元素行向量,例如[90]
.
指定根据由窗口长度检测本地异常值的移动方法B
= filloutliers (一个
,Fillmethod.
,movmethod.
,窗口
)窗口
.例如,filloutliers (A,‘以前’,‘movmean’,5)
识别离群值是指在一个五元素窗口内距离本地平均值超过三个本地标准偏差的元素。
创建一个包含离群值的数据向量,并使用线性插值替换离群值。绘制原始数据和填充数据。
A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57];B = filloutliers (A,“线性”);情节(1:15,A,1:15,B,“o”)传说(“原始数据”,“窜改数据”)
创建包含异常值的向量,并将异常值定义为与平均值的三个标准偏差之外的点。用最近的元素替换异常值,该元素不是异常值,并绘制原始数据和内插数据。
A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57];B = filloutliers (A,“最近的”,'意思');情节(1:15,A,1:15,B,“o”)传说(“原始数据”,“窜改数据”)
使用移动中位数在正弦波中找到对应于时间向量的本地异常值。
创建一个包含局部离群值的数据向量。
0.1 x = 2 * pi: 3:2 *π;一个= sin (x);(47) = 0;
创建一个时间矢量,对应的数据一个
.
t = datetime(2017 1 1 0, 0, 0) +小时(0:长度(x) 1);
将异常值定义为滑动窗口内距离局部中值超过三个局部缩放MAD的点。找出离群值的位置一个
相对于里面的点t
窗口只有5个小时。用该方法计算出的阈值填充离群值“剪辑”
,并绘制原始数据和填充数据。
[B, TF, U, L, C] = filloutliers (,“剪辑”,“movmedian”小时(5),“SamplePoints”t);情节(t, t, B,“o”)传说(“原始数据”,'填充数据')
显示替换离群值的阈值。
L(TF)
ans = -0.8779
填充每行矩阵的异常值。
创建一个数据矩阵,其中包含沿对角线的异常值。
A = RANDN(5,5)+ DIAG(1000 * on(1,5))
一个=5×5103.× 1.0005 -0.0013 -0.0013 -0.0002 0.0007 0.0018 0.9996 0.0030 -0.0001 -0.0012 -0.0023 0.0003 1.0007 0.0015 0.0007 0.0009 0.0036 -0.0001 1.0014 0.0016 0.0003 0.0028 0.0007 0.0014 1.0005
根据每行中的数据用0填充离群值,并显示新值。
[B, TF,低,上部,中心]= filloutliers (0, 2);B
B =5×50 -1.3077 -1.3499 -0.2050 0.6715 1.8339 0 3.0349 -0.1241 -1.2075 -2.2588 0.3426 0 1.4897 0.7172 0.8622 3.5784 -0.0631 0 1.6302 0.3188 2.7694 0.7147
您可以使用以下命令直接访问检测到的离群值及其填充值特遣部队
作为一个索引向量。
((TF) B (TF))
ans =.5×2103.× 1.0005 0 0.9996 0 1.0007 0 1.0014 0 1.0005 0
在数据矢量中找到异常值,并使用它替换它“剪辑”
方法。绘制原始数据、填充数据、检测方法确定的阈值和中心值。“剪辑”
将离群值替换为上限阈值。
x = 1:10;A = [60 59 49 49 58 100 61 57 48 58];[B, TF,低,上部,中心]= filloutliers (,“剪辑”);绘图(x,a,x,b,“o”, x,低*的(10),x,上层* (10),x,中心*(10))的传说(“原始数据”,'填充数据',“低门槛”,“上阈值”,的中心值)
一个
- - - - - -输入数据输入数据,指定为向量、矩阵、多维数组、表或时间表。
如果一个
是一个表,那么它的变量必须是类型双
或单
,或者你也可以用“DataVariables”
要列出的名称值对双
或单
变量明确。在使用包含数据类型以外的数据类型的表格使用表时,指定变量很有用双
或单
.
如果一个
那么,有时间表吗Fillutiers.
仅在表元素上运行。行时间必须是唯一的,并以升序列出。
数据类型:双
|单
|桌子
|时间表
Fillmethod.
- - - - - -填充方法“中心”
|“剪辑”
|“以前”
|“下一个”
|“最近的”
|“线性”
|样条的
|“pchip”
|“makima”
填充替换异常值的方法,指定为数字标量或以下之一:
填补方法 | 描述 |
---|---|
数字标量 | 用指定的标量值填充 |
“中心” |
由决定的中心值填充findmethod |
“剪辑” |
由确定的下限阈值小于的元素用下限阈值填充findmethod .用大于由确定的上限阈值的元素的上限阈值填充findmethod |
“以前” |
用之前的非离群值填充 |
“下一个” |
用下一个非离群值填充 |
“最近的” |
填充最接近的非异常值 |
“线性” |
使用邻近的线性插值填充,非离群值 |
样条的 |
使用分段立方样条插值填充 |
“pchip” |
使用形状保留分段立方样条插值填充 |
“makima” |
修正Akima立方Hermite插值(数值,持续时间 , 和约会时间 数据类型) |
数据类型:双
|单
|字符
findmethod
- - - - - -异常值检测方法'中位'
(默认)|'意思'
|四分位数的
|'grubbs'
|“gesd”
检测异常值的方法,指定为以下之一:
方法 | 描述 |
---|---|
'中位' |
异常值定义为来自中位数的超过三个鳞片的元素。缩放的疯狂被定义为C *中位数(ABS(ABS(A-A)))) ,在那里C = -1 /(SQRT(2)* ERFCINV(3/2)) . |
'意思' |
离均值超过三个标准差的元素被定义为离均值超过三个标准差的元素。该方法速度快,但鲁棒性差'中位' . |
四分位数的 |
异常值定义为高于上四分位数(75%)或低于下四分位数(25%)的四分位数间范围超过1.5的元素。当数据输入时,这个方法很有用一个 不是正态分布。 |
'grubbs' |
使用Grubbs的测试检测到异常值,该测试基于假设检测将每次迭代中的一个异常值删除。此方法假定数据一个 是正态分布。 |
“gesd” |
使用概括的极端学生偏差测试检测异常值。这种迭代方法类似于'grubbs' ,但当有多个异常值相互掩蔽时,性能会更好。 |
阈值
- - - - - -百分位数阈值百分位数阈值,指定为一个元素位于区间[0,100]中的双元素行向量。第一个元素表示下百分位阈值,第二个元素表示上百分位阈值。例如,阈值为[90]
将异常值定义为低于第10百分位和高于第90百分位的分数。第一个元素阈值
必须小于第二个元素。
movmethod.
- - - - - -移动的方法“movmedian”
|“movmean”
异常值检测的移动方法,具体如下:
方法 | 描述 |
---|---|
“movmedian” |
离群值定义为在指定的窗口长度上,从本地中值出发超过三个局部缩放MAD的元素窗口 .这种方法也称为aHampel过滤器. |
“movmean” |
离群值定义为在指定的窗长范围内距离本地均值超过三个本地标准偏差的元素窗口 . |
窗口
- - - - - -窗口长度窗口长度,指定为正整数标量,正整数的两个元素矢量,正持续时间标量或正持续时间的两个元素矢量。
当窗口
是一个正整数标量,窗口是围绕当前元素和包含窗口1
相邻的元素。如果窗口
是偶数,则窗口围绕当前和以前的元素居中。
当窗口
是一个正整数的二元向量吗[b f]
,窗口包含当前元素,b
元素向后,f
元素。
当一个
是时间表还是“SamplePoints”
被指定为一个约会时间
或持续时间
向量,窗口
必须是类型持续时间
,窗口是相对于样本点计算的。
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|持续时间
昏暗的
- - - - - -尺寸运行维度运行,指定为正整数标量。如果没有指定值,则默认值是第一个数组维度,其大小不等于1。
考虑一个矩阵一个
.
Filloutliers(A,Fillmethod,1)
根据每一列的数据填充离群值。
Filloutliers(a,fillmethod,2)
根据每行数据填充离群值。
当一个
是一个表或时间表,昏暗的
不支持。金宝appFillutiers.
分别对每个表或时间表变量进行操作。
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
指定可选的逗号分离对名称,价值
参数。的名字
是参数名称和价值
为对应值。的名字
必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家
.
filloutliers (A,‘中心’,‘意思’,‘ThresholdFactor’,4)
SamplePoints
- - - - - -采样点vartype
下标样本点,指定为逗号分隔对,由“SamplePoints”
当输入数据是表时,可以是样本点值向量或下表中的选项之一。样本点代表x-轴位置的数据,必须被排序并包含唯一的元素。采样点不需要均匀采样。向量[1 2 3…]
是默认的。
当输入数据是一个表时,您可以使用以下选项之一将示例点指定为表变量。
表输入选项 | 描述 | 例子 |
---|---|---|
变量名 | 指定单个表变量名的字符向量或标量字符串 |
|
标量变量指数 | 标量表变量索引 |
|
逻辑矢量 | 逻辑向量,其每个元素对应一个表变量,其中 |
|
函数处理 | 接受表变量作为输入并返回逻辑标量的函数句柄,逻辑标量必须为 |
|
vartype 下标 |
属性生成的表下标 |
|
请注意
当输入数据为金宝app时间表
.时间表总是使用行时间向量作为样本点。要使用不同的样本点,必须编辑时间表,以便行时间包含所需的样本点。
移动窗口是相对于样本点定义的。例如,如果t
那么,时间向量是否与输入数据相对应呢Filloutliers(Rand(1,10),'上一个','movemean',3,'samplepoints',t)
有一个代表之间的时间间隔的窗口-1.5 t(我)
和t(我)+ 1.5
.
当样本点向量具有数据类型时约会时间
或持续时间
,则移动窗口长度必须有类型持续时间
.
例子:filloutliers([1 100 3 4],'nearest','SamplePoints',[1 2.5 3 4])
Filloutions(t,'最近','samplepoints',“var1”)
数据类型:单
|双
|约会时间
|持续时间
DataVariables
- - - - - -要操作的表变量vartype
下标要操作的表变量,指定为逗号分隔对,由“DataVariables”
这张表中有一个选项。的“DataVariables”
值表示要填充的输入表的哪些变量。未指定的表中的其他变量“DataVariables”
通过到输出而不被操作。
选项 | 描述 | 例子 |
---|---|---|
变量名 | 指定单个表变量名的字符向量或标量字符串 |
|
变量名称矢量 | 字符向量或字符串数组的单元格数组,其中每个元素是表变量名称 |
|
可变指标的标量或向量 | 表变量指数的标量或向量 |
|
逻辑矢量 | 逻辑向量,其每个元素对应一个表变量,其中 |
|
函数处理 | 接受表变量作为输入并返回逻辑标量的函数句柄 |
|
vartype 下标 |
属性生成的表下标 |
|
例子:Filloutliers(a,'上一个','datavariables',[var1'“var2”“var4”))
阈值Factor.
- - - - - -检测阈值的因素检测阈值因子,指定为逗号分隔对组成“ThresholdFactor”
一个非负标量。
为方法'中位'
和“movmedian”
时,检测阈值因子代替缩放的MAD数量,MAD数量默认为3。
为方法'意思'
和“movmean”
时,检测阈值因子代替离均值的标准差数,默认为3。
为方法'grubbs'
和“gesd”
时,检测阈值因子为0 ~ 1之间的标量。接近0的值会产生更少的离群值,接近1的值会产生更多的离群值。默认检测阈值因子为0.05。
为四分位数的
方法中,检测阈值因子代替四分位范围数,默认为1.5。
当指定的方法为时,不支持此名称-值对金宝app百分位数的
.
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
MaxNumOutliers
- - - - - -最大异常计数最大离群值计数“gesd”
方法指定为逗号分隔的对,由“MaxNumOutliers”
一个正标量。的“MaxNumOutliers”
属性返回的离群值的最大数目“gesd”
方法。例如,filloutliers (A,“线性”,‘gesd’,‘MaxNumOutliers’,5)
返回值不超过5个异常值。
的默认值“MaxNumOutliers”
是最接近元素数量的10%的整数一个
.为最大离群值设置一个更大的值可以确保检测到所有离群值,但代价是降低计算效率。
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
差异化
- - - - - -已知的异常值指标已知离群值指示器,指定为逗号分隔对组成“OutlierLocations”
和具有相同大小的逻辑向量、矩阵或多维数组一个
.已知的离群值指示元素可以真的
在…的相应位置指示离群值一个
或错误的
否则。指定“OutlierLocations”
关闭默认的异常值检测方法,仅使用已知的异常值指示符的元素来定义异常值。
的“OutlierLocations”
时不能指定名称-值对findmethod
指定了。
输出特遣部队
是一样的“OutlierLocations”
价值。
数据类型:逻辑
B
-填充的离群值数组填充的离群值数组,以向量、矩阵、多维数组、表或时间表的形式返回。的元素B
是一样的吗一个
,但所有异常值都被替换为根据Fillmethod.
.
数据类型:双
|单
|桌子
|时间表
特遣部队
——离群值指标离群值指示器,以向量、矩阵或多维数组的形式返回。一个元素的特遣部队
是真的
当对应的元素一个
是一个异常值吗错误的
否则。特遣部队
大小是一样的吗一个
.
数据类型:逻辑
l
——低阈值异常检测方法使用的阈值较低,作为标量,向量,矩阵,多维数组,表或时间表返回。例如,默认异常值检测方法的较低值是输入数据中位数下方的三个缩放MAD。l
有相同的尺寸一个
在所有尺寸中,除了长度为1的操作尺寸。
数据类型:双
|单
|桌子
|时间表
U
- 上限阈值离群值检测方法使用的上限阈值,返回为标量、向量、矩阵、多维数组、表或时间表。例如,默认离群值检测方法的上限值是比输入数据中值高出3倍的MAD。U
有相同的尺寸一个
在所有尺寸中,除了长度为1的操作尺寸。
数据类型:双
|单
|桌子
|时间表
C
——中心价值离群值检测方法使用的中心值,返回为标量、向量、矩阵、多维数组、表或时间表。例如,默认的离群值检测方法的中心值就是输入数据的中位数。C
有相同的尺寸一个
在所有尺寸中,除了长度为1的操作尺寸。
数据类型:双
|单
|桌子
|时间表
对于随机变量向量一个组成的N中值绝对偏差(MAD)定义为
为i = 1,2,…,N.
缩放的疯狂被定义为C *中位数(ABS(ABS(A-A))))
在哪里C = -1 /(SQRT(2)* ERFCINV(3/2))
.
使用注意事项及限制:
的百分位数的
,“幼虫”
, 和“gesd”
不支持方法。金宝app
的“movmedian”
和“movmean”
方法不支持高时间表。金宝app
的“SamplePoints”
和“MaxNumOutliers”
不支持名称-值对。金宝app
的价值“DataVariables”
不能是函数句柄。
计算fillmethod filloutliers(一个)
,filloutliers (fillmethod,“中位数”,…)
或filloutliers (fillmethod,四分位数,…)
沿着第一个维度只有当金宝app一个
是一个高列向量。
的语法filloutliers (A,花键,…)
和filloutliers(“makima”,…)
不受支持。金宝app
有关更多信息,请参见高阵列.
使用注意事项及限制:
的“movmean”
和“movmedian”
检测离群值的方法不支持时间表输入数据datetime金宝app“SamplePoints”
值,或持续时间“SamplePoints”
值。
只有“中心”
,“剪辑”
并且当输入数据是时间表或何时时,支持用于填充异常值的数字标准方法金宝app“SamplePoints”
价值类型约会时间
或持续时间
.
用来样条的
和“pchip”
填充方法,您必须启用对可变大小阵列的支持。金宝app
字符串和字符数组的输入必须是常量。
的“makima”
不支持选项。金宝app
backgroundPool
或使用并行计算工具箱™加速代码螺纹池
.这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
Hai fatto clic su un collegamento che corto comando MATLAB:
Esegui il comando inserendolo nella finestra di comando MATLAB。我浏览器web非supportano金宝app I命令MATLAB。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。