收藏 分销(赏)

matlab在时间序列建模预测及程序代码.pdf

上传人:曲**** 文档编号:276308 上传时间:2023-06-26 格式:PDF 页数:67 大小:4.74MB
下载 相关 举报
matlab在时间序列建模预测及程序代码.pdf_第1页
第1页 / 共67页
matlab在时间序列建模预测及程序代码.pdf_第2页
第2页 / 共67页
matlab在时间序列建模预测及程序代码.pdf_第3页
第3页 / 共67页
matlab在时间序列建模预测及程序代码.pdf_第4页
第4页 / 共67页
matlab在时间序列建模预测及程序代码.pdf_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、第二十四章时间序列模型时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。分析时间序 列的方法构成数据分析的一个重要领域,即时间序列分析。时间序列根据所研究的依据不同,可有不同的分类。1.按所研究的对象的多少分,有一元时间序列和多元时间序列。2.按时间的连续性可将时间序列分为离散时间序列和连续时间序列两种。3.按序列的统计特性分,有平稳时间序列和非平稳时间序列。如果一个时间序列 的概率分布与时间,无关,则称该序列为严格的(狭义的)平稳时间序列。如果序列的 一、二阶矩存在,而且对任意时刻才满足:(1)均值为常数(2)协方差为时间间隔7的函数。则称该序列为宽平稳时间序列,也叫广义平稳时间序

2、列。我们以后所研究的时间序列主 要是宽平稳时间序列。4.按时间序列的分布规律来分,有高斯型时间序列和非高斯型时间序列。1时间序列分析方法概述时间序列预测技术就是通过对预测目标自身时间序列的处理,来研究其变化趋势 的。一个时间序列往往是以下几类变化形式的叠加或耦合。(1)长期趋势变动。它是指时间序列朝着一定的方向持续上升或下降,或停留在 某一水平上的倾向,它反映了客观事物的主要变化趋势。(2)季节变动。(3)循环变动。通常是指周期为一年以上,由非季节因素引起的涨落起伏波形相 似的波动。(4)不规则变动。通常它分为突然变动和随机变动。通常用7;表示长期趋势项,S,表示季节变动趋势项,G表示循环变动

3、趋势项,&表示随机干扰项。常见的时间序列模型有以下几种类型:(1)加法模型yt=Tt+St+Ct+Rt(2)乘法模型%=(S G,&(3)混合模型%Sf+Rtyr=st+Tt ct Rt其中是观测目标的观测记录,E(R,)=O,玖与2)=。2。如果在预测时间范围以内,无突然变动且随机变动的方差较小,并且有理由认 为过去和现在的演变趋势将继续发展到未来时,可用一些经验方法进行预测。2移动平均法移动平均法是根据时间序列资料逐渐推移,依次计算包含一定项数的时序平均数,以反映长期趋势的方法。当时间序列的数值由于受周期变动和不规则变动的影响,起伏 较大,不易显示出发展趋势时,可用移动平均法,消除这些因素

4、的影响,分析、预测序-475-列的长期趋势。移动平均法有简单移动平均法,加权移动平均法,趋势移动平均法等。2.1 简单移动平均法设观测序列为力,,力,取移动平均的项数NT。一次简单移动平均值计算公 式为:”?=,(%+yt+yt-N+)=aF Ui+y,-N)+(y,-N)=此,+(-小)当预测目标的基本趋势是在某一水平上下波动时,可用一次简单移动平均方法建 立预测模型:心+%.),蚱MN+1,T,其预测标准误差&_山尸S=5-,(3)V T-N最近N期序列值的平均值作为未来各期的预测结果。一般N取值范围:5 200 o当历史序列的基本趋势变化不大且序列中随机变动成分较多时,N的取值应较大一些

5、。否则N的取值应小一些。在有确定的季节变动周期的资料中,移动 平均的项数应取周期长度。选择最佳N值的一个有效方法是,比较若干模型的预测误 差。预测标准误差最小者为好。例1某企业1月11月份的销售收入时间序列如表1示。试用一次简单滑动平 均法预测第12月份的销售收入。表1企业销售U攵入月份/123456销售收入%533.8574.6606.9649.8705.1772.0月份才7891011销售收入%816.4892.7963.91015.11102.7解:分别取N=4,N=5的预测公式以二山土产“02)_ X+%-1+/-2+%-3+%-4,cA+1 一 飞,/7,一当N=4时,预测值出?=9

