时间序列分析中模式识别方法的应用摘要:时间序列通常是按时间顺序排列的一系列被观测数据,其观测值按固定的时间间隔采样。时间序列分析(TimeSeriesAnalysis)是一种动态数据处理的统计方法,就是充分利用现有的方法对时间序列进行处理,挖掘出对解决和研究问题有用的信息量。经典时间序列分析在建模、预测等方面已经有了相当多的成果,但是由于实际应用中时间序列具有不规则、混沌等非线性特征,使得预测系统未来的全部行为几乎不可能,对系统行为的准确预测效果也难以令人满意,很难对系统建立理想的随机模型。神经网络、遗传算法和小波变换等模式识别技术使得人们能够对非平稳时间序列进行有效的分析处理,可以对一些非线性系统的行为作出预测,这在一定程度上弥补了随机时序分析技术的不足。【1】本文主要是对时间序列分析几种常见方法的描述和分析,并重点介绍神经网络、遗传算法和小波变换等模式识别方法在时间序列分析中的典型应用。关键字:时间序列分析模式识别应用1概述1.1本文主要研究目的和意义时间序列分析是概率论与数理统计学科的一个分支,它是以概率统计学作为理论基础来分析随机数据序列(或称动态数据序列),并对其建立数学模型,即对模型定阶、进行参数估计,以及进一步应用于预测、自适应控制、最佳滤波等诸多方面。由于一元时间序列分析与预测在现代信号处理、经济、农业等领域占有重要的地位,因此,有关的新算法、新理论和新的研究方法层出不穷。目前,结合各种人工智能方法的时序分析模型的研究也在不断的深入。时间序列分析已是一个发展得相当成熟的学科,已有一整套分析理论和分析工具。传统的时间序列分析技术着重研究具有随机性的动态数据,从中获取所蕴含的关于生成时间序列的系统演化规律。研究方法着重于全局模型的构造,主要应用于对系统行为的预测与控制。时间序列分析主要用于以下几个方面:a系统描述:根据观测得到的时间序列数据,用曲线拟合的方法对系统进行客观的描述;b系统分析:当观测值取自两个以上变量时,可用一个时间序列中的变化去说明另一个时间序列中的变化,从而深入了解给定时间序列产生的机理;c未来预测:一般用数学模型拟合时间序列,预测该时间序列未来值;d决策和控制:根据时间序列模型可调整输入变量使系统发展过程保持在目标值上,即预测到偏离目标时便可进行控制。随着时序分析方法的日趋成熟,其应用领域越来越广泛,对模型的精度提出了更高的要求。建立一个精度高的时间序列模型过程是相当复杂的,其建模过程往往是动态进行的,各种参数精估计方法最终都会归结为非常复杂的非线性优化问题,一般采用梯度法来求解。传统的梯度优化方法需要可微的代价函数或平滑的搜索空间,而实际应用中,数据存在噪声使得这一条件并不一定得到满足,而且目标函数一般是多峰值的,梯度法有落入局部极小值的潜在危险,所以估计出的参数可信度较低,直接影响到模型的精度,因此要反复进行认证和修改,甚至可能推翻重来,浪费了大量精力。由此而引起的各种负面影响已成为普遍关注和急需解决的问题。因此,对时序分析中参数估计方法的研究是时间序列建模与应用的重要课题。近年来,模拟生物进化过程的遗传算法作为求解复杂优化问题的有效手段被广泛应用到众多领域。遗传算法作为一种全局的优化算法,计算时不依赖于梯度信息,不要求目标函数可导,对搜索空间也没有具体的要求【2】,对于高度非线性的优化问题有着其他方法不可比拟的优越性。但在实际应用中存在一定的缺陷,主要表现在算法的早熟现象、局部寻优能力差、收敛速度慢等,因此本文应用改进的实数遗传算法对时序模型中的参数进行估计,并提出了基于改进实数遗传算法的时序建模方法,将其应用在电力系统负荷预测中,取得了较好的效果。1.2国内外研究概况【3】1.2.1时间序列分析的发展概况时间序列方法最早起源于1927年,在我国,时间序列分析从70年代末到80年代中后期才得以深入研究和应用。70年代,求和自回归移动平均模型(AutoRegressiveIntegratedMovingAveragemodel,简称ARIMA)成为时序分析的中心课题,预测领域的主要方法之一。通常把自回归模型(AutoRegressive,简称AR),移动平均模型(MovingAveragemodel,简称MA)或自回归移动平均模型(AutoRegressiveIntegratedMovingAveragemodel,简称ARMA),归入Box一Jenkins方法,称作ARIMA模型体系。它是一个重要的预测工具,是时间序列分析中许多基本思想的基础。由于该方法在统计学上是完善的,有牢固的理论基础,有一套完整的程序化的建模方法。但同时这种方法是复杂的,对数据的性质也有一定的要求。另外还要求研究者有较高的专业知识,对问题有深刻的认识。关于该方法的预测精度,对于不同的运用环境有着不同的结论。1.2.2常用的参数估计方法时间序列模型的参数估计方法很多,并且比较复杂,但是在实际计算时,通常选用那些实用的估计算法,同时还要保证参数估计达到一定的精度。目前对ARMA模型常用的方法有相关矩估计方法、最小二乘估计法、最小方差估计法、最大似然估计法、最大嫡估计法等。但是这些参数估计方法实际上是非常复杂的非线性优化问题,传统作法是采用梯度法求解,利用导数将非线性函数线性化,构造近似模型,但是会导致模型系数的估计精度下降,而且传统的梯度优化方法需要可微的代价函数或平滑的搜索空间,而实际应用中,数据存在噪声使得这一条件并不一定得到满足,而且目标函数一般是多峰值的,梯度法有落入局部极小值的潜在危险,所以估计出的参数可信度低。近年来,研究者开始应用人工智能技术来解决这个问题,神经网络方法和遗传算法逐渐成为研究热点。神经网络由于具有高度的非线性运算能力和很强的自学习、自组织能力而广泛的应用于非线性函数优化中。但目前,绝大多数的研究是基于采用反向传播(BackPropagation,简写为BP)学习算法的神经网络。BP网络存在着学习收敛速度慢、不可避免地存在局部极小、Sigmoid激励函数的饱和性等问题。另外,系统的模型由神经网络结构及其参数隐式表达,具有不透明性,因而对时序系统内部的情况一无所知,从而影响其进一步的应用。遗传算法是一种有导向的随机搜索算法,能以较大的概率收敛到全局最优解,适用条件宽松,计算时不依赖于梯度信息,不要求目标函数可导,对搜索空间也没有具体要求,在实现机器学习方面的优越性提供了一个有着广阔应用前景的数据处理和知识挖掘手段,但是将遗传算法应用到时序模型的参数估计中也存在着一定的缺陷,主要表现在算法的早熟现象,局部寻优能力差、收敛速度慢等,需要改进。2时间序列分析的基本理论与方法2.1时间序列分析的相关概念2.1.1时间序列定义时间序列是指同一种现象在不同时间上的相继观察值排列而成的一组数字序列,如股票的市盈率、铁路客流量、太阳黑子数、月降水量、电力负荷等等,都形成了一个时间序列。从统计意义上讲,所谓时间序列就是将某一个指标在不同时间上的不同数值,按照时间的先后顺序排列而成的数列。这种数列由于受到各种偶然因素的影响,往往表现出某种随机性,彼此之间存在着统计上的依赖关系【4】。2.1.2时间序列模型【5】时间序列传统上是采用自回归模型AR(autoregressive)、滑动平均模型MA(movingaverage)和自回归平均模型(ARMA)来建模,参数估计一般采用最小二乘(LMS)估计。时间序列y(t)的自回归模型的数学表达式为:01122ttttjtjyXXXX(1)其中:0,1,…,j…称为记忆函数(memoryfunction),而j所代表的意义即为tjX对ty的影响程度,当一个系统输入tX后,ty的产生是以记忆函数φ作为权数建立起如上式的关系,这类方法一般称为经典方法。对数据的分析包括建模、模型识别和模型参数估计。这种模型是确定性的,演化的规律由初始条件决定。模型设计可能是一个迭代、重复的过程,也可能是一个长期过程,常常需要推导、实现和选型,最后才能得到与实际相匹配的模型。由这类方法得到的模型的优点是易于理解、分析和实施,但缺点是它必须基于两个假设才能成立,也就是线性和静态性,而实际系统具有很强的非线性特点;同时进行参数估计时必须依赖大量的不间断的时间序列,而实际情况中,经常由于各种原因造成数据遗漏,导致模型精度降低,从而限制了ARIMA模型的应用范围。常见的时间序列模型有:确定型时间序列模型、线性时间序列模型和非线性时间序列模型等。2.2ARIMA模型体系常用的时间序列分析方法分为平稳时间序列分析和非平稳时间序列分析两大类。平稳时间序列模型包括AR模型、MA模型、ARMA模型三类;非平稳时间序列模型主要包括ARIMA模型和季节模型(SeasonalAutoRegressiveIntegratedMovingAveragemodel,简称sARIMA))两类。以上五种模型中,AR(P)模型、MA(q)模型、ARMA(P,q)模型仅适用于平稳时间序列建模和预测;ARIMA模型适用于非平稳的时间序列建模和预测,而且可将AR(P)模型、MA(q)模型、A刊MA(P,q)模型视为ARIMA模型的特例;sARIMA模型适用于具有季节性周期特征的时间序列分析与建模。3时间序列分析中模式识别常见方法时间序列分析的基本思想是根据系统有限长度的运行记录(观测数据),建立能精确反映时间序列中所包含的动态依存关系的数学模型。通常的时间序列有水文信息、股票的股价、交通流量和商店中商品的销售状况等。针对不同种类的时间序列,选择的分析方法也会有所差别。为了揭示所研究时间序列的动态规律性,人们在实践中产生了一系列分析研究时间序列的方法。(1)确定性时序分析方法。时间序列分析就是设法消除随机性波动、分解季节性变化和拟确定性趋势,主要包括发展水平分析、趋势变化分析、季节变动分析和循环波动测定等方法。(2)随机性时序分析方法。通过建立随机模型,对随机时间序列进行分析,可以预测未来值,主要包括一元(多元)时序分析、可控(不可控)时序分析等方法。(3)其他方法。神经网络、遗传算法等都可用于时间序列的预测。由于大量的时间序列是非平稳的,因此探讨多种技术结合来实现时间序列分析是必要的。3.1时间序列分析常用方法【6】3.1.1移动平均法设预测序列为1y……Ty,正整数NT。一次移动平均值计算公式为:(1)111(1)11/()1/()1/()1/()ttttNttNttNtttNMNyyyNyyNyyMNyy(2)二次移动平均值计算公式为:(2)(1)(1)1(2)(1)(1)11/()1/()tttNtttNMNMMMNMM(3)当预测目标的基本趋势在某一水平上上下下波动时,可用一次移动平均方法建立预测模型:(1)111/(),1,2TmttttNyMNyyym(4)它表明最近N期序列值的平均值作为未来各期的预测结果。一般N取值范围:5≤N≤200。当历史序列的基本趋势变化不大且序列中随机变动成分较多时,N的取值应该较大一些。否则N的取值应小一些。在有确定的季节变动周期的资料中,移动平均的项数应取周期长度。选择最佳N值的一个有效方法是,比较若干模型的预测误差。均方预测误差最小者为好。当预测目标的基本趋势与某一线性模型相吻合时,常用二次移动平均法,但序列同时存在线性趋势与周期波动时,可用趋势移动平均法建立预测模型:,1,2,TmTTyabmm(5)其中:(1)(2)(1)(2)22()/(1)TttTttaMMbMMN上述移动平均法在数据处理中常用它作为预处理,消除周期波动(取N为周期长度)和减弱干扰的影响往往是有效的。3.1.2指数平滑法一次移动平均实际上认为最近N期数据对未来值影响相同,都加权1/N;而N期以前的数据对未来值没有影响,加权为0。但是,二次及高次移动平均数的权数却不是1/N,且次数越高,权数的结构越复杂,但永远保持对称的权数,即两端项权数小,中间项权数大,不符合一般系统的