主要内容

isoullier.

查找数据中的异常值

描述

例子

TF.= isoullier(一种返回一个元素的逻辑阵列真的当在相应的元素中检测到异常值时一种。默认情况下,异常值是一个超过三个缩放的值中位绝对偏差(疯狂)远离中位数。如果一种是一个矩阵或表,然后isoullier.单独操作每列。如果一种那是一个多维数组isoullier.沿着尺寸不等于1的第一维操作。

例子

TF.= isoullier(一种方法指定检测异常值的方法。例如,isoullier(a,'卑鄙')回报真的对于所有元素超过三种标准偏差。

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

例子

TF.= isoullier(一种movmethod.窗户指定根据由窗口长度检测本地异常值的移动方法窗户。例如,isoullier(a,'movmedian',5)回报真的对于所有元素,来自包含五个元素的滑动窗口中的局部中位数超过三个本地较高。

例子

TF.= isoullier(___暗淡沿尺寸运作暗淡一种对于任何先前的语法。例如,isoullier(a,2)在矩阵的每一行上运行一种

例子

TF.= isoullier(___名称,价值指定使用一个或多个名称值对参数检测异常值的其他参数。例如,isoullier(a,'samplepoints',t)检测异常值一种相对于时间向量的相应元素T.

例子

[TF.L.C] = isoullier(___还返回低阈值和上限和上部阈值以及由异常值检测方法使用的中心值。

例子

全部收缩

在数据矢量中找到异常值。输出中的逻辑1表示异常值的位置。

a = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57];tf = isoullier(a)
tf =1x15逻辑阵列0 0 0 1 0 0 0 0 1 0 0 0 0 0 0

定义异常值,只有三个标准偏差与平均值有多个标准偏差,并找到向量中的异常值的位置。

a = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57];tf = isoullier(a,'吝啬的'
tf =1x15逻辑阵列0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

创建包含本地异常值的数据向量。

x = -2 * pi:0.1:2 * pi;a = sin(x);a(47)= 0;

创建与数据相对应的时间向量一种

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

将异常值定义为超过三个本地缩放的距离局部中位数,在滑动窗口内。找到异常值的位置一种相对于点T.窗口大小为5小时。绘制数据和检测到的异常值。

tf = isoullier(a,'movmedian',小时(5),'samplepoints',t);绘图(t,a,t(tf),a(tf),'X') 传奇('数据''异常值'

查找每行矩阵的异常值。

沿对角线创建包含异常值的数据矩阵。

A =魔术(5)+ DIAG(200 *(1,5))
A =5×5217 24 11 15 23 205 7 14 16 4 6 213 20 22 10 12 19 221 3 11 11 18 25 2 209

根据每行中的数据查找异常值的位置。

tf = isoullier(a,2)
tf =5x5逻辑阵列1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1

创建包含异常值的数据向量。查找并绘制异常值的位置,以及由异常值方法确定的阈值和中心值。中心值是数据的中位数,上层和下限阈值是中位上方和下方的三个鳞片疯狂。

x = 1:10;a = [60 59 49 49 58 100 61 57 48 58];[tf,l,u,c] = isoullier(a);绘图(x,a,x(tf),a(tf),'X',x,l * x(1,10),x,u * x(1,10),x,c * one(1,10))图例('原始数据''异常值''较低的门槛''上限阈值''中心值'

输入参数

全部收缩

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

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

如果一种是一个时间表,然后isoullier.仅在表元素上运行。行时间必须是唯一的,并以升序列出。

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

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

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

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

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

方法 描述
'movmedian' 回报真的对于超过三个本地的元素,从本地中位于窗口长度指定的窗口长度窗户
'movmean' 回报真的对于超过三个本地标准偏差的元素,从本地均值上指定的窗口长度窗户

窗口长度,指定为正整数标量,正整数的两个元素矢量,正持续时间标量或正持续时间的两个元素矢量。

什么时候窗户是一个正整数标量,窗口以当前元素为中心,并包含窗口1邻居元素。如果窗户甚至,窗口符合当前和以前的元素。

什么时候窗户是正整数的两个元素矢量[b f],窗口包含当前元素,B.元素向后,和F元素前进。

什么时候一种是时间表或'samplepoints'被指定为一个约会时间或者期间向量,然后窗户必须是类型期间,并且窗口相对于采样点计算。

数据类型:双倍的|单身的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.|UINT64|期间

维度运行,指定为正整数标量。如果没有指定值,则默认值是第一个数组维度,其大小不等于1。

考虑一个矩阵一种

isoullier(a,1)根据每列中的数据检测异常值一种

isoullier(a,2)根据每行中的数据检测异常值一种

什么时候一种是一个表或时间表,暗淡不受支持。金宝appisoullier.沿每个表或时间可变分别操作。

数据类型:双倍的|单身的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.|UINT64

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:isoullier(a,'均值','thresholdfactor',4)

检测阈值因子,指定为逗号分隔的对组成'阈值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

示例点,指定为逗号分隔对组成'samplepoints'和矢量。采样点代表数据的位置一种。样品点不需要均匀采样。默认情况下,采样点向量是[1 2 3 ...]

移动窗口相对于样本点定义,必须对其进行排序并包含唯一元素。例如,如果T.是与输入数据相对应的时间的矢量isoullier(兰德(1,10),'movmean',3,'samplepoints',t)有一个代表之间的时间间隔的窗口T(i)-1.5T(i)+1.5

当样本点向量具有数据类型时约会时间或者期间,然后移动窗口长度必须具有类型期间

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

表格变量,指定为逗号分隔对组成'datavariables'和变量名,变量名称的单元阵列,数字矢量,逻辑向量,函数句柄或表格vartype.下标。这'datavariables'值表示要检测到异常值的输入表的哪一列,并且可以是以下之一:

  • 指定单表变量名称的字符矢量

  • 每个元素是表变量名称的一个字符向量的单元格数组

  • 表可变指数的矢量

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

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

  • 一张桌子vartype.下标

与指示变量关联的数据类型必须是双倍的或者单身的

例子:'年龄'

例子:{'身高体重'}

例子:@Isnumeric.

例子:vartype('numeric')

最大的异常值计数,适用于'gesd'仅作为逗号分隔对的方法组成'maxnumoutliers'和一个正整数。这'maxnumoutliers'value指定返回的最大异常值'gesd'方法。例如,isoullier(a,'gesd','maxnumoutliers',5)返回不超过五个异常值。

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

'gesd'方法假设从近似正态分布采样非异常值输入数据。当以这种方式未采样数据时,返回的异常值的数量可能超过'maxnumoutliers'价值。

数据类型:双倍的|单身的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.|UINT64

输出参数

全部收缩

异常值指示符,返回为向量,矩阵或多维数组。一个元素TF.真的当相应的元素一种是一个异常值和错误的除此以外。TF.与尺寸相同一种

数据类型:逻辑

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

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

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

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

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

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

更多关于

全部收缩

中位绝对偏离

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

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

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

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

扩展能力

在R2017A介绍