怎样理解时间序列一

jiago 王佳东
jiago 王佳东
jiago 王佳东
9
文章
0
评论
2020-04-1803:05:00 评论 1,306 2777字
摘要

零售行业中可以先预测商品的销量再订货,就能减少些损耗;电商平台预测销量,也可以监控异常或是刷单行为;在我们还不知真伪的算命都有很大的市场,若是有科学的办法来预测未来,谁不想知道呢。

我要看到数据,我要看到图形化展示的数据,我要直接看到数据表达的信息,我要看到数据可以表达的未来的信息。欲壑难填,古人诚不欺我也。

我们反复的压榨、提取数据可以提供的信息,数据它也是够意思,我们每多动点脑子,多花点时间,它却也真的可以多提供些信息来,数据不负有心人啊。

想着更多的榨取数据的价值,也就开始看些数据挖掘领域的知识。和以往一样,每学习一小段,就得总结下来,不然看过之后也会忘了十之八九了。

首选的模块,就是时间序列,毕竟它还算是比较好理解的嘛,用起来、产出价值也算是容易的。零售行业中可以先预测商品的销量再订货,就能减少些损耗;电商平台预测销量,也可以监控异常或是刷单行为;旅游/交通/酒店这些行业预测些人流量之类的,正好拿来做人力排班。在我们还不知真伪的算命都有很大的市场,若是有科学的办法来预测未来,谁不想知道呢。

在这下面,我就简单介绍下时间序列。

时间序列是怎样预测的,它不是五行八卦来算来的也不是穷举出来的,它是一种统计学方法,利用数据自身的信息来拟合函数对序列进行表达,进一步进行预测。若是往简单了说,它就是先看历史数据,然后找出个规律,再拿这个规律应用到未来,就是预测了。这种方法在很多企业已经是存在的了,即便还没有什么时间序列的概念。前年遇到的一个零售企业,就是通过过去5周的数据,每周一销售额平均值作为下周一的销售额,每周二的平均值作为下周二的销售额,以此类推算出下一整周的销售额。这就是一种移动平均的方法,这种比较简单的算法,在这家企业是很受欢迎的,也是真的给他们带了些价值。

我上面举的例子中的计算逻辑很简单,但有着预测误差的问题,比如最近温度回升了,商品的销量会受到影响,预测的值也必然是会有些误差的。那么问题来了,误差问题怎么解决。

无论是简单的移动平均方法,或是更复杂些的算法,误差总会有的,算法的不断进化以及我们尝试使用更复杂的计算都是朝着一个方向,那就是降低预测误差,一个算法是否好用,其最重要的评价标准就是它预测的准或是不准。但结果的准或不准,和算法自身的关系还真的不大,更重要的是我们是否选择了合适的算法,配置了合适的参数,若是没有在算法模型的选择和参数评估上花功夫,简单的调用了一个算法后发现它不准,从而就了定义这个算法不好是不公正的。因此若要得到相对精准的预测数据,是要花些功夫的,而必备的一个基础,就是要对算法有一定的理解。下面我就介绍两个最常用的算法。

指数平滑预测模型:指数平滑预测模型是一种确定性分析算法,理解和使用都很简单,它来源于移动平均的思路,但更近一步,移动平均方法中计算历史各个周期的数据的权重是一样的,但现实中往往是距离当前越近的周期,影响权重越大。我们先来看简单指数平滑,它的公式还是简单的,也有助于大家理解指数平滑概念,所以我就写出来:

怎样理解时间序列一

通过公式看的出来,历史数据的影响权重是越来越小的,此外,怎样理解时间序列一在0到1之间且取值越大,近期大影响越大,因此一般变化比较缓慢的序列,怎样理解时间序列一值可以小一点,而变化比较剧烈的序列,怎样理解时间序列一值就要大一些。这样看来,它已经比简单的移动平均方法考虑的更多一层了,那么理论上应该是会更准确一点了。此外,上面的这个公式是简单指数平滑,它只适合比较平的序列,既不能预测长期趋势,也不能预测带有周期效应的序列。至于为什么,可以看下面的推导:

