分类
加密貨幣去哪裡買

介绍时间序列数据和常见的金融分析方法

预测时间序列和回归bowerman pdf下载 is a great book that will not leave you indifferent after reading.

时间序列预测的常见方法及思考

基于统计学的传统时间序列预测方法,优点是复杂度低、计算速度快。但是有其局限性,通过对业界方法的调研与自己的实验,我们发现由于真实应用场景的复杂多样性(现实世界的时间序列往往受到各种不同因素的限制与影响,而难以预测),比如受到营销计划、自然灾害等的影响,传统的单一统计学模型的准确率相对来说会比机器学习差一部分,而机器学习模型或者更复杂的 ensemble 集成模型会有更好的效果。但传统时间序列预测模型也有其重要的意义,比如说:

  • 可以作为预测的baseline model,为项目提供一个准确率的基准线,来帮助评估其他模型的提升。
  • 前置清洗作用,时序模型由于其较好的可解释性,可以帮助剔除一些异常值,比如因服务器故障或者业务线逻辑调整产生的异常值。
  • 作为集成模型中的一块,参与时序集成模型的训练。
  • 可以提供一个预测结果的合理的范围,因为话务量通常不会短时间内激增。使用这个合理的范围,在黑盒模型最后输出结果时,帮忙进行后置校准,从而使预测系统更加稳定。

2.3 机器学习模型

一般采用的是 xgboost 或者 lightgbm 的方法,现在业界也被广泛应用,这里就不多做介绍了。树模型的一个好处就是,相对于以上的方法,能更方便地添加一些 category 类的特征比如:是否季节末、是否公共价格、是否营业时间等。

  • 离散类时间特征:年月日时分数,周几,一年中的第几天,第几周,一天中的哪个时间段等
  • 判断类时间特征:是否调休,是否周末,是否公共假期等
  • 滑窗类时间聚合特征:过去X天平均值,过去X天方差,过去X天最大值,过去X小时四分位数,过去X天偏态系数等
  • 其他时序模型的预测值作为特征:ARIMA、SARIMA、指数平滑等
  • 其他相关业务线数据的引入:比如对于售后业务线,引入售前业务线/预定业务线等数据,帮忙进行售后业务线的预测

2)神经网络模型

常见的利用神经网络技术来做时间序列预测的方法有有 CNN、RNN、LSTM、GRU 等。

相对于传统的树模型需要人工构建相关模型特征,神经网络模型通常需要喂入大量的数据来进行训练,因此如果同类时序的数据量够多(有够多彼此间相关性较强的时序),那么训练一个通用型的端对端的神经网络预测有时也有不错的效果,比如使用 LSTM 一方面可以较容易地整合外部变量,另一方面 LSTM 有能较好地自动提取时序特征的能力。

在某条业务产线上,我们针对多城市的数据进行建模,训练了一个灵活单一通用的端对端 LSTM 时间预测模型。具体在训练时,输入数据一方面包括了时间序列相关的数据,另一方面也包括了天气、节假日等外部变量,同时使用了 encoder-decoder 来帮助提取时序特征,在 T+14 的主要大城市时序预测上有较大的提升,达到日 95%+的准确率。

三、一些经验与思考

1)训练测试数据的划分

2)一线业务人员经验的使用

在做一些时间序列预测场景时,我们发现一线业务人员经验是极其宝贵的,比如说一些抚平/剔除业务异常数据的经验,他们会知道在历史数据里哪些时间段的数据是异常的原因是什么,比如各种事件会对不同的业务线产生什么样的影响、一些预测偏差较大的原因可能是什么。这些宝贵的经验可以转化成时间序列历史数据清洗的规则或者是一些时间序列数据校准的 Knowledge Base。

3)利用能反映未来的信息

4)如何保证输出结果的稳定性

5)重新训练模型的频率

通常,当有新数据获得时,重新训练模型来进行预测,整体来说在每个时间戳能给出更好的预测结果。如果生产上准备采取这种思路的话,在训练的时候也要用相同的重新训练的方法,来评估哪种模型效果最好,即采用 sliding window / expanding window 的方法去在每个时间戳重新训练预测和记录误差来进行模型评估。当然这样计算量会比较大,比较适合单一产线并且对准确率较为看中的场景。