之前一直在看时间序列预测方法的文献,最近终于有点头绪了,然后就花了些时间来做一下整理。时间序列预测方法可分为传统的,基于机器学习的和基于深度学习的,以下每一方面都列举了几个比较经典的模型算法。
目录
1 背景
现实生活中,农业、商业、气象、军事和医疗等领域每天都会产生大量的数据。例如,金融领域股票价格随时间的走势,电商行业每日的销售额,旅游行业随着节假日周期变化的机票酒店价格等。
我们称这种不同时间收到的,描述一个或多种特征随着时间发生变化的数据,为时间序列数据(Time Series Data)。
通俗地说,时间序列是按照时间排序的一组随机变量,它通常是在相等间隔的时间段内,依照给定的采样率对某种潜在过程进行观测的结果。时间序列数据通常是一系列实值型数据,用 表示时间。
总之,目前时间序列数据正以不可预测的速度几乎产生于现实生活中的每一个应用领域。
时间序列数据的研究方法主要包括分类、聚类和回归预测等方面,本文重点讨论时间序列预测方法。现实生活中的时间序列数据预测问题有很多,包括语音分析、噪声消除、商品销售、气象研究以及股票市场的分析等,其本质主要就是通过一种或者多种维度的数据本身内在与时间的关联特性,利用历史的数据挖掘出这种规律并对未来做出预测这么一件事情。
本文主要介绍时间序列预测方法,第2节主要描述传统的时间序列预测方法,第3节主要介绍基于机器学习的时间序列预测方法,第4节主要介绍基于深度学习的时间序列预测方法,最后总结全文。
2 传统的时间序列预测方法
传统的时间序列预测方法主要是针对具体数据,设计数学(形态函数)模型,捕捉时序特征规律完成预测工作。其预测的针对性强,鲁棒性好,可解释,但是学习自由度低,泛化性差。
2.1 ARIMA
ARIMA模型也被称为 Box-Jenkins 模型,是由Box和Jenkins提出的一著名时间序列预测方法,它是差分自回归滑动平均模型(Auto-Regressive Integrated Moving Averages)的首字母缩写。主要应用于单变量、同方差场合的线性模型。该模型可以处理非平稳序列,主要思想是先对非平稳序列进行差分,使之变为平稳序列,然后再用ARMA模型来拟合差分后的序列。
ARIMA模型有三个主要参数:
Number of AR (Auto-Regressive) terms (p): 现在点使用多少个过往数据计算。AR条件仅仅是因变量的滞后。如:如果P等于5,那么预测x(t)将是x(t-1)…x(t-5)。
Number of MA (Moving Average) terms (q):使用多少个过往的残余错误值。MA条件是预测方程的滞后预测错误。如:如果q等于5,预测x(t)将是e(t-1)…e(t-5),e(i)是移动平均叔在第i个瞬间和实际值的差值。
Number of Differences (d):为时间序列成为平稳时所做的差分次数。有非季节性的差值,这种情况下我们采用一阶差分。