根据上面的公式可以推导出(这个推导不难,你若是感兴趣就验证一下,不感兴趣就看结果就够了,结果是对的,我并没有骗你):

怎样理解时间序列一

那么再近一步的推导:

怎样理解时间序列一

可以看出来怎样理解时间序列一恒等于怎样理解时间序列一,因此,通过简单指数平滑预测出来的就是一条直线(如下图所示),除非用多个简单指数平滑来拼凑一个周期(例如前面我举的例子)。

怎样理解时间序列一

但是很多数据是有趋势性和周期性的,怎样预测带有趋势性和周期性的数据呢。那么引入了Holt两参数指数平滑和Holt-Winters三参数指数平滑。各模型所适用的序列情况可以参考下面的表格:

怎样理解时间序列一

如果序列中有一个趋势,每期都递增或递减r,那么一定周期后数据一定是初始值加或减这个周期倍数的r值。比如我体重每年递增3斤,十年后就增加了30斤。这个思路很简单,也是Holt两参数指数平滑的基本思想,它预测时不止考虑历史数据的权重平均,同时考虑到历史数据的趋势性。看下它的平滑公式为:

怎样理解时间序列一

可以简单理解下,公式中的r就是趋势因素的一种表达,从公式中也可以看出,趋势的计算也是指数平滑的思想,近期的趋势影响权重和之前的趋势影响权重不同,同时怎样理解时间序列一在0到1之间且取值越大,近期趋势影响越大。可以推导出Holt两参数指数平滑的预测值为:

怎样理解时间序列一

因此它的预测序列为一定比例的斜线(如下图所示)。

怎样理解时间序列一

当然现实生活中,尤其是企业业务中,很多数据都是具有周期性的,比如企业的销售额可能是以年为周期,零售商品的销售额以周为周期等等。采用Holt-Winters三参数指数平滑可以预测周期性数据。

周期性有不同类型,有累加性和累乘性,比如某地产公司每年7月份比6月份多买10w套房子,那么就属于累加的,若是每年7月份比6月份多买10%,这就是累乘的。因此对周期性数据进行预测时,要根据业务情况考虑使用加法模型还是乘法模型。我们还是看一下Holt-Winters三参数指数平滑的公式(以下分别为加法模型和乘法模型):

怎样理解时间序列一

这两个公式看起来已经不那么友好了,我们只摘取对我们理解算法有用的信息,可以看出来公式中多了s值,它的价值就在于周期性,公式中的怎样理解时间序列一为周期。我们可以这样理解,每次预测的值都是由一个周期的不同节点影响的,它将周期打散并分成多条线路预测再合并,例如将文章开头中的例子,将周一到周日打散,然后将每个周一连起来预测,再将每个周二连起来预测,公式中的怎样理解时间序列一怎样理解时间序列一就是打造周期中不同节点的不同起点,从而它便可以预测具有周期性的数据。

到这里可能会有些人看着发懵,前文不是讲了指数平滑预测模型理解和使用很简单么,为什么还是有一堆的公式。然而我并没有骗你,写了那堆公式,只是想从原理上解释它的预测方法,但是若要使用,不懂那些公式也没关系,只需要记住上文中的表格。首先用肉眼评估自己手中的数据是否有趋势性、是否有周期性,然后对号入座选择合适的参数,就可以得到预测结果了,如下图所示同时考虑趋势性和周期累成所得到的预测结果。

怎样理解时间序列一

这里只介绍了一种预测方法,它使用起来很简单,但是预测精度也是有限的,如果把预测后的残差序列做白噪声分析,很有可能发现还存在有价值的信息没有被充分提取,这就引出了我下一个想要介绍的预测模型:ARIMA模型,ARIMA模型的预测原理是分析序列自身,并且提取序列中所有相关性性信息来拟合函数,并用该函数进行预测。相比于holt-winters,ARIMA模型可以对信息实现更充分的提取,当然它的复杂度就要更高一些了,原本想在本文中都介绍一下,但是篇幅过大,留在下一篇吧。

End.

作者:jiago 王佳东fr 来源:知乎

本文均已和作者授权,如转载请与作者联系。

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: