主要内容

ischange

发现数据的突然变化

描述

例子

特遣部队= ischange (一个返回元素为1的逻辑数组(真正的),当有突然的改变的相应元素的平均值一个

例子

特遣部队= ischange (一个方法指定如何在数据中定义更改点。例如,ischange (A,“方差”)的元素方差的突变一个

例子

特遣部队= ischange (___昏暗的指定的维度一个对前面的任何一种语法进行操作。例如,ischange (2)计算矩阵每一行的变换点一个

例子

特遣部队= ischange (___名称,值使用一个或多个名称-值对参数指定查找更改点的附加参数。例如,ischange(“MaxNumChanges”,米)检测不超过变化点。

例子

特遣部队S1) = ischange (___还返回有关在变更点之间的线段段的信息。例如,(TF, S1) = ischange (A)返回一个向量S1包含矢量之间的数据的平均值一个

例子

特遣部队S1S2) = ischange (___返回关于更改点之间的线段的附加信息。例如,(TF, S1, S2) = ischange (A)返回一个向量S1它包含每个线段的均值,以及一个向量S2它包含了向量每一段的方差一个

例子

全部折叠

创建一个噪声数据向量,并计算数据均值的突变。

=[(1、5)的25 * 50的(1、5)* 1(1、5)]+兰德(15);TF = ischange (A)
TF =1连接逻辑阵列0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0

若要计算更改点之间数据的平均值,请指定第二个输出参数。

[tf,s1] = ischange(a);绘图(a,'*')举行楼梯(S1)传奇('数据'”段的意思是“位置”“西北”

图包含轴。轴包含2个类型的线,楼梯。这些对象代表数据,段意味着。

创建一个噪声数据向量,计算数据的斜率和截距的突变。设置较大的检测阈值可以减少由于噪声而检测到的变化点的数量。

A = [0 (1100) 1:10 99:-1:50 50*ones(1250)] + 10*rand(1500);(TF, S1, S2) = ischange (,“线性”“阈值”, 200);s = S1.*(1:20 0) + S2;情节(1:50 0、1:50 0 segline)传说('数据'“线性政权”

图包含轴。轴包含2个类型的型号。这些对象代表数据,线性制度。

作为提供阈值的替代方法,您还可以指定要检测的最大更改点数量。

(TF, S1, S2) = ischange (,“线性”'maxnumchanges'3);

计算矩阵每一行均值的突变。

A = diag(25*ones(5,1)) + rand(5,5)
一个=5×525.8147 0.0975 0.1576 0.1419 0.6557 0.9058 25.2785 0.9706 0.4218 0.0357 0.1270 0.5469 25.9572 0.9157 0.8491 0.9134 0.9575 0.4854 25.7922 0.9340 0.6324 0.9649 0.8003 0.9595 25.6787
TF = ischange (2)
TF =5 x5逻辑阵列0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1

输入参数

全部折叠

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

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

变更检测方法,指定为以下方法之一:

  • “的意思是”-发现数据均值的突变。

  • “方差”-发现数据方差的突变。

  • “线性”-寻找数据的斜率和截距的突变。

操作维数,指定为正整数标量。默认情况下,ischange作用于尺寸不等于1的第一个维度。

例如,如果一个是一个矩阵,然后ischange (1)沿着行进行运算一个,计算每列的更改点。

ischange (2)作用于的列一个,计算每一行的更改点。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

名称-值对的观点

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

例子:TF = ischange(“MaxNumChanges”,5)
数据选项

全部折叠

样本点,指定为逗号分隔对,由“SamplePoints”和一个向量。样本点代表x- 数据的轴上位置一个,并且必须排序并包含唯一的元素。采样点不需要均匀采样。默认的样本点向量是[1 2 3…]

请注意

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

例子:ischange([1 2 3 4 5 6],'linear','SamplePoints',[1 2 3 10 20 30])

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

要操作的表变量,指定为逗号分隔对,由“DataVariables”这张表中有一个选项。的“DataVariables”值指示要检查输入表中的哪些变量的更改点。与指定变量关联的数据类型必须为.表中未指定的其他变量“DataVariables”不操作,因此输出包含这些变量的值。

选项 描述 例子
变量名

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

“Var1”

“Var1”

变量名向量

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

{“Var1”“Var2”}

[" Var1”“Var2”)

可变指标的标量或向量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

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

(真的假的真的)

函数处理

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

@isnumeric

vartype下标

属性生成的表下标vartype函数

vartype(数字)

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

变化点的选择

全部折叠

更改点阈值,指定为包括的逗号分隔对“阈值”一个非负标量。将阈值增加到大于1会产生更少的更改点。

阈值定义了检测到的变化点的数量,不能指定'maxnumchanges'都是确定的。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

要检测的最大更改点数目,指定为逗号分隔对,由'maxnumchanges'一个正整数标量。ischange使用自动阈值,计算的值不超过更改点的指定值,因此“阈值”无法指定'maxnumchanges'都是确定的。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

更改点指示符,以向量、矩阵或多维数组的形式返回。特遣部队大小是一样的吗一个

数据类型:逻辑

变更点之间数据的平均值或斜率,以向量、矩阵、多维数组、表或时间表的形式返回。

  • 如果改变点检测方法是“的意思是”“方差”,然后S1包含每个部分的平均值。

  • 如果方法是“线性”,然后S1包含每个线段的斜率。

s1具有相同的类型是输入数据。

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

变更点之间的数据的方差或截距,以向量、矩阵、多维数组、表或时间表的形式返回。

  • 如果改变点检测方法是“的意思是”“方差”,然后S2包含每个部分的方差。

  • 如果方法是“线性”,然后S2包含每个段的截距。

s2具有相同的类型是输入数据。

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

更多关于

全部折叠

变化点

数据向量一个包含一个更改点,如果它可以被分割成两个部分一个1一个2这样

C 一个 1 + C 一个 2 + τ. < C 一个

τ. 阈值是否由“阈值”参数,C表示一个成本函数。

例如,检测均值突变的代价函数为 C x N var x ,在那里N向量中元素的个数是多少x.成本函数衡量的是一个区段的近似值。

ischange迭代最小化成本函数的和以确定更改点的数量k以及它们的位置

C 一个 1 + C 一个 2 + ... + C 一个 k + k τ. < C 一个

参考

kilick R. P. Fearnhead和I.A. Eckley。"用线性计算成本对变化点进行最优检测"美国统计协会杂志.第107卷第500期,2012年,第1590-1598页。

扩展功能

介绍了R2017b