时间序列平滑法如何预测产品产量?

作者:王建辉 中元国际资产评估公司

应用收益法进行企业价值评估必须对企业的未来收益进行预测。如何科学地预测企业的未来收益,始终是企业价值评估中的难点。而产品产量(销量)的预测又是企业未来收益预测的基础。本文介绍了布朗单一参数线性指数平滑法、霍特双参数指数平滑法、布朗三参数指数平滑法及温特线性和季节性指数平滑法四种时间序列平滑法在产品产量预测中的应用,并对这四种方法的适用范围进行了总结。   一、时间序列平滑法的概念及主要方法 统计学中有许多进行预测的方法。如因果回归分析法是从研究客观事物的因果关系入手,建立单一回归模型进行预测的方法。但当预测对象的影响因素过于复杂或根本无法得到有关影响因素的数据资料时,因果回归分析法就无能为力了。而在这种情况下,有时采用时间序列平滑法,以单一的时间因素替代各种其他的影响因素,却可以达到预测的目的。

 客观事物的发展是有规律的,客观事物的过去、现在和未来之间存在着有机的联系,完全的“真空地带”是不存在的。时间序列平滑法就是根据预测对象的时间序列,寻找其随时间变化的规律,建立时间序列平滑模型,以推断未来的预测方法。其基本原理是:除一些不规则的变动外,事物本身就存在着某种随时间推移而变动的规律。也就是说,未来是过去和现在的延伸,并且能找到一条合适的函数曲线反映这种延伸。我们可以用时间为自变量,时间序列观察值为因变量,建立时间序列平滑模型。统计资料表明,大量社会经济现象的发展属于是渐进性的,其发展相对于时间具有一定的规律性。时间序列平滑模型可以消除事物发展中的极端值,以较平滑的中间值作为预测未来的依据。

 时间序列平滑法包括:简单平均法、移动平均法(简单移动平均法和加权移动平均法)、一次指数平滑法(Single Exponential Smoothing)、布朗(Brown)单一参数线性指数平滑法、霍特(Holt)双参数指数平滑法、布朗三次指数平滑法、温特(Winter)线性和季节性指数平滑法等。鉴于简单平均法、移动平均法和一次指数平滑法都比较简单,为节省篇幅,本文不作详细介绍。   二、布朗单一参数线性指数平滑法  布朗单一参数线性指数平滑法是二次指数平滑法,它是在一次指数平滑值的基础上进行的再一次平滑。一次指数平滑法是直接利用平滑值作为预测值,二次指数平滑法是利用平滑值对时间序列下的线性趋势进行修正,建立线性平滑模型。

 在线性趋势和非线性趋势下,采用移动平均法和一次指数平滑法所预测的平滑值往往都落后于观察值,即存在所谓预测滞后现象,布朗单一参数线性指数平滑法较好地解决了这一问题。其计算公式为:

 上述公式中,St(1)为时间序列第t期的一次指数平滑值,St(2)为时间序列第t期的二次指数平滑值,at、bt为线性平滑模型参数,m为预测的超前期数,Ft+m为时间序列第(t+m)期的预测值。MSE为均方误差,MAPE为平均绝对百分误差,Yt为时间序列第t期的观察值,Ft为时间序列第t期的预测值,n为期数。   应用布朗单一参数线性指数平滑法的关键在于选择合适的平滑常数,实际预测时,一般根据时间序列特点和预测经验,先预选几个α,然后根据预测误差的对比分析,选择预测误差最小的α。

初始平滑值S1(1)、S1(2)需要估计,这种估计是在所有的指数平滑法中都要进行的。但这一估计数据仅对初始阶段的相关计算有一定影响,随着预测期数的增加,其影响愈来愈小,直至彻底消除。一般情况下,S1(1)、S1(2)取时间序列第一期的观察值,或者前几期观察值的算术平均值。以下是根据我国1981年至1983年度平板玻璃月产量数据,应用布朗单一参数线性指数平滑法建立平板玻璃未来产量时间序列模型的一个实例,   本例中,取α=0.5,Y1、S1(1)、S1(2)取1981年1月的月产量240.3万标准箱。根据公式(1)、(2)、(3)、(4)及(5)进行相应的计算。  得:

详细计算结果见表1。

 根据公式(6)和(7)计算预测误差,MSE=283.10,MAPE=4.83%,从预测误差的计算结果看,平均绝对百分误差小于5%,预测精度较高。   三、霍特双参数指数平滑法  霍特双参数指数平滑法与布朗单一参数线性指数平滑法的原理相似,但它不直接应用二次指数平滑,而是分别对时间序列数据和趋势进行平滑。它使用两个平滑常数α和γ(数值均在0与1之间)和三个计算公式。三个计算公式分别为:

 St为时间序列第t期的平滑值,bt为时间序列第t期趋势的平滑值,m为预测的超前期数,Ft+m为时间序列第t+m期的预测值。

  应用霍特双参数指数平滑法的关键在于选择一对合适的平滑常数α和γ。一般根据时间序列的特点和预测经验,先预选几对α和γ,然后根据预测误差的对比分析,选择预测误差最小的α和γ的组合。S1通常取时间序列第一期的观察值或前几期观察值的算术平均值、b1通常不使用公式(9)进行计算,而是取时间序列前两期观察值之差或前几期观察值两两之差的算术平均值。S1和b1的选择对预测值的影响与布朗单一参数线性指数平滑法相同。

  仍然采取上表的观测值, S1=Y1=240.3,   b1=Y2-Y1=222.8-240.3=-17.5,α=0.5,γ=0.6,笔者根据公式(8)、(9)和(10)进行了计算,S2=0.5×222.8+0.5×(240.3-17.5)= 222.8,   b2=0.6×(222.8-240.3)+(1-0.6)×(-17.5)= -17.5, F3=222.8+(-17.5)=205.3……具体计算结果见表2。

根据公式(6)和(7)计算了霍特双参数指数平滑法的预测误差,MSE=328.54,MAPE=5.04%,从预测误差的计算结果看,平均绝对百分误差略高于5%,预测精度也较高。  四、布朗三次指数平滑法   三次指数平滑法也称三重指数平滑法,它与两次指数平滑法一样,以平滑值对时间序列的非线性趋势进行修正。布朗三次指数平滑法是在两次指数平滑的基础上,使用两次多项式参数进行再一次平滑。布朗三次指数平滑法虽然也是跟踪时间序列的发展变化趋势,修正预测值,但其能跟踪时间序列的非线性发展趋势,计算也复杂得多。其计算公式为:

 式中,St(1)、St(2)及St(3)分别为时间序列第t期的一次指数平滑值、二次指数平滑值及三次指数平滑值,at、bt和ct为时间序列平滑模型参数,m为预测的超前期数,Ft+m为时间序列第t+m期的预测值。

  三次指数平滑法也需要估计初始平滑值S1(1)、S1(2)及S1(3),一般也选择时间序列第一期的观察值,或者为前几期观察值的算术平均值。

  在本例中,取α=0.4,S1(1)=S1(2)=S1(3)=Y1=240.3,根据公式(11)、(12)、(13)、(14)、(15)、(16)和(17)进行相应的计算,得:

  五、温特线性和季节性指数平滑法   下列公式(18)包含了时间序列的三种因素,平稳性(St)、趋势性(bt)和季节性(It)。温特线性和季节性指数平滑法与霍特双参数指数平滑法很相似,但多了一个季节性因素,并需要三个平滑常数α、β和γ(数值均要求在0与1之间)。其计算公式为:

 式中,St为时间序列第t期的平滑值,它已剔除季节性因素,bt为时间序列第t期趋势的平滑值,L为季节长度(每年的季数或月数),It为时间序列第t期的季节平滑值,它通常在1附近,一些值大于1,一些值小于1,m为预测的超前期数,Ft+m为时间序列第t+m期的预测值。

  使用温特线性和季节性指数平滑法的关键在于一组合理平滑常数组合α、β、γ的选择,从而使预测误差达到最小。需要根据时间序列的特点和预测经验预先确定几对上述常数组合,经过反复测试,计算各组常数组合的预测误差,最后选取预测误差最小的一组得出的结果。温特线性和季节性指数平滑法也需要选择初始平滑值SL+1和bL+1,一般取:

  六、总结 上面介绍了四种时间序列平滑法的实际应用,而每种时间序列平滑法均有其适用范围,在此作一简单的总结。如果时间序列无季节性特征且产品产量变动具有线性趋势,应采用布朗单一参数指数平滑法或霍特双参数指数平滑法;如果时间序列无季节性特征但产品产量变动具有非线性趋势,应采用布朗三次指数平滑法;如果时间序列具有季节性而产品产量变动具有线性趋势,则应采用温特线性和季节性指数平滑法。这四种方法中,仅布朗三次指数平滑法属于非线性平滑法,它具有预测曲线拐点的优势。

  应用时间序列平滑法的前提条件是:

(1)所预测的客观事物发展属于渐进式,无跳跃性的变化;

(2)过去和目前影响客观事物发展的因素也决定着客观事物未来的发展。

由于客观事物的发展变动受多种因素的影响,而各种影响因素又可能是不断发展或不断变动的,因此,时间序列平滑法在一般情况下仅适用于短期的与近期的预测。当预测如果需要延伸至较远未来,时间序列平滑法则存在较大的局限性。时间序列平滑法在客观影响因素发生较大变化可能产生较大的预测误差。为降低这些可能的预测误差,必须充分研究客观影响因素可能的发展与变动,将定性分析和定量研究结合起来,这样才能提高预测的精度。

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2015-12-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏赵俊的Java专栏

从源码上分析 ArrayList

1171
来自专栏alexqdjay

HashMap 多线程下死循环分析及JDK8修复

1K4
来自专栏刘君君

JDK8的HashMap源码学习笔记

3008
来自专栏计算机视觉与深度学习基础

Leetcode 114 Flatten Binary Tree to Linked List

Given a binary tree, flatten it to a linked list in-place. For example, Given...

1938
来自专栏Java Edge

AbstractList源码解析1 实现的方法2 两种内部迭代器3 两种内部类3 SubList 源码分析4 RandomAccessSubList 源码:AbstractList 作为 Lis

它实现了 List 的一些位置相关操作(比如 get,set,add,remove),是第一个实现随机访问方法的集合类,但不支持添加和替换

422
来自专栏desperate633

LeetCode Invert Binary Tree题目分析

Invert a binary tree. 4 / \ 2 7 / \ / \1 3 6 9 to4 / \ 7 2 / \ / \9 6 3 1 Tri...

841
来自专栏xingoo, 一个梦想做发明家的程序员

20120918-向量实现《数据结构与算法分析》

#include <iostream> #include <list> #include <string> #include <vector> #include...

1716
来自专栏学海无涯

Android开发之奇怪的Fragment

说起Android中的Fragment,在使用的时候稍加注意,就会发现存在以下两种: v4包中的兼容Fragment,android.support.v4.ap...

3155
来自专栏MelonTeam专栏

ArrayList源码完全分析

导语: 这里分析的ArrayList是使用的JDK1.8里面的类,AndroidSDK里面的ArrayList基本和这个一样。 分析的方式是逐个API进行解析 ...

4489
来自专栏java闲聊

JDK1.8 ArrayList 源码解析

当运行 ArrayList<Integer> list = new ArrayList<>() ; ,因为它没有指定初始容量,所以它调用的是它的无参构造

1192

扫码关注云+社区