发现并删除趋势
描述
的发现并删除趋势任务让您可以交互地识别数据中的多项式或周期趋势,并返回或删除它们。任务自动生成MATLAB®为您的活动脚本编写代码。有关实时编辑器任务的详细信息,请参见在活动脚本中添加交互式任务.
使用此任务,您可以:
识别数据中的多项式趋势。
选择要从数据中去除的多项式趋势的次。
动态安排断点定义数据的分段。
指定连续性约束。
可视化并返回已删除趋势的计算趋势和数据。
识别数据中的长期和周期性、季节性或振荡趋势。
选择奇异谱分析(SSA)或基于黄土的季节趋势分解找出数据趋势的算法。
当趋势周期未知时,指定周期趋势的个数和滞后窗口。
当趋势周期已知时,指定周期长度。
可视化并返回已删除趋势的计算趋势和数据。
更多的
打开任务
要添加发现并删除趋势任务到MATLAB编辑器中的实时脚本:
在住编辑器选项卡上,选择任务>发现并删除趋势.
在脚本中的代码块中,键入相关的关键字,例如
找到
,删除
,去趋势
,或trenddecomp
.选择发现并删除趋势从建议的命令补全。
例子
去除线性多项式趋势
控件交互地识别和删除数组数据中的线性趋势发现并删除趋势任务在实时编辑器。
创建一个向量x
包含一些波动。创建一个图形来可视化数据。
T = 0:8;趋势= 2*t+5;Sig = [0 1 -2 1 0 1 -2 1 0];数据= sig +趋势;情节(t,数据)
添加发现并删除趋势任务添加到活动脚本。因为数据具有多项式趋势,所以选择多项式趋势类型。
从数据中去掉多项式趋势。选择数据
作为输入数据和去趋势数据
作为输出返回。或者,您可以使用输出字段返回趋势。选择t
随着x-与输入数据相关的轴值。通过指定多项式类型来识别线性趋势线性
.
在堆叠图中显示输入数据、结果趋势和去趋势数据。
若要查看此任务生成的代码,请单击展开任务显示在任务参数区域的底部。
去除分段多项式趋势
交互识别和删除一个分段多项式趋势在数组数据使用发现并删除趋势任务在实时编辑器。
多项式趋势是最能描述波动数据的趋势。当数据的值同时增加和减少,并且多项式趋势的程度随着数据的波动而增加时,就会使用多项式趋势。
考虑一个心电图(ECG)信号,它显示的模式不是必须删除的数据的固有模式。加载信号ecgnl
使用示例文件ecgSignals.mat
然后画出信号。
负载(“ecgSignals.mat”,“ecgnl”)地块(ecgnl)标题(“心电趋势信号”)包含(“样本”) ylabel (“电压(mV)”)
然后,消除非线性趋势。添加发现并删除趋势任务添加到活动脚本。因为数据具有多项式趋势,所以选择多项式趋势类型。
通过选择对信号进行操作ecgnl
作为输入数据。选择去趋势数据
作为输出。默认的x-axis值为样本编号。因为心率的漂移频率不一致,所以通过在样本数据图中选择断点来识别分段趋势。选择一个自定义多项式类型,并指定多项式次为5。
结果可视化显示输入数据、分段多项式趋势和删除趋势后的数据。返回去趋势数据detrendedData
大小和ecgnl
.或者,要返回趋势,请使用输出字段。
若要查看此任务生成的代码,请单击展开任务显示在任务参数区域的底部。
使用STL查找周期性趋势
交互式地将阵列数据分解为其长期趋势、两个周期趋势和余数,利用黄土季节趋势分解(STL)算法与发现并删除趋势任务在实时编辑器。
创建一个变量数据
其中包括一个长期趋势,两个不同时期的季节性趋势,以及一个噪声成分。创建一个图形来可视化数据。
T = (1:200)';趋势= 0.001*(t-100).^2;Period1 = 20;Period2 = 30;Seasonal1 = 2*sin(2*pi*t/period1);Seasonal2 = 0.75*sin(2*pi*t/period2);噪声= 2*(兰特(200,1)- 0.5);数据=趋势+季节性1 +季节性2 +噪声;情节(数据)
添加发现并删除趋势任务添加到活动脚本。因为数据具有周期性的循环趋势,所以选择周期趋势类型。
通过选择将数据分解为其趋势成分数据
作为输入数据和所有的趋势
作为输出返回。因为数据中季节性趋势的周期是已知的,所以选择STL算法并将已知的周期长度指定为20和30个数据点。
在堆叠图中显示输入数据和由此产生的长期趋势、两个周期趋势和余数。Live Editor任务返回数组中已识别的趋势长期
而且周期
.或者,要返回去趋势化数据,请使用输出字段指定要删除的趋势类型。
若要查看此任务生成的代码,请单击展开任务显示在任务参数区域的底部。
使用SSA重新采样不规则数据并发现周期性趋势
交互式识别和返回周期趋势使用奇异谱分析(SSA)算法与发现并删除趋势任务在实时编辑器。
考虑1949年至1960年每月国际航空乘客总数的时间表。使用示例文件加载时间表Data_Airline.mat
绘制出乘客数据。
负载(“Data_Airline.mat”,“DataTimeTable”);情节(DataTimeTable“时间”,“PSSG”)标题(“乘客数据”)
注意,时间表的间隔是不规则的。的发现并删除趋势任务要求输入时间表有规律的间隔。
isregular (DataTimeTable.Time)
ans =逻辑0
使时间表规则,重新采样使用调整时间的时间表任务在实时编辑器。将数据插值到一个时间步长为30天的常规时间向量上,并在一个名为的时间表中返回重新采样的数据每月
.
月=147×1的时间表时间PSSG ___________ ______ 01-Jan-1949 112 31-Jan-1949 117.81 02-Mar-1949 131.9 01-Apr-1949 129 01-May-1949 121 31-May-1949 134.55 30- june -1949 147.57 30- july -1949 148 29-Aug-1949 137.16 28- september -1949 120.7 28-Oct-1949 105.94 27- 11 -1949 116.13 27- 12 -1949 115.48 26-Jan-1950 123.87 25-Feb-1950 138.86 27-Mar-1950 135.97
isregular (monthly.Time)
ans =逻辑1
航空公司乘客数据显示季节性差异随着时间的推移而增加。因为发现并删除趋势任务使用加性分解模型分析序列,对数据应用日志转换。
每月。PSSGLog= log(monthly.PSSG);
然后,通过添加。来识别乘客数据中的周期性趋势发现并删除趋势任务添加到活动脚本。因为数据具有周期性的循环趋势,所以选择周期趋势类型。
的输入数据对乘客总数进行操作PSSGLog
变量的每月
.由于数据中季节性趋势的周期是未知的,所以选择SSA算法。增加周期性趋势的数量,直到剩余部分的基线变平。
在堆叠图中显示输入数据和由此产生的长期趋势、四个周期趋势和余数。Live Editor任务返回数组中已识别的趋势趋势
.或者,要返回去趋势化数据,请使用输出字段指定要删除的趋势类型。
若要查看此任务生成的代码,请单击展开任务显示在任务参数区域的底部。
相关的例子
参数
输入数据
- - - - - -来自工作区的有效输入数据
向量|矩阵|多维数组|表|时间表
此任务对包含在矢量、矩阵、多维数组、表格或时间表中的输入数据进行操作。数据可以是有类型的单
或双
.
对于表或时间表输入数据,该任务分别对每个表变量进行操作。对所有类型的变量进行操作单
或双
中,选择所有受支万博1manbetx持的变量
.来选择单
或双
要操作的变量,选择指定的变量
.
输入数据
- - - - - -来自工作区的有效输入数据
向量|表|时间表
此任务对包含在矢量、表或时间表中的输入数据进行操作。数据可以是有类型的单
或双
.对于时间表输入数据,行时间向量必须有规律的间隔。
对于表或时间表输入数据,该任务分别对每个表变量进行操作。对所有类型的变量进行操作单
或双
中,选择所有受支万博1manbetx持的变量
.来选择单
或双
要操作的变量,选择指定的变量
.
提示
如果数据具有与时间序列水平成正比的季节变化,则使用
日志
在寻找周期性趋势之前对数据进行转换。
算法
断点
对于多项式趋势,使用断点字段指定断点的位置。的范围内的一个点x它分离区间并识别由多个子函数组成的分段趋势。分段趋势可以是连续的,即子函数在接近断点时的极限是相等的,也可以是不连续的,即极限不相等。
奇异谱分析(SSA)
对于周期性趋势,请使用算法字段指定SSA。SSA是一种可加性分解模型,用于规则间隔的时间序列,当重复出现的周期趋势未知时。该算法采用奇异值分解(SVD)将时间序列分解为指定数量的周期趋势。滞后值决定了计算SVD的矩阵的大小。较大的滞后窗口值通常会导致趋势的分离程度更高。
加性分解模型分解时间序列数据,使A = lt + st + r
,在那里LT
是数据中的长期趋势,圣
是季节性的,或振荡的,趋势(或趋势)R
是余数。
基于黄土的季节趋势分解
对于周期性趋势,请使用算法字段指定STL。STL是一种可加性分解模型,用于有规律间隔的时间序列,当循环周期趋势已知时。该算法使用黄土(局部加权平滑)将时间序列分解为指定长度的时间段。
加性分解模型分解时间序列数据,使A = lt + st + r
,在那里LT
是数据中的长期趋势,圣
是季节性的,或振荡的,趋势(或趋势)R
是余数。
版本历史
R2019b引入R2023a:发现并删除周期和多项式趋势
除了识别多项式趋势外,现在还可以交互式地识别规则间隔输入数据的周期趋势。选择趋势类型为周期,选择SSA或STL算法。
除了去趋势数据外,还可以使用此Live Editor任务返回多项式和周期趋势数据。指定输出作为趋势
.
在此之前,该任务仅识别多项式趋势并仅返回去趋势数据。
R2023a:从Remove Trends重命名
为了反映增强的功能,现在将此任务命名为发现并删除趋势.在此之前,该任务被命名为删除趋势.
R2022b:绘制多个表变量
在此Live Editor任务的显示中同时绘制多个表变量。对于表或时间表数据,若要在平铺图布局中同时显示所有选定的表变量,请设置要显示的变量字段。
R2022b:添加去趋势表变量
用包含去趋势数据的表变量追加输入表变量。对于表或时间表输入数据,若要附加去趋势数据,请设置输出格式字段。
R2022a:如果输入很大,活动编辑器任务不会自动运行
如果输入数据很大,此Live Editor任务不会自动运行。在以前的版本中,对于任何大小的输入,任务总是自动运行。如果输入有大量的元素,那么由这个任务生成的代码可能要花费大量的时间才能运行(超过几秒钟)。
当任务未自动运行时,将自动运行禁用图标。
上手动运行任务住编辑器选项卡,单击运行部分按钮。
若要启用自动运行部分,请单击“自动运行”图标。图标更新以显示启用状态。
R2021a:操作多个表变量
这个Live Editor任务可以同时操作多个表变量。对于表格或时间表输入数据,要操作多个变量,请选择所有受支万博1manbetx持的变量
或指定的变量
.返回所有变量或仅返回修改后的变量,并指定要可视化的变量。
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。