主要内容

isoutlier

发现数据中的异常值

描述

例子

特遣部队= isoutlier (一个返回元素为的逻辑数组真正的的对应元素中检测到异常值时一个

  • 如果一个是矩阵吗isoutlier的每一列一个分开。

  • 如果一个那么是多维数组吗isoutlier的第一个维度一个它的大小不等于1。

  • 如果一个那是桌子还是时间表呢isoutlier的每个变量一个分开。

默认情况下,离群值是一个超过三倍的值绝对偏差中位数从中位数开始。

例子

特遣部队= isoutlier (一个方法指定用于检测异常值的方法。例如,isoutlier (A,“的意思是”)返回真正的对所有元素超过三个标准差的均值。

特遣部队= isoutlier (一个、“百分位数”、阈值中将异常值定义为中指定的百分位数之外的点阈值.的阈值参数是包含较低和较高百分位阈值的两元素行向量,例如[90]

例子

特遣部队= isoutlier (一个movmethod窗口使用具有窗口长度的移动窗口方法检测局部异常值窗口.例如,isoutlier(“movmedian”,5)返回真正的在一个五元窗口内,从局部中值到局部缩放MAD的所有元素。

例子

特遣部队= isoutlier (___昏暗的的维度。一个对前面的任何语法进行操作。例如,isoutlier (2)对矩阵的每一行进行操作一个

例子

特遣部队= isoutlier (___名称,值指定使用一个或多个名称-值参数检测异常值的其他参数。例如,isoutlier(“SamplePoints”,t)检测数组中的异常值一个相对于时间向量的相应元素t

例子

特遣部队lUC= isoutlier(___还返回较低的阈值l,上阈值U,和中心值C采用离群点检测方法。

例子

全部折叠

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

A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57];TF = isoutlier(A)
TF =1x15逻辑阵列0 0 0 1 0 0 0 1 0 0 0 0 0 0 0

定义离均值三个标准差以上的点为离群值,并找到离群值在向量中的位置。

A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57];TF = isoutlier(A,“的意思是”
TF =1x15逻辑阵列0 0 0 0 0 0 0 0 1 0 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:长度(x) 1);

将异常值定义为滑动窗口内局部中值到局部缩放MAD超过三个的点。找到异常值的位置一个相对于里面的点t窗口大小为5小时。绘制数据和检测到的异常值。

TF = isoutlier(A,“movmedian”小时(5),“SamplePoints”t);情节(t)情节(t (TF) (TF),“x”)传说(“原始数据”“离群数据”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示原始数据、离群数据。

为矩阵的每一行找到异常值。

在对角线上创建一个包含异常值的数据矩阵。

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

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

TF = isoutlier(A,2)
TF =5x5逻辑阵列1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1

在数据向量中找到一个异常值,并可视化该异常值。

创建一个包含本地离群值的数据向量。

X = 1:10;A = [60 59 49 49 58 100 61 57 48 58];

使用默认检测方法定位异常值“中值”

[TF,L,U,C] = isoutlier(A);

绘制原始数据、异常值、检测方法确定的阈值和中心值。中心值为数据的中位数,上下限阈值为中位数上下三个比例MAD。

情节(x)情节(x (TF) (TF),“x”) yline([L U C],”:“, (“低门槛”“上阈值”“中心价值”])传说(“原始数据”“离群数据”

图中包含一个轴对象。axis对象包含5个line、constantline类型的对象。这些对象表示原始数据、离群数据。

输入参数

全部折叠

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

  • 如果一个是一个表,那么它的变量必须是类型,或者使用DataVariables参数的列表显式变量。当您使用包含非数据类型变量的表时,指定变量非常有用

  • 如果一个那么,有时间表吗isoutlier仅对表元素进行操作。如果使用行时间作为样本点,那么它们必须是唯一的,并按升序列出。

数据类型:||表格|时间表

检测异常值的方法,指定为这些值之一。

方法 描述
“中值” 离群值定义为距离中值超过三个比例MAD的元素。缩放后的MAD定义为c *值(abs(中位数(A))),在那里c = 1 /(√(2)* erfcinv (3/2))
“的意思是” 离群值被定义为超出平均值三个标准偏差的元素。这种方法更快,但健壮性较差“中值”
“四分位数” 异常值被定义为高于上四分位数(75%)或低于下四分位数(25%)的1.5个四分位数区间的元素。此方法在数据丢失时非常有用一个不是正态分布的。
“拉布” 使用Grubbs离群值检验检测离群值,基于假设检验每次迭代删除一个离群值。该方法假定数据在一个正态分布。
“gesd” 异常值检测使用广义极端学生化偏差检验异常值。这种迭代方法类似于“拉布”,但当有多个异常值相互掩盖时,性能会更好。

百分比阈值,指定为两个元素的行向量,其元素位于区间[0,100]中。第一个元素表示较低的百分比阈值,第二个元素表示较高的百分比阈值。的第一个元素阈值必须小于第二个元素。

例如,阈值为[90]将异常值定义为低于第10百分位和高于第90百分位的点。

检测异常值的移动方法,指定为这些值之一。

方法 描述
“movmedian” 离群值定义为在指定的窗口长度上,从局部中值开始超过三个局部缩放MAD的元素窗口.这种方法也被称为aHampel过滤器
“movmean” 异常值定义为在指定的窗口长度内,与局部平均值相比超过三个局部标准偏差的元素窗口

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

窗口是正整数标量,窗口围绕当前元素居中并包含窗口1相邻的元素。如果窗口为偶数时,则窗口以当前元素和以前的元素为中心。

窗口两元向量是正整数吗f [b],该窗口包含当前元素,b元素向后,和f元素。

一个是时间表还是SamplePoints指定为datetime持续时间向量,窗口必须有类型持续时间,窗口是相对于样本点计算的。

操作维度,指定为正整数标量。如果未指定值,则默认为第一个大小不等于1的数组维数。

考虑一个——- - - - - -n输入矩阵,一个

  • isoutlier (1)的每一列数据检测异常值一个并返回——- - - - - -n矩阵。

    isoutlier(A,1)逐列操作

  • isoutlier (2)的每一行数据检测异常值一个并返回——- - - - - -n矩阵。

    isoutlier(A,2)逐行操作

对于表格或时间表输入数据,昏暗的不支持,操作将万博1manbetx分别沿着每个表或时间表变量进行。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

例子:isoutlier(”,意味着“ThresholdFactor = 4)

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:isoutlier(“的意思是”,“ThresholdFactor”,4)

数据选项

全部折叠

样本点,指定为样本点值的向量,如果输入数据是表格,则指定为下表中的选项之一。样本点代表x数据的-轴位置,并且必须排序并包含唯一的元素。采样点不需要均匀采样。向量[1 2 3…]是默认值。

当输入数据是一个表时,您可以使用这些选项之一将样本点指定为表变量。

表格输入选项 描述 例子
变量名

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

“Var1”

“Var1”

标量变量索引

标量表变量索引

3.

逻辑向量

一种逻辑向量,其每个元素对应于一个表变量,其中真正的指定相应的变量作为样本点,所有其他元素都是

[真假假]

函数处理

接受表变量作为输入并返回逻辑标量(必须为)的函数句柄真正的仅用于一个表变量

@isnumeric

vartype下标

类生成的表下标vartype仅为一个变量返回下标的函数

vartype(数字)

请注意

输入数据为时,不支持此名称-值参数万博1manbetx时间表.时间表使用行时间向量作为样本点。若要使用不同的抽样点,必须编辑时间表,使行时间包含所需的抽样点。

移动窗口是相对于样本点定义的。例如,如果t那么,乘以向量是否对应于输入数据isoutlier(兰德(1 10)“movmean”、3、“SamplePoints”,t)是否有一个表示时间间隔的窗口-1.5 t(我)而且t(我)+ 1.5

当样本点向量有数据类型时datetime持续时间时,移动窗口长度必须有类型持续时间

例子:isoutlier(“SamplePoints”,0:0.1:10)

例子:isoutlier (T,“SamplePoints”,“Var1”)

数据类型:||datetime|持续时间

要操作的表变量,指定为此表中的选项之一。的DataVariablesValue指示要检查输入表的哪些变量以寻找异常值。与指定变量关联的数据类型必须为

第一个输出特遣部队包含对于未指定的变量DataVariables除非OutputFormat“表格”

选项 描述 例子
变量名

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

“Var1”

“Var1”

变量名向量

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

{“Var1”“Var2”}

[" Var1”“Var2”)

变量指标的标量或向量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

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

[真真假假]

函数处理

接受表变量作为输入并返回逻辑标量的函数句柄

@isnumeric

vartype下标

类生成的表下标vartype函数

vartype(数字)

例子:isoutlier(T,"DataVariables",["Var1" "Var2" "Var4"])

输出数据类型,指定为以下值之一:

  • “逻辑”—对于表格或时间表输入数据,返回输出特遣部队作为一个逻辑数组。

  • “表格”—对于表输入数据,返回输出特遣部队作为一张桌子。对于时间表输入数据,返回输出特遣部队作为一个时间表。

对于向量、矩阵或多维数组输入数据,OutputFormat不支持。万博1manbetx

例子:isoutlier (T,“OutputFormat”、“表格”)

异常值检测选项

全部折叠

检测阈值因子,指定为非负标量。

为方法“中值”而且“movmedian”,检测阈值因子替换缩放后的MAD个数,默认为3。

为方法“的意思是”而且“movmean”,检测阈值因子替换均值的标准差数,默认为3。

为方法“拉布”而且“gesd”,检测阈值因子为0 ~ 1之间的标量。接近0的值会导致离群值的数量减少,接近1的值会导致离群值的数量增加。默认检测阈值因子为0.05。

“四分位数”方法,检测阈值因子替换四分位范围的数量,默认为1.5。

当指定方法为时,不支持此名称-值参数万博1manbetx“百分位数”

的最大离群值计数“gesd”方法,指定为正整数标量。的MaxNumOutliers属性返回的离群值的最大数目“gesd”方法。例如,isoutlier (A,“gesd”、“MaxNumOutliers”,5)返回不超过5个异常值。

的默认值MaxNumOutliers这个整数是否最接近其中元素数量的10%一个.为最大离群值设置较大的值会使检测到所有离群值的可能性更大,但代价是降低计算效率。

“gesd”方法假定非离群值输入数据是从近似正态分布采样的。当数据没有以这种方式采样时,返回的离群值的数量可能超过MaxNumOutliers价值。

输出参数

全部折叠

异常值指示器,以矢量、矩阵、多维数组、表或时间表的形式返回。

特遣部队尺寸和一个除非OutputFormat“表格”.如果的值OutputFormat“表格”,然后特遣部队只有变量对应于DataVariables指定。

数据类型:逻辑

离群值检测方法使用的较低阈值,以标量、向量、矩阵、多维数组、表或时间表的形式返回。例如,默认异常值检测方法的下限阈值为输入数据中位数以下3个MAD。l尺寸和一个在所有维度中,除了长度为1的操作维度。

数据类型:||表格|时间表

异常值检测方法使用的上限阈值,以标量、向量、矩阵、多维数组、表或时间表的形式返回。例如,默认的异常值检测方法的上限阈值是输入数据的中位数上三个MAD。U尺寸和一个在所有维度中,除了长度为1的操作维度。

数据类型:||表格|时间表

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

数据类型:||表格|时间表

更多关于

全部折叠

绝对偏差中位数

对于一个有限长度的向量一个N标量观测时,中位数绝对偏差(MAD)定义为

中位数 | 一个 中位数 一个 |

i = 1,2,…,N

缩放后的MAD定义为c *值(abs(中位数(A))),在那里c = 1 /(√(2)* erfcinv (3/2))

参考文献

[1]NIST/SEMATECH统计方法电子手册, https://www.itl.nist.gov/div898/handbook/, 2013。

扩展功能

版本历史

在R2017a中引入

全部展开