时间序列预测是一个发展历史悠久的技术领域,传统的统计学算法(e.g. ARIMA, ETS, GARCH)以及近年来的机器学习(e.g. 广义线性模型,xgboost)、深度学习算法(e.g. LSTM,CNN,Transformer) 都可以用于时间序列预测,不同方法各有长处和短处。
传统的统计学习方法需要结合时序领域特有的统计学分析(e.g. 自相关系数ACF、偏相关系数PACF、平稳性检验等),将数据通过差分的方式转换成平稳序列后,再通过线性回归的方式建模。传统统计学算法的长处在于结合了大量的专家对于时间序列的知识,因此不需要大量样本数据即可构建模型。短处在于需要从业人员对时序相关的统计学有深入的理解,并且当存在非线性特征等复杂情况时,需要进行手工特殊处理,不利于规模化预测。
机器学习、深度学习算法将时序预测问题作为回归问题处理,通过选择合适的特征和模型结构,基于训练集数据构建模型。机器学习、深度学习算法的长处是不需要结合时序领域特有的统计学分析,算法可以从训练集中总结规律,并且使用模型不是时序领域独有的。对于数据科学的从业人员更友好,短处是需要基于大量样本数据才可训练模型,并且模型通常不具备可解释性(广义线性模型除外)。当前商业、工业领域往往存在海量数据,对自动化、准确性的要求比可解性的要求更高。
时间序列预测在供应链、金融、工业等众多领域有着广泛的应用。与CV、NLP等标准化应用不同,时间序列预测项目与业务场景结合紧密。预测对象、颗粒度、前置期、准确性指标等对于构建模型最关键的因素往往并非一目了然,只有通过对不同场景的需求进行深入分析才能找到合适解决方案。因此从业者不但需要掌握各种方法的原理,还需要能够结合业务具体使用场景分析项目的需求,找到合适的算法。这对从业者的能力提出了很高的要求,也是业内时间序列预测资深专家短缺的原因。
接下来推荐几篇经典论文供大家学习复现。帮你快速梳理时序预测算法的种类的原理。
1、基于历史数据对未来做出预测
Forecasting at ScaleDeep AR: Probabilistic Forecasting with Autoregressive Recurrent Networks
※推荐理由:
1) Prophet是Facebook开发的时间序列预测软件包,在业内具有广泛的应用。《Forecasting at Scale》介绍了Prophet的算法原理。
2)Deep AR…一文提出了一种基于LSTM的时间序列预测算法,适用于高通量时间序列预测。该方法不仅能给出预测结果,还能给出结果的置信区间。