一、算法概述
指数平滑法,是根据以往的历史数据和当前预测水平从而加权平均预测未来数据,是加权平均的一种方法。指数平滑法在短期预测中具有很好的预测效果,但是指数平滑法的长期预测效果并不理想,尤其是对转折点的鉴别能力比较欠缺。其特点是:
- 第一,指数平滑法进一步加强了观察期近期观察值对预测值的作用,对不同时间的观察值所赋予的权数不等,从而加大了近期观察值的权数,使预测值能够迅速反映市场实际的变化。
- 第二,指数平滑法对于观察值所赋予的权数有伸缩性,可以取不同的a 值以改变权数的变化速率。如a取小值,则权数变化较迅速,观察值的新近变化趋势较能迅速反映于指数移动平均值中。因此,运用指数平滑法,可以选择不同的a 值来调节时间序列观察值的均匀程度(即趋势变化的平稳程度)。
二、算法原理
1. 一次指数平滑法
一次指数平滑法(SES),即简单指数平滑法,因为加权系数符合指数规律,且又具有平滑数据的功能,适用于预测没有趋势和季节性的模型。
设时间序列为 y 1 , y 2 , . . . y t , . . y_1,y_2,...y_t,.. y1,y2,...yt,.. 其模型可表述为:
S t ( 1 ) = a y t + ( 1 − a ) S t − 1 ( 1 ) S^{(1)}_t = ay_t + (1-a)S^{(1)}_{t-1} St(1)=ayt+(1−a)St−1(1)其中, S t ( 1 ) S^{(1)}_t St(1) 为第 t t t 期的一次指数平滑值; a a a 为加权系数,且 0 < a < 1 0<a<1 0<a<1 。
由上式递推下去可以得到下式:
S t ( 1 ) = a y t + a ( 1 − a ) y t − 1 + a ( 1 − a ) 2 y t − 2 + . . . + a ( 1 − a ) t − 1 y 1 + ( 1 − a ) t S 0 ( 1 ) S^{(1)}_t = ay_t+a(1-a)y_{t-1}+a(1-a)^2y_{t-2}+...+a(1-a)^{t-1}y_1+(1-a)^tS^{(1)}_0 St(1)=ayt+a(1−a)yt−1+a(1−a)2yt−2+...+a(1−a)t−1y1+(1−a)tS0(1)当 t → ∞ t \to \infty t→∞ 时,上式变为
S t ( 1 ) = a y t + a ( 1 − a ) y t − 1 + a ( 1 − a ) 2 y t − 2 + . . . + a ( 1 − a ) t − 1 y 1 = a ∑ j = 0 t − 1 ( 1 − a ) j y t − j S^{(1)}_t = ay_t+a(1-a)y_{t-1}+a(1-a)^2y_{t-2}+...+a(1-a)^{t-1}y_1 = a\sum^{t-1}_{j=0}(1-a)^jy_{t-j} St(1)=ayt+a(1−a)yt−1+a(1−a)2yt−2+...+a(1−a)