-475-第二十四章时间序列模型时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。分析时间序列的方法构成数据分析的一个重要领域,即时间序列分析。时间序列根据所研究的依据不同,可有不同的分类。1.按所研究的对象的多少分,有一元时间序列和多元时间序列。2.按时间的连续性可将时间序列分为离散时间序列和连续时间序列两种。3.按序列的统计特性分,有平稳时间序列和非平稳时间序列。如果一个时间序列的概率分布与时间t无关,则称该序列为严格的(狭义的)平稳时间序列。如果序列的一、二阶矩存在,而且对任意时刻t满足:(1)均值为常数(2)协方差为时间间隔τ的函数。则称该序列为宽平稳时间序列,也叫广义平稳时间序列。我们以后所研究的时间序列主要是宽平稳时间序列。4.按时间序列的分布规律来分,有高斯型时间序列和非高斯型时间序列。§1时间序列分析方法概述时间序列预测技术就是通过对预测目标自身时间序列的处理,来研究其变化趋势的。一个时间序列往往是以下几类变化形式的叠加或耦合。(1)长期趋势变动。它是指时间序列朝着一定的方向持续上升或下降,或停留在某一水平上的倾向,它反映了客观事物的主要变化趋势。(2)季节变动。(3)循环变动。通常是指周期为一年以上,由非季节因素引起的涨落起伏波形相似的波动。(4)不规则变动。通常它分为突然变动和随机变动。通常用tT表示长期趋势项,tS表示季节变动趋势项,tC表示循环变动趋势项,tR表示随机干扰项。常见的时间序列模型有以下几种类型:(1)加法模型tttttRCSTy+++=(2)乘法模型tttttRCSTy⋅⋅⋅=(3)混合模型ttttRSTy+⋅=tttttRCTSy⋅⋅+=其中ty是观测目标的观测记录,0)(=tRE,22)(σ=tRE。如果在预测时间范围以内,无突然变动且随机变动的方差2σ较小,并且有理由认为过去和现在的演变趋势将继续发展到未来时,可用一些经验方法进行预测。§2移动平均法移动平均法是根据时间序列资料逐渐推移,依次计算包含一定项数的时序平均数,以反映长期趋势的方法。当时间序列的数值由于受周期变动和不规则变动的影响,起伏较大,不易显示出发展趋势时,可用移动平均法,消除这些因素的影响,分析、预测序-476-列的长期趋势。移动平均法有简单移动平均法,加权移动平均法,趋势移动平均法等。2.1简单移动平均法设观测序列为Tyy,,1L,取移动平均的项数TN。一次简单移动平均值计算公式为:)(111)1(+−−+++=NttttyyyNML)(1)(1)(1)1(11NtttNttNttyyNMyyNyyN−−−−−−+=−+++=L(1)当预测目标的基本趋势是在某一水平上下波动时,可用一次简单移动平均方法建立预测模型:)(1ˆ1)1(1+−+++==NttttyyNMyL,TNNt,,1,L+=,(2)其预测标准误差为:NTyySTNttt−−=∑+=12)ˆ(,(3)昀近N期序列值的平均值作为未来各期的预测结果。一般N取值范围:2005≤≤N。当历史序列的基本趋势变化不大且序列中随机变动成分较多时,N的取值应较大一些。否则N的取值应小一些。在有确定的季节变动周期的资料中,移动平均的项数应取周期长度。选择昀佳N值的一个有效方法是,比较若干模型的预测误差。预测标准误差昀小者为好。例1某企业1月~11月份的销售收入时间序列如表1示。试用一次简单滑动平均法预测第12月份的销售收入。表1企业销售收入月份t123456销售收入ty533.8574.6606.9649.8705.1772.0月份t7891011销售收入ty816.4892.7963.91015.11102.7解:分别取5,4==NN的预测公式4ˆ321)1(1−−−++++=tttttyyyyy,11,,5,4L=t5ˆ4321)2(1−−−−+++++=ttttttyyyyyy,11,,5L=t当4=N时,预测值993.6ˆ)1(12=y,预测的标准误差为150.5411)ˆ(1152)1(1=−−=∑=tttyyS当5=N时,预测值182.4ˆ)2(12=y,预测的标准误差为-477-958.2511)ˆ(1162)2(2=−−=∑=tttyyS计算结果表明,4=N时,预测的标准误差较小,所以选取4=N。预测第12月份的销售收入为993.6。计算的Matlab程序如下:clc,cleary=[533.8574.6606.9649.8705.1772.0816.4892.7963.91015.11102.7];m=length(y);n=[4,5];%n为移动平均的项数fori=1:length(n)%由于n的取值不同,yhat的长度不一致,下面使用了细胞数组forj=1:m-n(i)+1yhat{i}(j)=sum(y(j:j+n(i)-1))/n(i);endy12(i)=yhat{i}(end);s(i)=sqrt(mean((y(n(i)+1:m)-yhat{i}(1:end-1)).^2));endy12,s简单移动平均法只适合做近期预测,而且是预测目标的发展趋势变化不大的情况。如果目标的发展趋势存在其它的变化,采用简单移动平均法就会产生较大的预测偏差和滞后。2.2加权移动平均法在简单移动平均公式中,每期数据在求平均时的作用是等同的。但是,每期数据所包含的信息量不一样,近期数据包含着更多关于未来情况的信息。因此,把各期数据等同看待是不尽合理的,应考虑各期数据的重要性,对近期数据给予较大的权重,这就是加权移动平均法的基本思想。设时间序列为LL,,,,21tyyy;加权移动平均公式为NNtNtt=+−LL211221,Nt≥(4)式中twM为t期加权移动平均数;iw为1+−ity的权数,它体现了相应的ty在加权平均数中的重要性。利用加权移动平均数来做预测,其预测公式为twtMy=+1ˆ(5)即以第t期加权移动平均数作为第1+t期的预测值。例2我国1979~1988年原煤产量如表2所示,试用加权移动平均法预测1989年的产量。表2我国原煤产量统计数据及加权移动平均预测值表年份1979198019811982198319841985198619871988原煤产量ty6.356.206.226.667.157.898.728.949.289.8三年加权移动平均预测值6.2356.43676.83177.43838.18178.69179.0733-478-相对误差(%)6.389.9813.4114.78.486.347.41解取1,2,3321===,按预测公式12323ˆ211++++=−−+ttttyyyy计算三年加权移动平均预测值,其结果列于表2中。1989年我国原煤产量的预测值为(亿吨)48.9694.828.928.93ˆ1989=+×+×=y这个预测值偏低,可以修正。其方法是:先计算各年预测值与实际值的相对误差,例如1982年为%38.666.6235.666.6=−将相对误差列于表2中,再计算总的平均相对误差。%5.9%100)44.5889.521(%100ˆ1=×−=×⎟⎟⎠⎞⎜⎜⎝⎛−∑∑ttyy由于总预测值的平均值比实际值低%5.9,所以可将1989年的预测值修正为4788.10%5.9148.9=−计算的MATLAB程序如下:y=[6.356.206.226.667.157.898.728.949.289.8];w=[1/6;2/6;3/6];m=length(y);n=3;fori=1:m-n+1yhat(i)=y(i:i+n-1)*w;endyhaterr=abs(y(n+1:m)-yhat(1:end-1))./y(n+1:m)T_err=1-sum(yhat(1:end-1))/sum(y(n+1:m))y1989=yhat(end)/(1-T_err)在加权移动平均法中,tw的选择,同样具有一定的经验性。一般的原则是:近期数据的权数大,远期数据的权数小。至于大到什么程度和小到什么程度,则需要按照预测者对序列的了解和分析来确定。2.3趋势移动平均法简单移动平均法和加权移动平均法,在时间序列没有明显的趋势变动时,能够准确反映实际情况。但当时间序列出现直线增加或减少的变动趋势时,用简单移动平均法和加权移动平均法来预测就会出现滞后偏差。因此,需要进行修正,修正的方法是作二次移动平均,利用移动平均滞后偏差的规律来建立直线趋势的预测模型。这就是趋势移动平均法。一次移动的平均数为-479-)(111)1(+−−+++=NttttyyyNML在一次移动平均的基础上再进行一次移动平均就是二次移动平均,其计算公式为)(1)(1)1()1()2(1)1(1)1()2(NtttNtttMMNMMMNM−−+−−+=++=L(6)下面讨论如何利用移动平均的滞后偏差建立直线趋势预测模型。设时间序列}{ty从某时期开始具有直线趋势,且认为未来时期也按此直线趋势变化,则可设此直线趋势预测模型为mbayttmt+=+ˆ,L,2,1=m(7)其中t为当前时期数;m为由t至预测期的时期数;ta为截距;tb为斜率。两者又称为平滑系数。现在,我们根据移动平均值来确定平滑系数。由模型(7)可知ttya=tttbyy−=−1tttbyy22−=−…ttNtbNyy)1(1−−=+−所以tttttttttNttttbNyNbNNyNbNybyyNyyyM21)]1(21[])1([)(11)1(−−=−+++−=−−++−+=+++=+−−LLL因此tttbNMy21)1(−=−(8)由式(7),类似式(8)的推导,可得tttbNMy21)1(11−=−−−(9)所以tttttbMMyy=−=−−−)1(1)1(1(10)类似式(8)的推导,可得tttbNMM21)2()1(−=−(11)于是,由式(8)和式(11)可得平滑系数的计算公式为⎪⎩⎪⎨⎧−−=−=)(122)2()1()2()1(ttttttMMNbMMa(12)例3我国1965~1985年的发电总量如表3所示,试预测1986年和1987年的发电总量。-480-表3我国发电量及一、二次移动平均值计算表年份t发电总量yt一次移动平均,N=6二次移动平均,N=61965167619662825196737741968471619695940197061159848.3197171384966.31972815241082.81973916681231.819741016881393.819751119581563.51181.119761220311708.81324.519771322341850.51471.919781425662024.21628.819791528202216.21792.819801630062435.81966.5198117309326252143.419821832772832.72330.719831935143046253019842037703246.72733.719852141073461.22941.2解由散点图1可以看出,发电总量基本呈直线上升趋势,可用趋势移动平均法来预测。051015202550010001500200025003000350040004500图1原始数据散点图取6=N,分别计算一次和二次移动平均值并列于表3中。2.3461)1(21=M,2.2941)2(21=M再由公式(12),得3981.12)2(21)1(2121=−=MMa208)(162)2(21)1(2121=−−=MMb于是,得21=t时直线趋势预测模型为mym2081.3981ˆ21+=+预测1986年和1987年的发电总量为1.4192ˆˆˆ121221986===+yyy-481-1.4397ˆˆˆ221231987===+yyy计算的MATLAB程序如下:clc,clearloady.txt%把原始数据保存在纯文本文件y.txt中m1=length(y);n=6;%n为移动平均的项数fori=1:m1-