指数平滑法

  •  一次移动平均法  

  一次移动平均法是收集一组观察值,计算这组值的均值,利用这一均值作为下一期的预测值。当数据的随机因素较大时,宜选用较大的N,这样有利于较大限度的平滑由随机性所带来的严重偏差;反之,当数据的随机性因素较小时,宜选用较小的N,这有利于跟踪数据的变化。

  移动平均法的优点有:1. 计算量小;2. 移动平均线能较好的反应时间序列的趋势及其变化。

  移动平均法的两个主要限制:1. 计算移动平均必须具有N个过去观察值,当需要预测大量数据时,就必须存储大量数据;2. N个过去观察值中每一个权值都相等,而早于(t-N+1)期的观察值的权值为0,但实际上往往是最近观察的数据包含更多信息,应具有更大权重。

  • 一次指数平滑法

   一次指数平滑法是一种特殊的加权平均法,对本期观察值和本期预测值赋予不同的权重,求得下一期预测值的方法。这种方法既不需要存储全部历史数据,也不需要存储一组数据,从而可以大大减少数据存储问题。其通式为:

$$F_{t+1}=\alpha x_t+(1-\alpha)F_t$$

  $F_{t+1}$为t+1期的预测值,$x_t$为t期实际观测值,$\alpha$为权值(也称为平滑系数)。根据通式,t期预测值$F_t=\alpha x_{t-1}+(1-\alpha)F_{t-1}$,将其代入上式中得到$F_{t+1}=\alpha x_t+(1-\alpha)[\alpha x_t+(1-\alpha)F_{t-1}]$

  而t-1期的预测值又可以写为:$F_{t-1}=\alpha x_{t-2}+(1-\alpha)F_{t-2}$,将其代入上式可得

$$F_{t+1}=\alpha x_t+(1-\alpha)\alpha x_{t-1}+(1-\alpha)^2\alpha x_{t-2}+(1-\alpha)^3F_{t-2}$$

  根据以上规律,通式可以写为如下形式:

$$F_{t+1}=\alpha x_t+(1-\alpha)\alpha x_{t-1}+(1-\alpha)^2\alpha x_{t-2}+(1-\alpha)^3\alpha x_{t-3}+...+(1-\alpha)^n\alpha x_{t-n}+...+(1-\alpha)^tF_1$$

  由于$(1-\alpha)$的取值在0到1之间,所以$(1-\alpha)^n$的值会越来越小,即离t+1期越久远的观测值,对t+1期的预测值的影像越小。式子中最后一项的$F_1$就是第一期的预测值(初始值),通常可以取第一期的实际值为初值或者取最初几期的平均值为初值(一般分为两种情况:当样本为大样本时(n>42),F1一般以第一期的观察值代替;当样本为小样本时(n<42),F1一般取前几期的平均值代替)。当t很大时$(1-\alpha)^tF_1$非常接近0,所以$F_1$在式子中的影响并不大。用文字描述该通式就是:对离预测期较近的观察值赋予较大的权数,对离预测值较远的观察值赋予较小的权数,权数由近到远按指数规律递减,所以叫做指数平滑法

  下面举个例子来说明指数平滑法的计算方法。某产品过去20个月的销售数据如下:

  C列为指数平滑法计算得到的预测值,F1的值为前三期的平均值,即在C2处输入=AVERAGE(B2:B4),C3处输入$=\$E\$1*B2+(1-\$E\$1)*C2$,E1的值是指数平滑系数,C3中引用到E1的值需要有绝对引用,这样把C3处的公式下拉复制到C21时,公式永远都是引用E1的指数平滑系数。得出来的结果如下图:

  可以看到,指数平滑法进行预测,是有滞后作用的,这是指数平滑法的一个缺点。要对第21期进行预测,只需在A22处输入21,把公式下拉复制到C22即可。

   一次指数平滑法比较简单,优点在于它在计算中将所有的观察值在考虑在内,对各期按时期的远近赋予不同的权重,使预测值更接近实际观察值。但是也存在一些问题,问题之一是要找到合适的α值,以使均方差最小,这需要通过反复试验确定。

  • 二次移动平均法

  二次移动平均法,是对一次移动平均数再进行第二次移动平均,再以一次移动平均值和二次移动平均值为基础建立预测模型,计算预测值的方法。运用一次移动平均法求得的移动平均值存在滞后偏差。特别是在时间序列数据呈现线性趋势时,移动平均值总是落后于观察值数据的变化。二次移动平均法,正是要纠正这一滞后偏差,建立预测目标的线性时间关系数学模型,求得预测值。二次移动平均法适用于有明显趋势变动的市场现象时间序列的预测。线性二次移动平均法的通式为:

