主要内容

Fillutiers.

检测和替换数据中的异常值

描述

例子

B.= fillouters(一种Fillmethod.找到异常值一种并根据替换它们Fillmethod..例如,filloutliers (A,“之前”)使用以前的非异常值元素替换异常值。默认情况下,异常值是一个超过三个缩放的值中位绝对偏差(疯狂)远离中位数。如果一种是一个矩阵或表,然后Fillutiers.单独操作每列。如果一种那是一个多维数组Fillutiers.作用于尺寸不等于1的第一个维度。

例子

B.= fillouters(一种Fillmethod.findmethod指定检测异常值的方法。例如,filloutliers (A,“之前”,“的意思是”)的元素定义离群值一种超过三个标准偏差与平均值。

B.= fillouters(一种Fillmethod.,百分位数,临界点中指定的百分比之外的点定义为异常值临界点.这临界点参数是一个包含较低百分位数和上百分位数的双元素行向量,例如[10 90]

例子

B.= fillouters(一种Fillmethod.movmethod.窗户指定根据由窗口长度检测本地异常值的移动方法窗户.例如,filloutliers (A,‘以前’,‘movmean’,5)将异常值识别为超过三个本地标准偏差的元素远离本地均值在五元窗口中。

例子

B.= fillouters(___暗淡沿尺寸运作暗淡一种对于任何先前的语法。例如,Fillouter(A,'Linear',2)在矩阵的每一行上运行一种

例子

B.= fillouters(___名称,价值指定使用一个或多个名称值对参数来检测和替换异常值的其他参数。例如,filloutliers (A,‘以前’,‘SamplePoints’,t)在离群点检测一种相对于时间向量的相应元素T.

例子

[B.特遣部队L.C) = filloutliers (___还返回有关通过检测方法计算的异常值的位置和阈值的信息。特遣部队是一个逻辑阵列,指示异常值的位置一种.这L., 和C参数表示离群值检测方法使用的上下阈值和中心值。

例子

全部收缩

创建一个包含离群值的数据向量,并使用线性插值替换离群值。绘制原始数据和填充数据。

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,“哦”)传说('原始数据''内插数据'

图包含轴。轴包含2个类型的型号。这些对象代表原始数据,内插数据。

创建包含异常值的向量,并将异常值定义为与平均值的三个标准偏差之外的点。用最近的元素替换异常值,该元素不是异常值,并绘制原始数据和内插数据。

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,“哦”)传说('原始数据''内插数据'

图包含轴。轴包含2个类型的型号。这些对象代表原始数据,内插数据。

使用移动中位数在正弦波中找到对应于时间向量的本地异常值。

创建一个包含局部离群值的数据向量。

0.1 x = 2 * pi: 3:2 *π;一个= sin (x);(47) = 0;

创建一个时间矢量,对应的数据一种

t = DateTime(2017,1,1,0,0,0,0,0,0)+小时(0:长度(x)-1);

将异常值定义为超过三个本地缩放的距离局部中位数,在滑动窗口内。找到异常值的位置一种相对于点T.窗口大小为5小时。使用该方法填充具有计算阈值的异常值'夹子',并绘制原始和填充的数据。

[B, TF, U, L, C] = filloutliers (,'夹子''movmedian',小时(5),'samplepoints',t);绘图(t,a,t,b,“哦”)传说('原始数据''填充数据'

图包含轴。轴包含2个类型的型号。这些对象代表原始数据,填充数据。

显示替换离群值的阈值。

L(TF)
ANS = -0.8779.

填充每行矩阵的异常值。

创建一个数据矩阵,其中包含沿对角线的异常值。

A = RANDN(5,5)+ DIAG(1000 * on(1,5))
A =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 0.7172 0.862 3.5784 -0.0631 0 1.6302 0.3188 2.7694 0.7147 1.4172 0

您可以使用直接访问检测到的异常值及其填充值特遣部队作为索引矢量。

((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,“哦”,x,较低的* oir(1,10),x,上部* x(1,10),x,中心* x(1,10))图例('原始数据''填充数据'“低门槛”'上限阈值'的中心值

图包含轴。轴包含5个类型的线。这些对象代表原始数据,填充数据,较低阈值,上阈值,中心值。

输入参数

全部收缩

输入数据,指定为向量、矩阵、多维数组、表或时间表。

如果一种是一个表,那么它的变量必须是类型双倍的,或者你可以使用'datavariables'要列出的名称值对双倍的变量明确。在使用包含数据类型以外的数据类型的表格使用表时,指定变量很有用双倍的

如果一种那么,有时间表吗Fillutiers.仅在表元素上运行。行时间必须是唯一的,并以升序列出。

数据类型:双倍的||桌子|时间表

填充替换异常值的方法,指定为数字标量或以下之一:

填充方法 描述
数字标量 用指定的标量值填充
“中心” 填充中心值findmethod
'夹子' 填充小于由较低阈值的元素填充的较低阈值findmethod.用大于由确定的上限阈值的元素的上限阈值填充findmethod
“以前” 用之前的非离群值填充
'下一个' 填充下一个非异常值
'最近' 填充最接近的非异常值
“线性” 使用邻近的线性插值填充,非离群值
'样条曲线' 使用分段立方样条插值填充
“pchip” 使用形状保留分段立方样条插值填充
'makima' 修改Akima立方Hermite插值(数字,期间, 和约会时间仅限数据类型)

数据类型:双倍的||char

检测异常值的方法,指定为以下之一:

方法 描述
'中位' 异常值定义为来自中位数的超过三个鳞片的元素。缩放的疯狂被定义为C *中位数(ABS(ABS(A-A)))), 在哪里C = -1 /(SQRT(2)* ERFCINV(3/2))
'意思' 异常值被定义为均值超过三个标准偏差的元素。这种方法比速度更快但更稳健'中位'
'四分位数' 异常值定义为高于四分位数(75%)或低于单四分位数(25%)之上超过1.5个间的元素。此方法在数据中有用一种通常不会分发。
'grubbs' 使用Grubbs的测试检测到异常值,该测试基于假设检测将每次迭代中的一个异常值删除。此方法假定数据一种通常是分布式的。
'gesd' 使用概括的极端学生偏差测试检测异常值。这种迭代方法类似于'grubbs',但是当有多个异常值互相屏蔽时,可以更好地执行更好。

百分位数阈值,指定为两个元素行向量,其元素处于间隔[0,100]。第一元素表示较低百分位数阈值,第二个元素表示上百分位数阈值。例如,阈值[10 90]将异常值定义为低于第10百分位和高于第90百分位的分数。第一个元素临界点必须小于第二个元素。

异常值检测的移动方法,具体如下:

方法 描述
'movmedian' 离群值定义为在指定的窗口长度上,从本地中值出发超过三个局部缩放MAD的元素窗户.这种方法也称为a汉普尔过滤器
'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,...,namen,valuen

例子:filloutliers (A,‘中心’,‘意思’,‘ThresholdFactor’,4)
数据选项

全部收缩

示例点,指定为逗号分隔对组成'samplepoints'和矢量。样本点代表X- 数据的轴上位置一种,并且必须排序并包含唯一的元素。样品点不需要均匀采样。默认采样点向量是[1 2 3 ...]

笔记

当输入数据为时,不支持此名称-值对金宝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])

数据类型:|双倍的|约会时间|期间

表变量操作开启,指定为逗号分隔对组成'datavariables'以及此表中的其中一个选项。这'datavariables'值表示要填充的输入表的哪些变量。未指定的表中的其他变量'datavariables'传递到输出而不进行操作。

选项 描述 例子
变量名

指定单个表变量名的字符向量或标量字符串

'var1'

“Var1”

变量名称矢量

字符向量或字符串数​​组的单元格数组,其中每个元素是表变量名称

{'var1''var2'}

[“var1”“var2”]

标量或可变指数的矢量

表变量指数的标量或向量

1

[1 3 5]

逻辑矢量

一种逻辑向量,其每个元素对应一个表变量,其中真的包括相应的变量和错误的不包括它

[真为false]

功能手柄

函数句柄,将表变量作为输入返回逻辑标量

@Isnumeric.

vartype.下标.

由此生成的表格下标vartype.功能

vartype('numeric')

例子:Filloutliers(a,'上一个','datavariables',[var1'“var2”“var4”))

异常值检测选项

全部收缩

检测阈值因子,指定为逗号分隔对组成'阈值Factor'和一个非负标量。

为方法'中位''movmedian',检测阈值因子替换缩小MAD的数量,默认为3。

为方法'意思''movmean',检测阈值因子替换默认为3的平均值的标准偏差的数量。

为方法'grubbs''gesd',检测阈值因子是从0到1.接近0的值的标量导致较少数量的异常值,并且接近1的值,导致更大数量的异常值。默认检测阈值因子为0.05。

'四分位数'方法中,检测阈值因子代替四分位范围数,默认为1.5。

当指定的方法为时,不支持此名称-值对金宝app百分位数的

数据类型:双倍的||int8|int16|INT32.|INT64.|uint8|uint16|uint32|uint64

最大的异常值计数,适用于'gesd'仅作为逗号分隔对的方法组成'maxnumoutliers'和正标量。这'maxnumoutliers'value指定返回的最大异常值'gesd'方法。例如,filloutliers (A,“线性”,‘gesd’,‘MaxNumOutliers’,5)返回不超过五个异常值。

默认值'maxnumoutliers'是最接近元素数量的10%的整数一种.为最大值设置更大的异常值,可以确保检测到所有异常值,但以降低的计算效率为代价。

数据类型:双倍的||int8|int16|INT32.|INT64.|uint8|uint16|uint32|uint64

已知的异常值指示符,指定为逗号分隔的配对组成'extierlocations'和相同尺寸的逻辑向量,矩阵或多维阵列一种.已知的离群值指示元素可以真的表示相应位置的异常值一种错误的否则。指定'extierlocations'关闭默认的异常值检测方法,仅使用已知的异常值指示符的元素来定义异常值。

'extierlocations'名称 - 值对无法指定何时findmethod指定了。

输出特遣部队'extierlocations'价值。

数据类型:逻辑

输出参数

全部收缩

填充的离群值数组,作为向量、矩阵、多维数组、表或时间表返回。要素B.与那些相同一种,但所有异常符可根据Fillmethod.

数据类型:双倍的||桌子|时间表

异常值指示符,返回为向量,矩阵或多维数组。一个元素特遣部队真的当相应的元素一种是一个异常值吗错误的否则。特遣部队与尺寸相同一种

数据类型:逻辑

异常检测方法使用的阈值较低,作为标量,向量,矩阵,多维数组,表或时间表返回。例如,默认异常值检测方法的较低值是输入数据中位数下方的三个缩放MAD。L.有相同的尺寸一种在所有尺寸中,除了长度为1的操作尺寸。

数据类型:双倍的||桌子|时间表

离群值检测方法使用的上限阈值,返回为标量、向量、矩阵、多维数组、表或时间表。例如,默认离群值检测方法的上限值是比输入数据中值高出3倍的MAD。有相同的尺寸一种在所有尺寸中,除了长度为1的操作尺寸。

数据类型:双倍的||桌子|时间表

离群值检测方法使用的中心值,返回为标量、向量、矩阵、多维数组、表或时间表。例如,默认的离群值检测方法的中心值就是输入数据的中位数。C有相同的尺寸一种在所有尺寸中,除了长度为1的操作尺寸。

数据类型:双倍的||桌子|时间表

更多关于

全部收缩

中位绝对偏离

对于随机变量向量一种N标量观察,中位绝对偏差(MAD)被定义为

疯狂=中位数 | 一种 一世 中位数 一种 |

为了我= 1,2,......,n

缩放的疯狂被定义为C *中位数(ABS(ABS(A-A))))在哪里C = -1 /(SQRT(2)* ERFCINV(3/2))

扩展功能

在R2017A介绍