6、93.6,预测的标准误差为S.=1 旦-=150.51 V 11-4当N=5时,预测值182.4,预测的标准误差为-476-Z(F-y,)2S2=1-=958.211-5计算结果表明,N=4时,预测的标准误差较小,所以选取N=4。预测第12月份的 销售收入为993.6o计算的Matl ab程序如下:c l c,c l eary=533.8 574.6 606.9 649.8 705.1 772.0 816.4 892.7 963.9 1015.11102.7;m=l ength(y);n=4,5;%n为移动平均的项数for i=l:l ength(n)%由于n的取值不同,yh at的长度不一致

7、,下面使用了细胞数组for j=l:m-n(i)+lyh at i(j)=sum(y(j:j+n(i)-l)/n(i);endyl 2(i)=yh ati(end);s(i)=sqrt(mean(y(n(i)+1:m)-yh at i(1:end-1).A2);endyl 2,s简单移动平均法只适合做近期预测,而且是预测目标的发展趋势变化不大的情况。如果目标的发展趋势存在其它的变化,采用简单移动平均法就会产生较大的预测偏差和 滞后。2.2加权移动平均法在简单移动平均公式中,每期数据在求平均时的作用是等同的。但是,每期数据 所包含的信息量不一样,近期数据包含着更多关于未来情况的信息。因此,把各期

8、数据 等同看待是不尽合理的,应考虑各期数据的重要性,对近期数据给予较大的权重,这就 是加权移动平均法的基本思想。设时间序列为%,内,加权移动平均公式为M=吗+叼为+,t NN“W+卬2+Wn(4)式中M.为1期加权移动平均数;上为yT+i的权数,它体现了相应的为在加权平均数 中的重要性。利用加权移动平均数来做预测,其预测公式为少+1=/仰(5)即以第t期加权移动平均数作为第1+1期的预测值。例2我国19791988年原煤产量如表2所示,试用加权移动平均法预测1989年 的产量。表2我国原煤产量统计数据及加权移动平均预测值表年份1979198019811982198319841985198619

9、871988原煤产量匕6.356.206.226.667.157.898.728.949.289.8三年加权移动平均预测值6.2356.43676.83177.43838.18178.69179.0733-477-相对误差()|6.38|9.98|13.41|14.7|8.48|6.34|7.41解 取叱=3,叫=2,叱=1,按预测公式今3%+2yl+A3+2+1计算三年加权移动平均预测值,其结果列于表2中。1989年我国原煤产量的预测 值为(亿吨)19893x9.8+2x9.28+8.946=9.48这个预测值偏低,可以修正。其方法是:先计算各年预测值与实际值的相对误差,例如 1982年为6

10、.66 6.235 666=6.38%将相对误差列于表2中,再计算总的平均相对误差。xl OO%=(l-52.8958.44)x 100%=9.5%由于总预测值的平均值比实际值低9.5%,所以可将1989年的预测值修正为9.481-9.5%=10.4788计算的MATLAB程序如下:y=6.35 6.20 6.22w=l/6;2/6;3/6|O|m=length(y);n=3;for i=l:m-n+16.66 7.15 7.89 8.728.94 9.28yhat(i)=y(i:i+n-1)*w;endyhaterr=abs(y(n+1:m)-yhat(1:end-1)./y(n+1:m)T

11、_err=l-sum(yhat(1:end-1)/sum(y(n+1:m)yl989=yhat(end)/(1-T_err)在加权移动平均法中,叱的选择,同样具有一定的经验性。一般的原则是:近期 数据的权数大,远期数据的权数小。至于大到什么程度和小到什么程度,则需要按照预 测者对序列的了解和分析来确定。2.3趋势移动平均法简单移动平均法和加权移动平均法,在时间序列没有明显的趋势变动时,能够准确 反映实际情况。但当时间序列出现直线增加或减少的变动趋势时,用简单移动平均法和 加权移动平均法来预测就会出现滞后偏差。因此,需要进行修正,修正的方法是作二次 移动平均,利用移动平均滞后偏差的规律来建立直线

12、趋势的预测模型。这就是趋势移动 平均法。一次移动的平均数为-478-%T+B-N+1)在一次移动平均的基础上再进行一次移动平均就是二次移动平均,其计算公式为 叫=5(叫+此3)=必 下面讨论如何利用移动平均的滞后偏差建立直线趋势预测模型。设时间序列%从某时期开始具有直线趋势,且认为未来时期也按此直线趋势变 化,则可设此直线趋势预测模型为yt+m,m=1,2,-(7)其中/为当前时期数;加为由/至预测期的时期数;为为截距;为斜率。两者又称为 平滑系数。现在,我们根据移动平均值来确定平滑系数。由模型(7)可知at=yty,-=yt-bty,-2=yt-2b,m-n+i=%(ni)2所以M=%+%-

13、+“+=%+(%-4)+%-(N TMJt-N N_Ny_l+2+(N l)_ NT=N=乂一丁,因此y=-bt(8)八,2由式(7),类似式(8)的推导,可得早(9)所以%一-=%)一知音=2(1。)类似式(8)的推导,可得m(d_m(2)=Ezlh(11)2于是,由式(8)和式(11)可得平滑系数的计算公式为 9(12)“岛(M-M)N-1例3我国19651985年的发电总量如表3所示,试预测1986年和1987年的发 电总量。-479-表3我国发电量及一、二次移动平均值计算表年份t发电总量以一次移动平均,N=6二次移动平均,N=619651676196628251967377419684

14、71619695940197061159848.3197171384966.31972815241082.81973916681231.819741016881393.819751119581563.51181.119761220311708.81324.519771322341850.51471.919781425662024.21628.819791528202216.21792.819801630062435.81966.5198117309326252143.419821832772832.72330.719831935143046253019842037703246.72733.71

15、9852141073461.22941.2解由散点图1可以看出,发电总量基本呈直线上升趋势,可用趋势移动平均法 来预测。图1原始数据散点图取N=6,分别计算一次和二次移动平均值并列于表3中。“”=3461.2,“贤=2941.2再由公式(12),得“21=2必?-必?=3981.12阳=(此?-呢?)=208 o-i于是,得=21时直线趋势预测模型为j)2I+m=3981.1+208m预测1986年和1987年的发电总量为91986=夕22=521+1=4192.1-480-%987=%3=-1+2=4397.1计算的MATLAB程序如下:c l c,c l earl oad y.txt%把原

16、始数据保存在纯文本文件y.txt中ml=l ength(y);n=6;%n为移动平均的项数for i=l:ml-n+lyh at 1(i)=sum(y(i:i+n-1)/n;endyh atlm2=l ength(yh at 1);for i=l:m2-n+lyh at2(i)=sum(yh at 1(i:i+n-1)/n;endyh at2pl ot(l:21,y;*)a2 l=2*yh atl(end)-yh at2(end)b21=2*(yh at 1(end)-y h at2(end)/(n-1)yl 986=a21+b21-yl 987=a21+2*b21趋势移动平均法对于同时存在直

17、线趋势与周期波动的序列,是一种既能反映趋势变 化,又可以有效地分离出来周期变动的方法。3指数平滑法一次移动平均实际上认为最近N期数据对未来值影响相同,都加权工;而N期N以前的数据对未来值没有影响,加权为0。但是,二次及更高次移动平均数的权数却不 是工,且次数越高,权数的结构越复杂,但永远保持对称的权数,即两端项权数小,N中间项权数大,不符合一般系统的动态性。一般说来历史数据对未来值的影响是随时间 间隔的增长而递减的。所以,更切合实际的方法应是对各期观测值依时间顺序进行加权 平均作为预测值。指数平滑法可满足这一要求,而且具有简单的递推形式。指数平滑法根据平滑次数的不同,又分为一次指数平滑法、二次

18、指数平滑法和三 次指数平滑法等,分别介绍如下。3.1 一次指数平滑法1.预测模型设时间序列为必,为,,力,。为加权系数,一次指数平滑公式为:用=幻,+(1 =Sf:+a(yr-)(13)式(13)是由移动平均公式改进而来的。由式(1)知,移动平均数的递推公式为M:必?十%,I N以M音作为y.N的最佳估计,则有-481-M二班+号学花+fl-I N)7令。=-,以S,代替即得式(13)N S?=+(l-a)s;为进一步理解指数平滑的实质,把式(13)依次展开,有8S/=即+(1-。)殁1+(1-a)S,(?二=一。),一(14)j=o(14)式表明S,是全部历史数据的加权平均,加权系数分别为:

19、显然有%(13;=1;=0 1-(1-Z2)由于加权系数符合指数规律,又具有平滑数据的功能,故称为指数平滑。以这种平滑值进行预测,就是一次指数平滑法。预测模型为心=s?即“=即+(1一。戊(15)也就是以第t期指数平滑值作为t+1期预测值。2.加权系数的选择在进行指数平滑时,加权系数的选择是很重要的。由式(15)可以看出,a的大 小规定了在新预测值中新数据和原预测值所占的比重。a值越大,新数据所占的比重 就愈大,原预测值所占的比重就愈小,反之亦然。若把式(15)改写为L+i=5+a(y,A)(16)则从上式可看出,新预测值是根据预测误差对原预测值进行修正而得到的。a的大小 则体现了修正的幅度,

20、。值愈大,修正幅度愈大;。值愈小,修正幅度也愈小。若选取。=0,则R+=R,即下期预测值就等于本期预测值,在预测过程中不考 虑任何新信息;若选取a=l,则R+=y,即下期预测值就等于本期观测值,完全不 相信过去的信息。这两种极端情况很难做出正确的预测。因此,。值应根据时间序列 的具体性质在01之间选择。具体如何选择一般可遵循下列原则:如果时间序列波 动不大,比较平稳,则a应取小一点,如(0.10.5)。以减少修正幅度,使预测模型 能包含较长时间序列的信息;如果时间序列具有迅速且明显的变动倾向,则。应取 大一点,如(0.60.8)。使预测模型灵敏度高一些,以便迅速跟上数据的变化。在实用上,类似移

21、动平均法,多取几个a值进行试算,看哪个预测误差小,就采 用哪个。3.初始值的确定用一次指数平滑法进行预测,除了选择合适的a夕卜,还要确定初始值碎)。初始值 是由预测者估计或指定的。当时间序列的数据较多,比如在20个以上时,初始值对以 后的预测值影响很少,可选用第一期数据为初始值。如果时间序列的数据较少,在20 个以下时,初始值对以后的预测值影响很大,这时,就必须认真研究如何正确确定初始-482-值。一般以最初几期实际值的平均值作为初始值。例4某市19761987年某种电器销售额如表4所示。试预测1988年该电器销售 额。解 采用指数平滑法,并分别取a=0.2,0.5和0.8进行计算,初始值邸)

22、=&.=512即%=一)=51按预测模型无+1=ay+(1_&戊计算各期预测值,列于表4中。表4某种电器销售额及指数平滑预测值计算表(单位:万元)年份t实际销售额匕预测值自 a=0.2预测值y,a=0.5预测值y,a=0.81976150515151197725250.850.550.2197834751.0451.2551.64197945150.2349.1347.93198054950.3950.0650.39198164850.1149.5349.28198275149.6948.7748.26198384049.9549.8850.45198494847.9644.9442.0919

23、85105247.9746.4746.821986115148.7749.2450.961987125949.2250.1250.99从表4可以看出,a=0.2,0.5和0.8时,预测值是很不相同的。究竟a取何值为好,可通过计算它们的预测标准误差S,选取使S较小的那个a值。预测的标准误差见表5o表5预测的标准误差a0.20.50.8S4.50294.59084.8426计算结果表明:a=0.2时,S较小,故选取a=0.2,预测1988年该电器销售额 为 1988=51.1754 o计算的MATLAB程序如下:c l c,c l earl oad d ianqi.txt%原始数据以列向量的方式存

24、放在纯文本文件中yt=d ianqi;n=l ength(yt);al ph a=0.2 0.5 0.8;m=l ength(al ph a);yh at(l,l:m)=(yt(l)+yt(2)/2;for i=2:nyh at(i,:)=al ph a*y t(i-1)+(1-al ph a).*yh at(i-1,:);end-483-yh aterr=sqrt(mean(repmat(yt,1,m)-yh at).A2)xl swriteCd ianqi.xl s,yh at)yh at 1988=al ph a*yt(n)+(1-al ph a).*yh at(n,:)3.2 二次指数

25、平滑法一次指数平滑法虽然克服了移动平均法的缺点。但当时间序列的变动出现直线趋 势时,用一次指数平滑法进行预测,仍存在明显的滞后偏差。因此,也必须加以修正。修正的方法与趋势移动平均法相同,即再作二次指数平滑,利用滞后偏差的规律建立直 线趋势模型。这就是二次指数平滑法。其计算公式为Sf)=.r+O-a)S可=金)+(1 05公)(17)式中耳为一次指数的平滑值;S,为二次指数的平滑值。当时间序列%,从某时 期开始具有直线趋势时,类似趋势移动平均法,可用直线趋势模型少,加=12(.=2S?_Sf)zy(19)3号T)进行预测。例5仍以例3我国19651985年的发电总量资料为例,试用二次指数平滑法预

26、 测1986年和1987年的发电总量。表6我国发电总量及一、二次指数平滑值t卜算表(单位:亿度)年份t发电总量以一次平滑值二次平滑值M+i的估计值1965167667667619662825720.7689.467619673774736.7703.6765.419684716730.5711.7784.019695940793.3736.2757.4197061159903.0786.2875.01971713841047.3864.61069.91972815241190.3962.31308.41973916681333.61073.71516.119741016881439.91183

27、.61705.019751119581595.41307.11806.119761220311726.11432.82007.219771322341878.41566.52145.019781425662084.71722.02324.119791528202305.31897.02602.919801630062515.52082.52888.619811730932688.82264.43134.119821832772865.22444.63295.019831935143059.92629.23466.119842037703272.92822.33675.1198521410735

28、23.13032.63916.6-484-解 取a=0.3,初始值非)和Sf)都取序列的首项数值,即非)=Sf)=676 计算S,5程,列于表6。得到-=3523.1,5*=3032.6由公式(19),可得1=21时a2=25-5=4013.7,&=4(S;?S字)=210.241-a于是,得/=21时直线趋势方程为%.=4013.7+210.24m预测1986年和1987年的发电总量为(单位:亿度)%986=%2=%1+1=4223.95%987=%3=%1+2=4434.19为了求各期的模拟值。可将式(19)代入直线趋势模型(18),并令加=1,则得治口7*+言)即(20)令1=1,2,2