$$\begin{align*}
&S_t^1=\frac{x_t+x_{t-1}+x_{t-2}+...+x_{t-N+1}}{N}\\
&S_t^2=\frac{S_t^1+S_{t-1}^1+S_{t-2}^1+...+S_{t-N+1}^1}{N}\\
&a_t=2S_t^1-S_t^2\\
&b_t=\frac{2}{N-1}(S_t^1-S_t^2)\\
&F_{t+T}=a_t+b_tT
\end{align*}$$

  式中,$S_t^1$为第t期的一次移动平均值;$S_t^2$为第t期的二次移动平均值;N为计算移动平均值的跨越期;T为预测超前期数;$a_t$为截距,即第t期现象的基础水平;$b_t$为斜率,即第t期现象的单位时间变化量。

  • 二次指数平滑法

  ○ 布朗单一参数线性指数平滑法

  其基本原理与线性二次移动平均法相似,因为当趋势存在时,一次和二次平滑值都滞后于实际值,将一次和二次平滑值之差加在一次平滑值上,则可对趋势进行修正。

$$\begin{align*}
&S_t^1=ax_t+(1-a)S_{t-1}^1\\
&S_t^2=aS_t^1+(1-a)S_{t-1}^2\\
&a_t=2S_t^1-S_t^2\\
&b_t=\frac{a}{1-a}(S_t^1-S_t^2)\\
&F_{t+T}=a_t+b_tT
\end{align*}$$

  下面以某省农民家庭平均每人全年食品支出数据为例,用二次指数平滑法(取参数a=0.8),计算历年的理论预测值和2005年的预测值,并计算平均绝对误差。

  在二次指数平滑法中,$S_t^1$和$S_t^2$是为了计算最终预测值服务的平滑值。$S_t^1$列从第二行起的计算公式为:"$=\$K\$1*B3+\$K\$2*C2$";$S_t^2$列从第二行起的计算公式为:"$=\$K\$1*C3+\$K\$2*D2$"

   若要预测2005年的值:F05=a04+b04*T=496.46+53.49=549.95元。其余类推。

  ○ Holt双参数线性指数平滑法

   霍尔特指数平滑法有两个基本平滑公式和一个预测公式,两个平滑公式分别对时间数列的两种因素进行平滑,它们是:

$$\begin{align*}
&S_t=\alpha x_t+(1-\alpha)(S_{t-1}+b_{t-1})\\
&b_t=\gamma(S_t-S_{t-1})+(1-\gamma)b_{t-1}\\
&F_{t+T}=S_t+b_tT
\end{align*}$$

   公式中:$\alpha$、$\gamma$为平滑参数;$x_t$为实际观察值;T为外推预测时期数。第一个公式利用前一期的趋势值$b_{t-1}$直接修正平滑值$S_t$,即将$b_{t-1}$加前一期平滑值$S_{t-1}$上,这就消除了滞后,并使$S_t$近似达到最新数据值;公式2是来修正趋势值$b_t$,趋势值用相邻两次平滑值之差来表示,由于随机性,可以利用平滑系数$\gamma$对两次相邻平滑值之差进行修正,并将修正值加上前期趋势值乘以$(1-\gamma)$。

  初始值S1通常设为x1b1的初值可以按照下列三种方式之一确定:

$$\begin{eqnarray}
b_1 & = & x_2 - x_1 \\
b_1 & = & \frac{1}{3} \left[ (x_2 - x_1) + (x_3 - x_2) + (x_4 - x_3) \right] \\
b_1 & = & \frac{x_n - x_1}{n-1}
\end{eqnarray}$$

  用霍尔特指数平滑法进行预测时,最重要的工作是确定平滑参数$\alpha$、$\gamma$的取值,平滑参数的取值适当与否,决定预测的精确程度。

 

 

参考:

时间序列平滑预测法

使用卷积计算移动平均值

Single Exponential Smoothing

Forecasting by Smoothing Techniques

Filters skeleton positions to reduce jitter between frames

时间序列分析之一次指数平滑法 

二次指数平滑法摘抄(原理详细)

Holt-Winters Forecasting for Dummies - Part II

时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters)

时间序列平滑预测法

posted @ 2017-04-11 11:06  XXX已失联  阅读(9824)  评论(0编辑  收藏  举报