肇州量化投资虚拟社区

【Winter模型预测】预测公司市场需求

大鱼海洋 2018-11-08 14:06:19



模型介绍

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

现有的移动平均算法大都存在许多问题,不仅计算困难,而且也不能通过之前的计算结果推算出加权移动平均值。移动平均值永远不可能应用于现有的数据集边缘的数据,但数据集边缘的变动形态往往正是我们最感兴趣的部分。

而我们将要介绍的这种算法能够避免所有这些问题。它叫指数平滑法(exponential smoothing)或Holt-Winters法。它是一种由指数加权平均数组成的,专门用于对具有线性特征的时间序列进行趋势预测的分解模型。它的误差小,准确程度高,且计算工作量小。与趋势分析法相比具有更好的预测性能。

时间序列数据一般有以下几种特点:1.趋势(Trend)  2. 季节性(Seasonality)。

趋势描述的是时间序列的整体走势,比如总体上升或者总体下降。季节性描述的是数据的周期性波动,比如以年或者周为周期。三次指数平滑算法可以对同时含有趋势和季节性的时间序列进行预测,该算法是基于一次指数平滑和二次指数平滑算法的。

    一次指数平滑算法基于以下的递推关系:

    si=αxi+(1-α)si-1 

   其中α是平滑参数,si是之前i个数据的平滑值,取值为[0,1],α越接近1,平滑后的值越接近当前时间的数据值,数据越不平滑,α越接近0,平滑后的值越接近前i个数据的平滑值,数据越平滑,α的值通常可以多尝试几次以达到较佳效果。

    一次指数平滑算法进行预测的公式为:xi+h=si,其中i为当前最后的一个数据记录的坐标,亦即预测的时间序列为一条直线,不能反映时间序列的趋势和季节性。

    二次指数平滑保留了趋势的信息,使得预测的时间序列可以包含之前数据的趋势。二次指数平滑通过添加一个新的变量t来表示平滑后的趋势:

    si=αxi+(1-α)(si-1+ti-1)

    ti=ß(si-si-1)+(1-ß)ti-1

二次指数平滑的预测公式为  xi+h=si+ht二次指数平滑的预测结果是一条斜的直线。

三次指数平滑在二次指数平滑的基础上保留了季节性的信息,使得其可以预测带有季节性的时间序列。三次指数平滑添加了一个新的参数p来表示平滑后的趋势。

   三次指数平滑有累加和累乘两种方法,下面是累加的三次指数平滑

  si=α(xi-pi-k)+(1-α)(si-1+ti-1)

  ti=ß(si-si-1)+(1-ß)ti-1

   pi=γ(xi-si)+(1-γ)pi-k  其中k为周期

累加三次指数平滑的预测公式为: xi+h=si+hti+pi-k+(h mod k) 

注意:数据之魅P88此处有错误,根据Wikipedia修正。

   下式为累乘的三次指数平滑:

 si=αxi/pi-k+(1-α)(si-1+ti-1)

ti=ß(si-si-1)+(1-ß)ti-1

 pi=γxi/si+(1-γ)pi-k  其中k为周期

累乘三次指数平滑的预测公式为: xi+h=(si+hti)pi-k+(hmod k)   

注意:数据之魅P88此处有错误,根据Wikipedia修正。

 α,ß,γ的值都位于[0,1]之间,可以多试验几次以达到较佳效果。

     s,t,p初始值的选取对于算法整体的影响不是特别大,通常的取值为s0=x0,t0=x1-x0,累加时p=0,累乘时p=1.

市场需求预测

1、将题中数据输入excel中:



2、提取第四列输入spss中,依次点击分析→预测→创建模型→定义日期,将第一个数据定义为2015年第二季度



此时spss中自动多出三列,分别为YEAR_、QUARTER_、DATE_。



3、将需求量Dt一列改为数值型变量,度量标准改为度量。点击分析——预测——序列图,将需求选入变量,DATE选入时间轴标签,以观察该时间序列数据的整体趋势和季节性。


点击确定,得到下图:


此图表明这组数据每年整体呈上升趋势,且季节性明显,每年的高峰出现于第一季度左右。


4、下面进行winter 模型累加性预测。依次点击分析——预测——创建模型,将需求选入因变量,方法选用指数平滑法



条件选择winter相乘性



统计量选择“显示预测值”,点击继续,得到如下结果

预测结果如上图所示,2018年一年需求如下所示:

第一季度

第二季度

第三季度

第四季度

41000

12229

17931

31407



界世的你当不

只作你的肩膀

大鱼海洋

长按二维码关注我们


Copyright © 肇州量化投资虚拟社区@2017