29、0,由公式(20)可求出各期的模拟值。计算结果见表6。计算的MATLAB程序如下:c l c,c l earl oad fad ian.txt%原始数据以列向量的方式存放在纯文本文件中yt=fad ian;n=l ength(yt);al ph a=0.3;stl(l)=yt(l);st2(l)=yt(l);for i=2:nst 1(i)=al ph a*y t(i)+(1-al ph a)*st 1(i-1);st2(i)=al ph a*stl(i)+(l-al ph a)*st2(i-l);endxl swriteCfad ian.xl s,stl,st2)a=2*stl-st2b=a

30、l ph a/(1-al ph a)*(st 1-s t2)yh at=a+b;xl swriteCfad ian.xl s,yh at,Sh eetr,C2)str=c h ar(C,int2str(n+2);xl swriteCfad ian.xl s,a(n)+2*b(n),Sh eetl,str)3.3三次指数平滑法当时间序列的变动表现为二次曲线趋势时,则需要用三次指数平滑法。三次指数平 滑是在二次指数平滑的基础上,再进行一次平滑,其计算公式为-485-S,=/+(1 S;2)=aS;l)+(l-a)S;S;3)=aS;2)+(l-a)SS 式中sf)为三次指数平滑值。三次指数平滑法的

31、预测模型为y,+m=q+btm+Ctm2,m=1,2,-其中(21)(22)为=3S*3S,+Sf)的估计值1978120.0421.3721.7721.8921.941979220.0620.9821.5321.7820.231980325.7222.4021.7921.7819.561981434.6126.0623.0722.1724.491982551.7733.7826.2823.4034.591983655.9240.4230.5225.5453.891984780.6552.4937.1129.0164.5819858131.1176.0748.8034.9589.3019869

