主要内容

rmoutliers

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

描述

例子

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

  • 如果一种是行向量或列向量,rmoutliers检测异常值并删除它们。

  • 如果一种是矩阵,表格或时间表,rmoutliers检测每个列或变量中的异常值一种单独删除整行。

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

例子

B.= rmoutliers (一种方法指定确定离群值的方法。例如,rmoutliers(a,'卑鄙')的元素定义离群值一种超过三个标准偏差与平均值。

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

例子

B.= rmoutliers (一种movmethod窗户指定根据指定窗口检测本地异常值的移动方法。例如,rmoutliers(a,'movmean',5)将异常值定义为超过三个本地标准偏差的元素远离本地均值在五元窗口中。

例子

B.= rmoutliers (___暗淡沿着维度删除异常值暗淡一种对于任何先前的语法。例如,rmoutliers(a,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×13.57 59 60 59 58 57 58 61 62 60 62 58 57
TF =1x15逻辑阵列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×14.57 59 60 100 59 58 57 58 61 62 60 62 58 57
TF =1x15逻辑阵列0 0 0 0 0 0 0 0 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,0,0)+小时(0:长度(x)-1);

将异常值定义为滑动窗口内距离局部中值超过三个局部缩放MAD的点。找出异常值的位置一种相对于点T.窗口大小为5小时,然后取出它们。

[B, TF] = rmoutliers (,'movmedian',小时(5),'samplepoints',t);

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

情节(t),“b -”,t(〜tf),b,'r-')传说('输入数据'的输出数据

图中包含一个坐标轴。轴线包含2个线型对象。这些对象表示输入数据,输出数据。

创建包含两个异常值的矩阵,然后删除包含它们的列。

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

输入参数

全部折叠

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

数据类型:双倍的|

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

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

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

用于确定异常值的移动方法,指定为以下内容之一:

方法 描述
'movmedian' 离群值定义为在指定的窗口长度上,从本地中值出发超过三个局部缩放MAD的元素窗户。这种方法也称为a汉普尔过滤器
'movmean' 异常值被定义为从本地均值的元素超过三个本地标准偏差,在指定的窗口长度上窗户

窗口长度,指定为标量或双元素向量。

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

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

什么时候一种是时间表还是'samplepoints'指定为datetime期间向量,窗户必须是类型期间,并且窗口相对于采样点计算。

操作尺寸,指定为1或2.默认情况下,rmoutliers作用于尺寸不等于1的第一个维度。

名称-值对的观点

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

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

全部折叠

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

笔记

当输入数据是a时不支持此名称值对金宝app时间表。时间表始终使用行时间的向量作为采样点。要使用不同的采样点,必须编辑时间表,以便行时间包含所需的采样点。

移动窗口相对于采样点定义。例如,如果T.是与输入数据相对应的时间的矢量rmoutliers(rand(1,10),'movmean',3,'samplepoints',t)有一个代表之间的时间间隔的窗口-1.5 t(我)t(我)+ 1.5

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

例子:rmoutliers(t,'samplepoints',0:0.1:10)

数据类型:|双倍的|datetime|期间

表变量操作开启,指定为逗号分隔对组成'datavariables'以及此表中的其中一个选项。这'datavariables'值表示输入表的哪些变量用于检查异常值。未指定的表中的其他变量'datavariables'传递到输出而不进行异常值。在行的行动时一种rmoutliers删除具有与指定变量对应的列中具有异常值的行。在列中操作时一种rmoutliers从表中删除指定的变量。

选项 描述 例子
变量名

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

'var1'

“Var1”

变量名向量

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

{'var1''var2'}

[“var1”“var2”]

标量或可变指数的矢量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

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

[真为false]

功能手柄

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

@Isnumeric.

vartype.下标

由此生成的表格下标vartype.函数

vartype('numeric')

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

异常值检测选项

全部折叠

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

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

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

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

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

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

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

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

最小离群值计数,指定为逗号分隔对,由'minnumoutliers'和正标量。这'minnumoutliers'值指定删除行或列所需的离群值的最小数目。例如,rmoutliers(a,'minnumoutliers',3)删除一行矩阵一种当该列中检测到3个或更多异化符号时。

输出参数

全部折叠

删除了异常值的数据,返回为向量,矩阵,表或时间表。的大小B.取决于删除的行或列的数量。

删除数据指示符,作为逻辑向量返回。值1(真正的)对应于中的行或列一种那是被删除的。值0(错误的)对应于不变的行或列。方向和大小特遣部队取决于一种和操作的维度。

扩展功能

在R2018B中介绍