时间序列预测可以称得上是一个及其普遍的一个算法问题,解决的方法也比较成熟,你可能第一时间想到的就是AR模型,以及各种自回归模型。然后xgboost似乎也能做时序问题,只是将原有的问题当成回归问题即可,某种意义上可解释性也能够得到一定的满足。再然后就是GRU、LSTM这类循环神经网络,借鉴自NLP中使用深度模型来解决时序预测问题。除了以上的这类方法,你还能知道那些方法吗?接下来的这个系列一定能让你受益匪浅。
时序问题的分类
看起来时序问题就是把历史的序列放到模型中,然后模型根据学习到的趋势来预测接下来应该的变化,时序问题有着比较详细的分类。先说比较大众的分类方法。
步分类
这种分类方法是按预测步长区分,可以分为单步预测和多步预测,简单来说就是一次预测未来一个时间单元还是一次预测未来多个时间单元的区别。
输入变量分类
这种分类方法是根据输入来划分的,例如预测销量预测时候,如果你只使用历史销量的变化数据,那么就是自回归预测,如果你想接受天气、节日等其他相关变量,则称为使用协变量进行预测。
输出结果分类
按输出结果区分,可以分为点预测和概率预测,很多模型只提供了点预测而不提供概率预测。点预测是指预测接下一个时间片的真实值,如果是概率预测,实际上是输出接下来一个时间片输出值的一个概率分布,其实在实际的场景中也是比较常会用的。
概率预测
概率预测可以拆分为下面几种预测方式。
- 概率预测
- 分位数预测
- 区间预测
概率预测
概率预测就是输出预测结果的分布的超参数,例如高斯分布就给出均值和方差
区间预测
通常先获得确定性预测的结果,然后基于确定性预测总体误差的正态分布假设来获得最终的概率预测结果。
当你预测完成以后,就知道了总体的预测误差,以及这个误差的期望和方差, 那么就可以使用当前预测值加减误差期望变成一个区间。
你可以训练一个模型,预测模型的误差,每次预测真实,并预测误差,然后通过加减误差也可以获得一个区间的预测。
分位数预测
常用分位数回归实现,决策者可根据需求选取特定的分位数得到概率预测结果,分位数预测不需要分布假设。
所谓的分位数回归其实是在给定的X下,会有对应的样本分布,这个样本分布的各个分位数的值,模型输出的结果。
当然也会有下面一些应用的场景。
定价策略:在零售业中,你可以使用分位数回归来估计不同价格点下的销售预期。这有助于确定商品的定价策略,以最大程度地提高利润。
如果是多分位数的预测,其实就不要对输出分布有任何假设,能够适配更多的场景。
目标个数区分
按照目标个数区分可以分为一元、多元和多重时间序列预测。举个例子,使用历史的销售量预测未来1天的销售量为一元时间序列预测,使用历史的进店人数、销售量、退货量预测未来1天的进店人数、销售量、退货量(预测目标有三个)为多元时间序列预测。使用历史的红烧牛肉面、酸菜牛肉面、海鲜面的销售量预测未来1天的红烧牛肉面、酸菜牛肉面、海鲜面的销售量(预测目标有三种)为多重时间序列预测。是不是多元和多重看起来有点一样呀,其实是这样的, 多重想表达的是多个序列之间是相互独立的,而多元想表达的是多个序列之间是相互影响的。其实区分完以后,你的模型设计就比较清晰了,如果使用卷积类的模型,卷积核的设计一定是多重更关注1×N的卷积,而多元用N×N的卷积。
通过上面的描述,大致把整个时序模型的分类都讲清楚啦,接下来咱们来一个概述,先看看时序问题中还有那些比较异常的问题需要特殊注意,以及相关一些方法都有哪些?
时序模型的几类典型问题
对于时序模型的使用场景一般分为以下的大类,每一类的模型选型都不太一样,这里就要看你知识面的广度啦。你会发现我都没有提LSTM这类模型,期望拓宽你的知识面。
大规模时序联合建模
这类问题主要有两个问题,
- 一个是大规模时序问题如何保障模型性能,提升模型构建和运行的速度。
- 新的时序持续出现,如何在数据不足的情况下进行预测
面对这样的问题,一般模型的选型是DeepAR,N-BETAS、LSTNet、FFN(feed forward neural network)、NP/ANP、BiDA、LightGBM/xgboost、TCN
多元混合复杂时序建模
这类时序问题一般面临的问题是协变量与外生因子对提升预测性能非常重要,如何有效的处理这类信息。
这类问题一般的模型选型是LSTNet、FFN、TCN、DeepFactor、DeepVar、LassoCV、NPPS
概率预测能力
时序预测问题往往存在数据的信噪比低,内在规律复杂,如何刻画不确定性等问题。
这类问题一般模型的选型是DeepAR、AP/ANP、DeepFactor、DeepState、DeepVar、Prophet、NPPS。
异步事件序列建模
这类问题一般是多维度异步事件,如用户行为、故障日志等。相互影响并在连续时间域上呈现复杂的动态规律,如何有效的建模此类重要问题。
这类问题一般模型选型有NPPS(Neural point processes)。
可解释性建模
在长周期的时序问题上,往往需要对预测结果有可解释性,那么这类问题的关键就是可解释性的问题。
这类问题的模型选型有N-BETAS、LightGBM/xgboost、Prophet
总而言之
面对上面这一系列的问题,你可能会有一些手足无措,没有关系,在后面的博文中会一一的解释每个模型,相信读到这里你已经对时序预测有了一个更加全面的认知啦,别遇到问题就是自回归啦。