32、148.5897.8363.5143.52142.42198710162.67117.2879.6454.35176.09198811232.26151.77101.2868.43196.26解从图2可以看出,投资总额呈二次曲线上升,可用三次指数平滑法进行预测。图2某省固定资产投资总额趋势图-486-取a=0.3,初始值 S?=S)=S,)=-+g+力=21.94。计算 S*,9,Sf)列于表7中。得到S*=151.77,Sf=101.28,S7=68.43由公式(23),可得到当/=11时a”=219.91,,i=38.38,cn=1.62于是,得=11时预测模型为y11+m=219.91+

33、38.38加+1.62/预测1989年和1990年的固定资产投资总额为(单位:亿元)31989=912=911+1=+济1+C=259.911990=%3=%1+2=%+2如+22cn=303.16因为国家从1989年开始对固定资产投资采取压缩政策,这些预测值显然偏高,应 作适当的修正,以消除政策因素的影响。与二次指数平滑法一样,为了计算各期的模拟值,可将式(23)代入预测模型(22),并令加=1,则得3-3口+了 _3-*_J_s),+1(1-tz)2 f(1-a)2 (1-tz)2 z(24)令=0,1,2,10,公式(24)可求出各期的模拟值,见表7。计算的MATLAB程序如下:c l

34、c,c l earl oad touzi.txt%原始数据以列向量的方式存放在纯文本文件中yt=touzi;n=l ength(yt);al ph a=0.3;st l _0=mean(yt(1:3);st2_0=st 1 _0;st3_0=st 1 _0;st 1(1)=al ph a*y t(1)+(1-al ph a)*st l _0;st2(1)=al ph a*st 1(1)+(1-al ph a)*st2_0;st3(1)=al ph a*st2(1)+(1-al ph a)*st3_0;for i=2:nst 1(i)=al ph a*yt(i)+(1-al ph a)*stl(

35、i-l);st2(i)=al ph a*st 1(i)+(1-al ph a)*st2(i-1);st3(i)=al ph a*st2(i)+(l-al ph a)*st3(i-l);endxl swriteCtouzi.xl s,str,st2,st3)stl=stl _0,stl;st2=st2_0,st2;st3=st3_0,st3;a=3*stl-3*st2+st3;b=0.5*al ph a/(l-al ph a)A2*(6-5*al ph a)*stl-2*(5-4*al ph a)*st2+(4-3*al ph a)*st3);c=0.5*al ph aA2/(l-al ph a

36、)A2*(st l-2*st2+st3);yh at=a+b+c;xl swrite(touzi.xl s,yh at,Sh eetr,Dr)pl ot(1:n,yt,*,1:n,yh at(1:n),O)l egend C实际值?预测值:2)xish u=c(n+1),b(n+1),a(n+1);yh at 1990=pol yval(xish u,2)-487-指数平滑预测模型是以时刻/为起点,综合历史序列的信息,对未来进行预测的。选择合适的加权系数。是提高预测精度的关键环节。根据实践经验,a的取值范围一 般以0.10.3为宜。值愈大,加权系数序列衰减速度愈快,所以实际上a取值大小 起着控

