主要内容

rmoutliers

检测和去除数据中的异常值

描述

例子

B= rmoutliers (一个检测并去除向量、矩阵、表格或时间表中的数据中的异常值。

  • 如果一个是行向量或列向量,rmoutliers检测并移除异常值。

  • 如果一个是一个矩阵、表格或时间表,rmoutliers检测每一列或变量的离群值一个分开并删除整个行。

默认情况下,离群值是大于三个比例的中位数绝对偏差(MAD)的值。

例子

B= rmoutliers (一个,方法指定确定离群值的方法。例如,rmoutliers (A,“的意思是”)的元素定义离群值一个离均值超过三个标准差。

B= rmoutliers (一个,百分位数,阈值中指定的百分比之外的点定义为异常值阈值.的阈值参数是一个包含上下百分位阈值的双元素行向量,例如[90]

例子

B= rmoutliers (一个,movmethod,窗口指定根据指定窗口检测局部异常值的移动方法。例如,rmoutliers(“movmean”,5)将异常值定义为五个元素窗口内距离局部均值超过三个本地标准偏差的元素。

例子

B= rmoutliers (___,昏暗的移除维度上的异常值昏暗的一个对于前面的任何语法。例如,rmoutliers (2)删除矩阵的列而不是行一个

例子

B= rmoutliers (___,名称,值指定使用一个或多个名称-值对参数检测和移除异常值的附加参数。例如,rmoutliers(“SamplePoints”,t)在离群点检测一个相对于时间向量的相应元素t

例子

B,特遣部队) = rmoutliers (___的行或列对应的逻辑向量一个被删除。

例子

全部折叠

创建一个包含两个异常值的向量,并删除它们。特遣部队允许您确定输入向量中的哪些元素被检测为离群值并删除。

A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57];[B, TF] = rmoutliers (A)
B =1×1357 59 60 59 58 57 58 61 62 60 62 58 57
TF =1连接逻辑阵列0 0 0 1 0 0 0 0 1 0 0 0 0 0 0
(TF)
ans =1×2100 300

当离群值定义为离数据均值三个标准差以上的点时,移除向量的离群值。

A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57];[B, TF] = rmoutliers (,“的意思是”
B =1×1457 59 60 100 59 58 57 58 61 62 60 62 58 57
TF =1连接逻辑阵列0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
(TF)
ans = 300

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

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] = rmoutliers (,“movmedian”小时(5),“SamplePoints”t);

绘制输入数据和移除离群值的数据。

情节(t),“b -”t (~ TF), B,的r -)传说(输入数据的,的输出数据

图中包含一个轴对象。轴对象包含两个类型为line的对象。这些对象表示输入数据,输出数据。

创建一个包含两个离群值的矩阵,并删除包含它们的列。

一个=魔法(5);(4, 4) = 500;(5) = 500;一个
一个=5×517 24 18 15 23 5 7 14 16 4 6 13 20 22 10 12 19 500 3 11 18 25 2 500
B = rmoutliers (2)
B =5×317 24 1 23 5 7 4 6 13 10 12 19 11 18 25

输入参数

全部折叠

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

数据类型:|

异常值检测方法,具体为:

方法 描述
“中值” 离群值定义为比中值高出3个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或2。默认情况下,rmoutliers作用于尺寸不等于1的第一个维度。

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:rmoutliers(“ThresholdFactor”,4)
数据选项

全部折叠

样本点,指定为逗号分隔对,由“SamplePoints”当输入数据是表时,可以是样本点值向量或下表中的选项之一。样本点代表x-轴位置的数据,必须被排序并包含唯一的元素。采样点不需要均匀采样。向量[1 2 3…]是默认的。

当输入数据是一个表时,您可以使用以下选项之一将示例点指定为表变量。

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

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

“Var1”

“Var1”

标量变量指数

标量表变量索引

3.

逻辑向量

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

(真的假的假的)

函数处理

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

@isnumeric

vartype下标

属性生成的表下标vartype函数,只返回一个变量的下标

vartype(数字)

请注意

当输入数据为金宝app时间表.时间表总是使用行时间向量作为样本点。要使用不同的样本点,必须编辑时间表,以便行时间包含所需的样本点。

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

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

例子:rmoutliers (A ' SamplePoints 0:0.1:10)

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

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

要操作的表变量,指定为逗号分隔对,由“DataVariables”这张表中有一个选项。的“DataVariables”值指示要检查输入表中的哪些变量是否为异常值。表中未指定的其他变量“DataVariables”通过输出而不检查异常值。当对行的操作一个,rmoutliers删除与指定变量对应的列中具有离群值的任何行。对列进行操作时一个,rmoutliers从表中删除指定的变量。

选项 描述 例子
变量名

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

“Var1”

“Var1”

变量名向量

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

{“Var1”“Var2”}

[" Var1”“Var2”)

可变指标的标量或向量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

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

(真的假的真的)

函数处理

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

@isnumeric

vartype下标

属性生成的表下标vartype函数

vartype(数字)

例子:rmoutliers (T“DataVariables”[“Var1”“Var2”“Var4”])

孤立点检测的选项

全部折叠

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

为方法“中值”“movmedian”时,检测阈值因子代替缩放的MAD数量,MAD数量默认为3。

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

为方法“拉布”“gesd”时,检测阈值因子为0 ~ 1之间的标量。接近0的值会产生更少的离群值,接近1的值会产生更多的离群值。默认检测阈值因子为0.05。

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

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

最大离群值计数“gesd”方法指定为逗号分隔的对,由“MaxNumOutliers”一个正标量。的“MaxNumOutliers”属性返回的离群值的最大数目“gesd”方法。例如,rmoutliers(“MaxNumOutliers”,5)返回值不超过5个异常值。

的默认值“MaxNumOutliers”整数是否最接近元素数的10%一个.为最大离群值设置一个更大的值可以确保检测到所有离群值,但代价是降低计算效率。

最小离群值计数,指定为逗号分隔对,由“MinNumOutliers”一个正标量。的“MinNumOutliers”值指定删除行或列所需的离群值的最小数目。例如,rmoutliers(“MinNumOutliers”,3)删除矩阵的一行一个当在该列中检测到3个或更多异常值时。

输出参数

全部折叠

移除了离群值的数据,以向量、矩阵、表或时间表的形式返回。的大小B取决于删除的行或列的数量。

删除数据指示器,作为逻辑向量返回。值1 (真正的)对应于中的行或列一个被删除。值0 ()对应于未更改的行或列。的方向和大小特遣部队取决于一个以及操作的维度。

扩展功能

介绍了R2018b