打开文本图片集
摘要:从时序数据中精确地分解出趋势、周期及随机噪声等数据成分,能有助于人们掌握事物在演变过程中所蕴藏的内在规律.基于非线性最小二乘法,提出一种性能更为高效的时序数据分解算法。首先,基于关键转折点和趋势导数的方法从待分解序列中概要地析出各种不同的数据成分,然后,分别利用多项式函数、正弦谐波级数及自回归模型对相应的数据成分进行拟合,最后,在加法模型中迭代求解各种数据成分的非线性最小二乘参数。实验表明,新设计的算法在分解精度和计算成本等指标上均优于现有的算法。
关键词:时序分解;非线性最小二乘;关键转折点;趋势导数
中图分类号:TP311.11
文献标识码:A
在自然科学、工业生产和实验研究等诸多领域中,被考查的对象在伴随着时间的变化过程中,其某些物理属性往往表现出一定的随机性,为此,它们常常以一串随时间而变化的数据序列被人们记录起来,这种序列通常称为时间序列或时序数据。任何的时序数据经过适当的函数变换后,总可以被分解为趋势、周期项及随机噪声共三种成分[1-3]。其中,趋势成分代表了事物的长期发展趋势,是决定数据大小的基本成分;周期成分表示事物有规则的重复运动,是在趋势成分的基础上所添加的量;而随机噪声成分则反映了趋势和周期成分以外事物所受到的其它因素影响的总和,是属于服从一定统计规律的随机分布。易知,若能精确地从时序数据中分解出上述的数据成分,则有利于人们对事物的发展进行有效的预测、控制和诊断[4-6]。
时序数据的建模与辨识是概率统计学中的一个研究分支,由于有着广泛的应用场合,近年来得到了迅猛的发展。以时序数据的分解算法为例,周黔等通过定义基本趋势的自然分割点为重要点,结合自底向上的分割方法,提出了一种精度较高的时序数据分段线性化的趋势特征提取算法[7],在此基础上,黄雄波通过计算时序数据的各阶趋势导数,有效地把时序数据划分为多个不同的子序列模式,进而设计实现了一种高效的时序数据趋势项的拟合算法[8];蔡智等根据傅氏级数的定义及有关定理,把求解傅氏系数的积分运算转换为求和运算,并得到了一种易于实现的时序数据周期模式发现算法[9];徐峰等基于差分原理把非平稳随机序列转换为平稳随机序列,并根据序列的前后相依关系,采用自回归模型( auto regressive model,AR)对振动时序数据进行了有效的预测[10];常慧君等利用低通滤波器对时序的突变点进行分析和提取,并在欧氏空间内将时序数据分解为不同的数据成分,进而设计实现了一种基于时序数据分解的用户网络行为分析算法[11]。
现实生活中所记录的时序数据通常具有非线性和非平稳的特征,但基于计算简便的考虑,现有的分解算法往往是在线性模型上进行的,故其分解精度难以提升。据此,基于非线性最小二乘法,设计实现了一种高精度的时序数据迭代分解算法,相关实验验证了算法的正确性和有效性。
1 问题描述
设时序数据用Yt。表示,其分解后的趋势、周期和随机噪声成分依次地用Hi、pi和Xi表示,则对应的加法和乘法分解模型如式(1)和式(2)所示,
一般地说,若时序数据的周期和随机噪声成分随着趋势成分的增加(或衰减)而加剧(或减弱),则应采用乘法分解模型进行描述;反之,就采用加法分解模型。
若分别用多项式函数、正弦谐波级数及自回归模型对时序数据的趋势成分Hi、周期成分Pi和随机噪声成分Xi进行拟合,以加法分解模型为例,则有
2 时序数据的非线性最小二乘迭代分解算法
对于传统的时序数据分解算法而言,通常是利用自相关函数对待分解序列的趋势和周期成分进行识别,然后依次地对它们进行提取和分离,最后把剩余的数据成分近似为某一平稳序列进行处理[12-14]。为了能以较少的计算成本并获得较高的分解精度,本文设计的改进算法其工作原理是,首先对时序数据进行概要分解,并初步获得如式(3)所示的线性分解参数,然后以这些线性分解参数为迭代初值,在式(6)所示的模型基础上,对各种数据成分参数进行非线性最小二乘的迭代计算。
2.1 时序数据的概要分解
时序数据的概要分解过程主要分为三步:(1)从序列中析出关键转折点;(2)利用关键转折点的趋势导数识别不同的数据成分;(3)基于最小二乘法估算各种数据成分的线性分解参数。
(1)以三个连续的数据点为一组,根据它们的夹角大小从待分解序列中自左至右地析出关键转折点。
把序列相鄰两点之间的趋势划分为“平稳”、“上升”和“下降”共3种状态,则三个连续数据点的夹角(记为φ)便有如图1所示的9种构成情况。不难发现,若夹角"φ-π|→0,则三个连续数据点就趋向三点共线;反之,中间的数据点便越有可能成为序列的关键转折点。于是,在实际应用中,可以令φ为某一阈值便可析出序列的关键转折点。
(2)计算关键转折点的趋势导数,并根据计算结果从待分解序列中识别不同的数据成分。
易知,若关键转折点的一阶趋势导数具有某一余弦函数的形态,则此时可以判定时序数据存在周期成分,且它的周期长度可通过关键转折点的跨度来获取;而趋势成分则可通过计算关键转折点的高阶趋势导数进行判别,并以最后某一高阶趋势导数等于常数的阶次作为多项式拟合函数的最高项数。
(3)基于最小二乘法估算出趋势和周期成分的线性分解参数,把剩余的数据成分视作某一平稳序列,并用伯格( Burg)算法对其自回归模型参数进行估算。
步骤3:依照式(19)所示,迭代求解时序数据非线性最小二乘的分解参数向量;
步骤4:若当前的分解误差大于ε,则把当前分解向量→xk,并跳转步骤3;否则跳转步骤5;
步骤5:输出计算结果并结束算法。
3 实验及结果分析
为了验证上述改进算法的有效性及先进性,这里选取了一个组合的时序数据模型来进行相关的分解辨识。实验在PC机上进行,其硬件配置为,Intel酷睿i5 4570四核CPU、Kingmax DDR3 16GBRAM、Samsung 850PRO SSD固态硬盘;操作系统与开发环境为,Microsoft Windows 10、Microsoft VisualStudi0 2010集成开发环境中的C++。在实验过程中,着重从分解精度和计算成本等技术指标与现有算法进行对比,并就相关结果加以详细的分析和讨论。
3.1实验过程与方法
实验所选用的时序数据模型如式(20)所示
基于MATLAB软件中,利用sin()、randn()和filter()等函数按照式(20)所示的数据模型生成长度为300的实验序列[17]。
在实验过程中,参加比對的算法共有4种,它们分别是:文献[12]的线性分解算法、本文算法1(概要分解算法)、文献[12]+本文算法2、本文算法1+本文算法2。其中,后面两种算法是属于组合算法,它们分别以不同的迭代初值调用本文算法2,以便完成非线性最小二乘的参数分解,进行这样的组合实验其目的是为了检验本文算法2的算法收敛性。
3.2实验的结果与分析
各种算法的具体分解结果如表1所示,而它们的分解误差曲线则如图2所示。
对照表1的分解参数可知,文献[12]+本文算法2与本文算法1+本文算法2的分解结果是一致的,这表明虽然使用了不同的迭代初值,但本文算法2均能收敛到相同的迭代计算结果上。从式(20)的实验模型得知,由于其趋势项包含着t2,t3等高阶的数据成分,于是,图2中的各种算法其分解误差也就随着自变量的增长而增长,这样的实验结果是与理论相符的。就分解误差而言,本文算法1的分解误差最为显著,文献[12]的线性分解算法次之,而调用了本文算法2的两个组合算法其分解误差情况是相同的,均较文献[12]的算法减少了约13%的分解误差。事实上,由于本文算法1仅对时序数据作概要的粗略分解,据此,其分解误差也就以不同的数量级大于其他算法。
各种算法所花费的计算耗时如表2所示,本文算法1与文献[12]的算法均属于线性分解,两者的区别在于数据成分识别模式上的不同,前者仅需要对关键转折点进行必要的趋势导数计算,而后者则通过计算大量的自相关函数来甄别各种数据成分,据此,本文算法1的计算耗时远小于文献[12]的算法,事实上,本文算法1是以牺牲分解精度来换取计算效能的。相对地,本文算法1和文献[12]的算法与本文算法2进行组合,它们的计算耗时与未组合之前相比,各自增长了约22%和10%;但从整体的计算耗时进行比较,后者则比前者多出37%左右。文献[12]十本文算法2的计算耗时增幅较少,究其原因是其迭代初值与非线性最小二乘法的迭代计算结果较为接近,是迭代次数减少所引起的;而本文算法1+本文算法2的整体计算耗时远小于另一组合,是因为数据成分的识别和分离所需的计算耗时远大于非线性最小二乘法的迭代计算耗时所导致的,这表明本文算法2中的迭代计算是高效的(下转第75页)
从上面的分析可知,本文算法1+本文算法2较文献[12]的经典分解算法而言,其计算耗时减少了30%且计算精度获得了13%的提升。据此,本文算法是正确和有效的。
4 结论
在现有的时序数据分解算法的基础上,针对分解精度和计算耗时等性能指标,提出了一种基于概要分解的非线性最小二乘的迭代分解算法,从实验得知,该改进算法在性能上较现有算法有了可观的改进。下一步的主要工作有,优化现有的概要分解算法,从而可以更高效地分离出各种数据成分,同时,也需要研究积累误差更少的非线性最小二乘法的迭代表达式,以便进一步提升算法的分解精度和计算效能。
参考文献
[1]孙祝岭,时间序列与多元统计分析[M]上海:上海交通大学出版社,2016.
[2]冀振元,时间序列分析与现代谱估计[M].哈尔滨:哈尔滨工业大学出版社,2016.
[3]何书元,应用时间序列分析(第2版)[M].北京:北京大学出版社,2011.
[4]侯文超,经济预测——理论、方法及应用[M].北京:商务出版社.1993.
[5](美)博克斯,时间序列分析、预测与控制(第4版)[M].北京:机械工业出版社,2011.
[6]汤铃,复杂时间序列预测技术研究——数据特征驱动分解集成方法论[M].北京:科学出版社,2016.
[7]周黔,铁军,基于重要点的时间序列趋势特征提取方法[J].浙江大学学报,2007,41(11):1782-1787.
[8]黄雄波,时态数据趋势项的分段拟合[J].计算机系统应用,2015. 24(2):174-179.
[9]蔡智,岳丽华,蔡庆生.时态数据的一种周期函数模式发现研究[J].兰州大学学报:自然科学版,1999,35(8):117-121.
[10]徐峰,王志芳,王宝圣.AR模型应用于振动信号趋势预测的研究[J].清华大学学报:自然科学版,1999,39(4):57-59.
[11]常慧君,单洪,满毅,等,基于时间序列分解的用户行为分析[J].数据采集与处理,2015,30(2):441-451.
[12]黄雄波,基于自相关函数的非平稳时序数据的辨识改进[J]微型机与应用,2016,35(13):10-14.
[13]
PENC Z, ZHANG L, CHEN Z Y,et al.The application of multi-quadric function fitting to borehole strain time series data process-ing[J]. Earthquake Research in China. 2017, 31(2):239-246.
[14] NAKAMORJ,YOSHITERU.A general approach based on auto-correlation to determine input variables of neural networks fortime series forecasting[J]. Journal of Systems Science and Com-plexity, 2004, 17(7):297-305.
[15]刘国林,非线性最小二乘与测量平差[M].北京:测绘出版社,2002.
[16]肖筱南,现代数值计算方法第2版[M].北京:北京大学出版社.2016.
[17]李柏年,吴礼斌.MATIAB数据分析方法[M].北京:机械工业出版社,2017.