37、制参加平均的历史数据的个数的作用。值愈大意味着采用的数据愈少。因此,可以得到选择a值的一些基本准则。(1)如果序列的基本趋势比较稳,预测偏差由随机因素造成,则a值应取小一些,以减少修正幅度,使预测模型能包含更多历史数据的信息。(2)如果预测目标的基本趋势已发生系统的变化,则a值应取得大一些。这样,可以偏重新数据的信息对原模型进行大幅度修正,以使预测模型适应预测目标的新变 化。另外,由于指数平滑公式是递推计算公式,所以必须确定初始值可以取前35个数据的算术平均值作为初始值.4差分指数平滑法在上节我们已经讲过,当时间序列的变动具有直线趋势时,用一次指数平滑法会出 现滞后偏差,其原因在于数据不满足模

38、型要求。因此,我们也可以从数据变换的角度来 考虑改进措施,即在运用指数平滑法以前先对数据作一些技术上的处理,使之能适合于 一次指数平滑模型,以后再对输出结果作技术上的返回处理,使之恢复为原变量的形态。差分方法是改变数据变动趋势的简易方法。下面我们讨论如何用差分方法来改进指数平 滑法。4.1 一阶差分指数平滑法当时间序列呈直线增加时,可运用一阶差分指数平滑模型来预测。其公式如下:%)=ky,+。-a)%(26)少+1=VR+i+%(27)其中的V为差分记号。式(25)表示对呈现直线增加的序列作一阶差分,构成一个平 稳的新序列;式(27)表示把经过一阶差分后的新序列的指数平滑预测值与变量当前的 实

39、际值迭加,作为变量下一期的预测值。对于这个公式的数学意义可作如下的解释。因为X+1=%+1-%+M+X(28)当我们采用按式(26)计算的预测值去估计式(28)中的%讨,从而式(28)等号左边 的+1也要改为预测值,亦即成为式(27)。在前面我们已分析过,指数平滑值实际上是一种加权平均数。因此把序列中逐期增 量的加权平均数(指数平滑值)加上当前值的实际数进行预测,比一次指数平滑法只用 变量以往取值的加权平均数作为下一期的预测更合理。从而使预测值始终围绕实际值上 下波动,从根本上解决了在有直线增长趋势的情况下,用一次指数平滑法所得出的结果 始终落后于实际值的问题。例7某工业企业19771986年

40、锅炉燃料消耗量资料如表8所示,试预测1987年 的燃料消耗量。表8某企业锅炉燃料消耗量的差分指数平滑法计算表(a=04)(单位:百吨)年份t燃料消耗量必差分差分指数平滑值预测值1977124-488-1978226219793271228198043031.628.6198153222.1632.16198263312.1034.10198373631.6634.66198484042.1938.19198594112.9242.921986104432.1543.151987112.4946.49解由资料可以看出,燃料消耗量,除个别年份外,逐期增长量大体在200吨左 右,即呈直线增长,因此可

41、用一阶差分指数平滑模型来预测。我们取a=0.4,初始值 为差分序列首项值,计算结果列于表8中。预测1987年燃料消耗量为力987=2.49+44=46.49(百吨)。4.2 二阶差分指数平滑模型当时间序列呈现二次曲线增长时,可用二阶差分指数平滑模型来预测,计算公式如 下:(29)V2y,=Vy,-Vy,_1(30)V2y,+1=V2y,+(l-)V2y,(31)(32)其中表示二阶差分。因为同样,用力以的估计值代替力坨得到式(32)差分方法和指数平滑法的联合运用,除了能克服一次指数平滑法的滞后偏差之外,对初始值的问题也有显著的改进。因为数据经过差分处理后,所产生的新序列基本上是 平稳的。这时,

42、初始值取新序列的第一期数据对于未来预测值不会有多大影响。其次,它拓展了指数平滑法的适用范围,使一些原来需要运用配合直线趋势模型处理的情况可 用这种组合模型来取代。但是,对于指数平滑法存在的加权系数。的选择问题,以及 只能逐期预测问题,差分指数平滑模型也没有改进。5自适应滤波法5.1 自适应滤波法的基本过程自适应滤波法与移动平均法、指数平滑法一样,也是以时间序列的历史观测值进行 某种加权平均来预测的,它要寻找一组“最佳”的权数,其办法是先用一组给定的权数 来计算一个预测值,然后计算预测误差,再根据预测误差调整权数以减少误差。这样反 复进行,直至找出一组“最佳”权数,使误差减少到最低限度。由于这种

43、调整权数的过 程与通讯工程中的传输噪声过滤过程极为接近,故称为自适应滤波法。自适应滤波法的基本预测公式为-489-1+1=W1K+W2yi+Wn%_n+i=Zw,7t+i(33)i=l式(33)中,Rm为第1+1期的预测值,叱为第1一,+1期的观测值权数,%t+i为第/-,+1期的观测值,N为权数的个数。其调整权数的公式为叱=叱+2左+(34)式中,i=l,2,N,=N,N+1,%为序列数据的个数,叱为调整前的第i个 权数,叱为调整后的第,个权数,左为学习常数,6+为第1+1期的预测误差。式(34)表明:调整后的一组权数应等于旧的一组权数加上误差调整项,这个调整项包括预测误 差、原观测值和学习

44、常数等三个因素。学习常数上的大小决定权数调整的速度。下面举一个简单的例子来说明此法的全过程。设有一个时间序列包括10个观测值,如表9所示。试用自适应滤波法,以两个权数来求第11期的预测值。表9某时间序列数据表时期,12345678910观测值以0.10.20.30.40.50.60.70.80.91.0本例中N=2。取初始权数吗=0.5,w2=0.5,并设=0.9。/的取值由N=2 开始,当/=2时:(1)按预测公式(33),求第+1=3期的预测值。少+1=%=吗%+叫必=0.15(2)计算预测误差。4+1=q=为一夕3=0.3 0.15=0.15(3)根据式(34),叱=吗+2小调整权数为W

