【Python算法】--非平稳时间序列分析

举报
Micker 发表于 2020/04/14 14:12:09 2020/04/14
【摘要】 【Python算法】--非平稳时间序列分析1.非平稳时间序列分析  上节介绍了对平稳时间序列进行分析的方法。实际上,在自然界中绝大部分序列都是非平稳的。因而对非平稳序列的分析更普遍、更重要,创造出来的分析方法也更多。  对非平稳时间序列的分析方法可以分为确定性因素分解的时序分析和随机时序分析两大类。  确定性因素分解的方法把所有序列的变化都归结为4个因素(长期趋势、季节变动、循环变动和随机波...

【Python算法】--非平稳时间序列分析

1.非平稳时间序列分析
  上节介绍了对平稳时间序列进行分析的方法。实际上,在自然界中绝大部分序列都是非平稳的。因而对非平稳序列的分析更普遍、更重要,创造出来的分析方法也更多。
  对非平稳时间序列的分析方法可以分为确定性因素分解的时序分析和随机时序分析两大类。
  确定性因素分解的方法把所有序列的变化都归结为4个因素(长期趋势、季节变动、循环变动和随机波动)的综合影响,其中长期趋势和季节变动的规律性信息通常比较容易提取,而由随机因素导致的波动则非常难确定和分析,对随机信息浪费严重,会导致模型拟合精度不够理想。
  随机时序分析法的发展就是为了弥补确定性肉素分解方法的不足。根据时间序列的不同特点,随机时序分析可以建立的模型有ARIMA模型、残差自回归模型、季节模型、异方差模型等。 本节重点介绍使用ARIMA模型对非平稳时间序列进行建模的方法。

2.差分运算
  1.p阶差分
  相距一期的两个序列值之间的减法运算称为一阶差分运算。

  2.步差分
  相距k期的两个序列值之间的减法运算称为k步差分运算。

3.ARIMA模型
  差分运算具有强大的确定性信息提取能力,许多非平稳序列差分后会显示出平稳序列的性质,这时称这个非平稳序列为差分平稳序列。对差分平稳序列可以使用 ARMA 模型进行拟合。ARIMA 模型的实质就是差分运算与 ARMA 模型的组合,掌握了 ARMA 模型的建模方法和步骤以后,对序列建立 ARIMA 模型是比较简单的。
  差分平稳时间序列建模步骤如图所示:

image.png

  例:就餐饮企业而言,经常会碰到如下问题: 由于餐饮行业是生产和销售同时进行的,因此销售预测对于餐饮企业十分必要。如何基于菜品历史销售数据,做好餐饮销售预测,以便减少莱品脱销现象和避免因备料不足而造成的生产延误,从而减少菜品生产等待时间,提供给客户更优质的服务,同时可以减少安全库存量,做到生产准时制,降低物流成本。
  餐饮销售预测可以看作是基于时间序列的短期数据预测,预测对象为具体菜品销售量。 常用按时间顺序排列的一组随机变量X1, X2, … , Xt来表示一个随机事件的时间序列,简记为{Xt};用x1,x2, … , xn或{xt , t = 1,2, … , n}表示该随机序列的 n 个有序观察值,称之为序列长度为 n 的观察值序列。 称之为序列长度为n的观察值序列。
  应用上述理论,可对2015/1/1~2015/2/6某餐厅的销售数据进行建模。
  具体数据如图所示:

image.png

1.检验序列的平衡性
  ①原始序列的时序图:

image.png

  时序图显示该序列具有明显的单调递增趋势,可以判断为是非平稳序列。

  ② 原始序列的自相关图:

image.png


  自相关图显示自相关系数长期大于零,说明序列间具有很强的长期相关性。
  ③ 原始序列的单位根检验,如图所示:

image.png

  单位根检验统计量对应的p值显著大于0.05,最终将该序列判断为非平稳序列(非平稳序列一定不是白噪声序列)。

  2.对一阶差分后的序列再次做平稳性判断
  ① 一阶差分之后序列的时序图:

image.png

  ② 一阶差分之后序列的自相关图:

image.png


  一阶差分之后序列的单位根检验,如图所示:

image.png

  结果显示,一阶差分之后的序列的时序图在均值附近比较平稳的波动、自相关图有很强的短期相关性、单位根检p值小于0.05,所以一阶差分之后的序列是平稳序列。
  对一阶差分后的序列做自噪声检验,如图所示:

image.png

  输出的p值远小于0.05,所以一阶差分之后的序列是平稳非白噪声序列。


  3.对一阶差分之后的平稳非白噪声序列拟合ARMA模型
  下面进行模型定阶。模型定阶就是确定p和q。 第一种方法:人为识别。经过一节差分后自相关图显示出一阶截尾,偏自相关图显示出拖尾性,所以可以考虑用MA(1)模型拟合一阶差分后的序列,即对原始序列建立 ARIMA(0,1,1)模型。

image.png

  第二种方法:相对最优模型识别。 计算ARMA(p,q),当p和q均小于等于3的所有组合的BIC信息量,取其中BIC信息
量达到最小的模型阶数。计算完成BIC矩阵如下:

432.068472   422.510082  426.088911     426.595507 
423.628276   426.073601  NaN            NaN 
426.774824   427.395787  430.709154     NaN 
430.317524   NaN         NaN            436.478109

  p值为0、q 值为1时最小BIC 值为:430.1374。p、q 定阶完成。 用AR(1)模型拟合一阶差分后的序列,即对原始序列建立ARIMA(0,1,1)模型。虽然两种方法建立的模型是一样的,但模型是非唯一的,可以检验 ARIMA(1,1,0)和 ARIMA(1,1,1),这两个模型也能通过检验。

  4.对一阶差分后的序列拟合AR(1)模型进行分析 模型检验。残差为白噪声序列,p 值为:0.627016。 参数检验和参数估计如图所示:

image.png

  5.ARIMA模型预测 应用 ARIMA(0,1,1)对表某餐厅的销售数据做为期5天的预测,结果如图所示:

image.png

  需要说明的是,利用模型向前预测的时期越长,预测误差将会越大,这是时间预测的典型特点。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。