时间序列分析预测法:指数平滑法

概述

指数平滑法是在移动平均法基础上发展起来的一种时间序列分析预测法,它是通过计算指数平滑值,配合一定的时间序列预测模型对现象的未来进行预测。其原理是任一期的指数平滑值都是本期实际观察值与前一期指数平滑值的加权平均。它是生产预测中常用的一种方法,也用于中短期经济发展趋势预测,所有的预测方法中,它是用得最多的一种。简单的全期平均法是对时间数列的过去数据一个不漏地全部加以同等利用;移动平均法则不考虑较远期的数据,而给予近期数据更大的权重;指数平滑法则兼容了全期平均和移动平均所长,不舍弃过去的数据,但是仅给予逐渐减弱的影响程度,即随着数据的远离,赋予逐渐收敛为零的权数。

指数平滑法的基本思路

预测值是以前观测值的加权和,且对不同的数据给予不同的权,新数据给较大的权,旧数据给较小的权。

指数平滑法的特点

指数平滑法对于不同时间的观察值所赋予的权数不同,加大了近期观察值的权数,使预测值能够迅速反映市场实际的变化。权数之间按等比级数减少,此基数之首项为平滑常数\alpha,公比为\left ( 1-\alpha \right )

指数平滑法对于观测值所赋予的权数有伸缩性,可以取不同的\alpha值以改变权重的变化速率,如\alpha取小值,则权数变化较迅速,观察值的新近变化趋势能迅速反映于指数移动平均值中。因此,运用指数平滑法,可以选择不同的\alpha值来调节时间序列观察值的均匀程度(即趋势变化的平稳程度)。

平滑常数的选择

在指数平滑法中,预测成功的关键是\alpha值的选择,但\alpha的取值又容易受主观影响,因此合理确定\alpha的取值方法十分重要。一般来说,\alpha值愈大,新数据所占的比重就越大,原预测值所占比重就愈小,反之亦然。理论界一般人为有以下几种方法可供选择。

经验判断法

这种方法主要依赖于时间序列的发展趋势和预测者的经验做出判断。当时间序列呈稳定的水平趋势时,\alpha应取较小值,如0.1~0.3;当时间序列波动较大,长期趋势变化的幅度较大时,\alpha应取中间值,如0.3~0.5;当时间序列具有明显的上升或下降趋势时,\alpha应取较大值,如0.6~0.8,以使预测模型灵敏度高些,能迅速跟上数据的变化;当时间序列呈上升或下降的发展趋势时,\alpha应取较大值,如0.6~1之间。

试算法

根据具体时间序列的情况,参照经验判断法,大致确定额定的取值范围,然后取几个\alpha值进行试算,比较不同\alpha值下的预测标准误差,选取预测标准误差较小的\alpha值。在实际应用中,预测者应结合对预测对象的变化规律做出定性判断且计算预测误差,要考虑到预测灵敏度和预测精度是相互矛盾的,须采用折中的\alpha值。

指数平滑法的分类

根据平滑次数不同,指数平滑法分为一次指数平滑法、二次指数平滑法和三次指数平滑法等。

一次指数平滑法

当时间数列无明显的趋势变化,可用一次指数平滑法预测。

其计算公式为:S _{t+1}^{\left ( 1 \right )}=\alpha X_{t}+\left ( 1-\alpha \right )S _{t}^{\left ( 1 \right )}

式中S _{t+1}^{\left ( 1 \right )}t+1期的预测值;X_{t}t期的实际值;S _{t}^{\left ( 1 \right )}t期的预测值。

二次指数平滑法

二次指数平滑法是对一次指数平滑的再平滑,它适用于具线性趋势的时间数列。

其计算公式为:

S _{t}^{\left ( 1 \right )}=\alpha X_{t}+\left ( 1-\alpha \right )S _{t-1}^{\left ( 1 \right )}

S _{t}^{\left ( 2 \right )}=\alpha S _{t}^{\left ( 1 \right )}+\left ( 1-\alpha \right )S _{t-1}^{\left ( 2 \right )}

预测未来T期的预测值公式为:

y_{t+T}=A_{t}+B_{t}T

其中,

A_{t}=2S_{t}^{\left ( 1 \right )}-S_{t}^{\left ( 2 \right )}

B_{t}=\left ( \frac{a}{1-a} \right )\left ( S_{t}^{\left ( 1 \right ) }-S_{t}^{\left ( 2 \right )} \right )

三次指数平滑法

二次指数平滑法是二次指数平滑基础上的再平滑。

其计算公式是:

S _{t}^{\left ( 1 \right )}=\alpha X_{t}+\left ( 1-\alpha \right )S _{t-1}^{\left ( 1 \right )}

S _{t}^{\left ( 2 \right )}=\alpha S _{t}^{\left ( 1 \right )}+\left ( 1-\alpha \right )S _{t-1}^{\left ( 2 \right )}

S _{t}^{\left ( 3 \right )}=\alpha S _{t}^{\left ( 2 \right )}+\left ( 1-\alpha \right )S _{t-1}^{\left ( 3 \right )}

预测未来T期的预测值公式为:

y_{t+T}=A_{t}+B_{t}T+C_{t}T^{2}

其中,

A_{t}=3S_{t}^{\left ( 1 \right )}-3S_{t}^{\left ( 2 \right )}+S_{t}^{\left ( 3 \right )}

B_{t}=\left ( \frac{\alpha }{2\left ( 1-\alpha \right )^{2}} \right )\left ( \left ( 6-5\alpha \right ) S_{t}^{\left ( 1 \right )}-2\left ( 5-4\alpha \right )S_{t}^{\left ( 2 \right )}+\left ( 4-3\alpha \right )S_{t}^{\left ( 3 \right )} \right )

C_{t}=\left ( \frac{\alpha ^{2}}{2\left ( 1-\alpha \right )^{2}} \right )\left ( S_{t}^{\left ( 1 \right )}-2S_{t}^{\left ( 2 \right )}+S_{t}^{\left ( 3 \right )} \right )

实例分析

表中是我国1978-2002年全社会客运量的资料,用二次指数平滑法进行预测。具体步骤如下: 

我国1978-2002年全社会客运量及预测值
年份 时间t 全社会客运量y 各期的一次指数平滑值S _{t}^{\left ( 1 \right )} 各期的二次指数平滑值S _{t}^{\left ( 2 \right )} a_{t} b_{t} \hat{y}_{t+1}=a_{t}+b_{t}
      253993.0 253993.0      
1978 1 253993 253993.0 253993.0 253993.0 0.0  
1979 2 289665 275396.2 266834.9 283957.5 12841.9 253993.0
1980 3 341785 315229.5 295871.7 334587.3 29036.7 296799.4
1981 4 384763 356949.6 332518.4 381380.8 36646.8 363624.0
1982 5 428964 400158.2 373102.3 427214.2 40583.9 418027.5
1983 6 470614 442431.7 414699.9 470163.4 41597.6 467798.1
1984 7 530217 495102.9 462941.7 527264.1 48241.8 511761.1
1985 8 620206 570164.8 527275.5 613054.0 64333.8 575505.8
1986 9 688212 640993.1 595506.1 686480.1 68230.5 677387.8
1987 10 746422 704250.4 660752.7 747748.2 65246.6 754710.7
1988 11 809592 767455.4 724774.3 810136.4 64021.6 812994.8
1989 12 791376 781807.8 758994.4 804621.1 34220.1 874158.1
1990 13 772682 776332.3 769397.1 783267.5 10402.8 838841.2
1991 14 806048 794161.7 784255.9 804067.6 14858.8 793670.2
1992 15 860855 834177.7 814209.0 854146.4 29953.1 818926.3
1993 16 996630 931651.5 884674.5 978628.5 70465.5 884099.5
1994 17 1092883 1028390.4 970904.0 1085876.8 86229.6 1049094.0
1995 18 1172596 1114913.8 1057309.9 1172517.6 86405.8 1172106.3
1996 19 1245356 1193179.1 1138831.4 1247526.8 81521.5 1258923.5
1997 20 1326094 1272928.0 1219289.4 1326566.7 80458.0 1329048.3
1998 21 1378717 1336401.4 1289556.6 1383246.2 70267.2 1407024.7
1999 22 1394413 1371208.4 1338547.7 1403869.1 48991.1 1453513.4
2000 23 1478573 1435627.1 1396795.4 1474458.9 58247.7 1452860.1
2001 24 1534122 1494724.1 1455552.6 1533895.5 58757.2 1532706.6
2002 25 1608150 1562779.6 1519888.8 1605670.4 64336.2 1592652.8
2003 26           1670006.7
2004 27           1734342.9

第一步,计算一次指数平滑值。取\alpha =0.6S_{0}^{(2)}=S_{0}^{(1)}=y_{1}=253993,根据一次指数平滑公式S _{t}^{\left ( 1 \right )}=\alpha y_{t}+\left ( 1-\alpha \right )S _{t-1}^{\left ( 1 \right )},可计算各期的一次指数平滑预测值:

1978年:S _{1}^{(1)}=0.6y_{1}+0.4S _{0}^{(1)}=0.6\times 253993+0.4\times253993=253993 

1979年:S _{2}^{(1)}=0.6y_{2}+0.4S _{1}^{(1)}=0.6\times 289665+0.4\times253993=275396.2

第二步,计算二次指数平滑值。根据二次平滑公式S _{t}^{\left ( 2 \right )}=\alpha S _{t}^{\left ( 1 \right )}+\left ( 1-\alpha \right )S _{t-1}^{\left ( 2 \right )}和一次平滑预测值,可计算各期的二次指数平滑预测值:

1978年:S _{1}^{(2)}=0.6S_{1}^{(1)}+0.4S _{0}^{(2)}=0.6\times 253993+0.4\times253993=253993 

1979年:S _{2}^{(2)}=0.6S_{2}^{(1)}+0.4S _{1}^{(2)}=0.6\times 275396+0.4\times253993=266834.9

第三步,计算参数变量值ab。根据公式

A_{t}=2S_{t}^{\left ( 1 \right )}-S_{t}^{\left ( 2 \right )}

B_{t}=\left ( \frac{a}{1-a} \right )\left ( S_{t}^{\left ( 1 \right ) }-S_{t}^{\left ( 2 \right )} \right )

可计算各期的ab

1979年:

a_{2}=2S_{2}^{\left ( 1 \right )}-S_{2}^{\left ( 2 \right )}=2\times275396.2-266834.9=283957.5

b_{2}=\left ( \frac{a}{1-a} \right )\left ( S_{2}^{\left ( 1 \right ) }-S_{2}^{\left ( 2 \right )} \right )=\frac{0.6}{0.4}(275396.2-266834.9)=12841.9

第四步,求各期的预测值,根据公式

y_{t+T}=A_{t}+B_{t}T

求各期的预测值。

2000年预测值:\hat{y}_{23}=\hat{y}_{22+1}=a_{22}+b_{22}\times1=1403869.1+148991.1=1452860

进行外推预测则,

2003年预测值:\hat{y}_{26}=\hat{y}_{25+1}=a_{25}+b_{25}\times1=1605670.4+64336.2=1670006.7

2004年预测值:\hat{y}_{27}=\hat{y}_{25+2}=a_{25}+b_{25}\times2=1605670.4+64336.2\times2=1734342.9

其它

根据算法原理进行编程,可输入时间序列,平滑次数和\alpha值等参数。根据实际数据,取若干各\alpha值进行试算,比较结果准确率,确定参数。

初始值的确定,即第一期预测值的确定。一般原数列的项数较多(大于15项)时,可以选用第一期的预测值或第一期的前一期预测值作为初始值。如果原数列的项数较少(小于15项)时,可以选取最初几期(一般为前三期)的平均预测值作为初始值。指数平滑法的选用,一般可根据原数列散点图呈现的趋势来确定。如呈现直线趋势,选用二次指数平滑法,如呈现抛物线趋势,选用三次指数平滑法,或者,当时间序列的数据经二次指数平滑法处理后,仍有曲率时,应选用三次指数平滑法。

一段时间内收集到的数据所呈现的上升或下降趋势将导致指数预测滞后于实际需求。通过趋势调整,添加趋势修正值,可以在一定程度尚改进指数平滑法的预测结果。调整后的指数平滑法的公式为:包含趋势预测=新预测+趋势矫正

进行趋势调整的指数平滑法有3个步骤:

  1. 计算第t期的简单指数平滑预测y_{t}
  2. 计算趋势,其计算公式为:T_{t}=(1-b)T_{t-1}+b(y_{t}-y_{t-1}),其中,T_{t}是第t期经过平滑的趋势;T_{t-1}是第t期前一期经过平滑的趋势;b是选择的趋势平滑系数;y_{t}是第t期的简单指数平滑预测;y_{t-1}是第t期前一期的简单指数平滑预测。
  3. 计算趋势调整后的指数平滑预测值,其计算公式为:y_{t}T_{t}=y_{t}+T_{t}

你可能感兴趣的:(算法,算法)