45、=吗+2%e3 y 2=0554w2=w2+2ke3y1=0.527(1)(3)结束,即完成了一次权数调整,然后才进1再重复以前步骤。当1=3 时:(1)利用所得到的权数,计算第1+1=4期的预测值。方法是,舍去最前面的一 个观测值%,增加一个新的观测值为。即少+1=%=W;%+w2y2=0.2716(2)计算预测误差6+1=Q=%=。13(3)调整权数w;=0.554+2x0.9x0.13x0.3=0.624w2=0.527+2x0.9x0.13x0.2=0.564这样进行到1=10时R+1=11=WM+W2%-490-但由于没有1=11的观测值为,因此-=61=%-N无法计算。这时,第一轮

46、的调整就此结束。把现有的新权数作为初始权数,重新开始/=2 的过程。这样反复进行下去,到预测误差(指新一轮的预测总误差)没有明显改进时,就认为获得了一组“最佳”权数,能实际用来预测第11期的数值。本例在调整过程中,可使得误差降为零,而权数达到稳定不变,最后得到的“最佳”权数为%=2.0,w2=-1.0用“最佳”权数预测第11期的取值%1=吗%)+“9=1在实际应用中,权数调整计算工作量可能很大,必须借助于计算机才能实现。计算的MATLAB程序如下:clc,clearyt=0.1:0.1:1;m=length(yt);k=0.9;N=2;Terr=10000;w=ones(1,N)/N;whil

47、e abs(Terr)0.00001Terr=;for j=N+l:m-lyhat(j)=w*yt(j-1:-1:j-N)*;err=yt(j)-yhat(j);Terr=Terr,abs(err);w=w+2*k*err*yt(j-1:-1:j-N);endTerr=max(Terr);endw,yhat5.2 N,左值和初始权数的确定在开始调整权数时,首先要确定权数个数N和学习常数左。一般说来,当时间序 列的观测值呈季节变动时,N应取季节性长度值。如序列以一年为周期进行季节变动 时,若数据是月度的,则取N=12,若季节是季度的,则取N=4。如果时间序列无 明显的周期变动,则可用自相关系数法

48、来确定,即取N为最高自相关系数的滞后时期。上的取值一般可定为1/N,也可以用不同的值来进行计算,以确定一个能使S最 小的上值。初始权数的确定也很重要,如无其它依据,也可用1/N作为初始权系数用,即叱=1a=l,2,N)N自适应滤波法有两个明显的优点:一是技术比较简单,可根据预测意图来选择权数 的个数和学习常数,以控制预测。也可以由计算机自动选定。二是它使用了全部历史数 据来寻求最佳权系数,并随数据轨迹的变化而不断更新权数,从而不断改进预测。由于自适应滤波法的预测模型简单,又可以在计算机上对数据进行处理,所以这种 预测方法应用较为广泛。6趋势外推预测方法-491-趋势外推法是根据事物的历史和现时

49、资料,寻求事物发展规律,从而推测出事物 未来状况的一种比较常用的预测方法。利用趋势外推法进行预测,主要包括六个阶段:(a)选择应预测的参数;(b)收集必要的数据;(c)利用数据拟合曲线;(d)趋势外 推;(e)预测说明;(f)研究预测结果在进行决策中应用的可能性。趋势外推法常用的典型数学模型有:指数曲线、修正指数曲线、生长曲线、包络 曲线等。6.1 指数曲线法一般来说,技术的进步和生产的增长,在其未达饱和之前的新生时期是遵循指数 曲线增长规律的,因此可以用指数曲线对发展中的事物进行预测。指数曲线的数学模型为y=(35)其中系数凡和K值由历史数据利用回归方法求得。对式(35)取对数可得In y=

50、In y0+Kt(36)令K=In y,A=In y0则Y=A+Kt其中A,K可以用最小二乘法求得。6.2 修正指数曲线法利用指数曲线外推来进行预测时,存在着预测值随着时间的推移会无限增大的情 况。这是不符合客观规律的。因为任何事物的发展都是有一定限度的。例如某种畅销产 品,在其占有市场的初期是呈指数曲线增长的,但随着产品销售量的增加,产品总量接 近于社会饱和量时。这时的预测模型应改用修正指数曲线。yt=K+ab(37)在此数学模型中有三个参数K,。和要用历史数据来确定。修正指数曲线用于描述这样一类现象。(1)初期增长迅速,随后增长率逐渐降低。(2)当 K0,a0,0 0,即自 f K。当K值

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服