【时间序列】如何建模时间序列的不确定性?

基础的时间序列预测任务的目标是给定历史序列,预测未来每个时间点的具体值。这种问题定义虽然简单直接,但是也面临着一些问题。在很多应用场景中,我们不仅希望能预测出未来的具体值,更希望能预测出未来取值不确定性,例如一个概率分布或者取值范围。在很多应用场景中,未来的时间序列本身就具有很强的不确定性,如果能预测出一个取值区间,会对业务决策带来更大的帮助,让我们对未来的最好情况和最差情况心里有个数。

对时间序列进行概率分布或区间估计的方法主要有两种,这篇文章给大家详细介绍一下这两种方法,以及采用这两种方法的经典时间序列预测论文。

1

方法1:建模概率分布

第一种方法是直接对未来时间序列的概率分布进行建模,其中DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks(2017)是这种建模方法的典型工作,采用RNN对时间序列进行概率分布建模。首先假设,待预测的时间序列在每个时间步的取值都服从某种分布,DeepAR对于实值时间序列采用高斯分布的假设。因此,问题转换为,预测每个时间步高斯分布的均值和方差。在模型实现上,RNN在每个时刻输出的隐状态接两个全连接层,第一个全连接用来拟合当前时刻的均值,第二个全连接层拟合的是当前时刻的方差。

202fd4bd22cf0a18a29d35bb4346ec4b.png

在获取到模型预测的均值和方差后,我们可以利用极大似然估计作为损失函数优化模型,这其实就是一个根据观测值利用极大似然方法进行参数估计的过程。这个过程可以用下面的公式表示,其中h代表RNN在每个时刻输出的隐状态向量,w和b对应全连接参数。

700cf1cce34332d8129ce856d9095000.png

后来的一些方法,例如Deep State Space Models for Time Series Forecasting(2018)等,也是基于这种概率估计的思路,模型拟合均值和方差,进而得到时间序列的概率分布。在预测结果的时候,模型同样预测的是高斯分布的均值和方差,利用每个时间步的高斯分布预测结果,我们就可以得到时间序列的一个预测区间范围,例如取某个分位数,像下面这张图那样。

5180f0f552c7f53e8f52b6bfe3cdb880.png

下面结合DeepAR的具体代码来看一下具体实现方法。注意红框部分,在得到隐状态(hidden_permute)后,会经过两个独立的全连接层,将隐状态分别映射成两个标量mu和sigma,mu对应均值,sigma对应方差。其中softplus激活函数将预测结果映射成>0的数,以满足高斯分布方差的特性。

a77bf7a413f9d6e79cdad79957e0f8fa.png

2

方法2:分位数回归

第二种方法基于分位数回归(quantile regression)的思路,在A Multi-Horizon Quantile Recurrent Forecaster(2018)中开始被结合深度学习被应用到时间序列预测任务中。分位数回归相比一般的均值回归,拟合的是观测值分位数和变量之间的关系。在RNN等深度学习模型里,可以通过引入quantile loss,让模型拟合分位数。Quantile loss的公式如下:

62009441f8ecc32ff62a299e80d3d589.png

其中q是一个参数,控制着模型拟合多少分位数。当q=0.5时,quantile loss就变成了MAE损失,直接拟合均值。在实际应用中,可以取多组q,分别拟合不同的分位数,每一组q对应一个预测结果,就可以得到多组不同分位数的预测结果。例如我们关心0.5、0.7、0.9三种分位数,并且模型的结构是RNN。那么只需要在每个隐状态后接一个output layer映射到一个3维向量,向量中每个元素对应一个分位数预测结果,代入上面loss函数即可。

Quantile loss这种方法相比对概率分布建模,优点在于简单易用,相当于让模型直接输出预估区间,因此后续很多论文都采用了该方法来预测时间序列区间,例如Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting(TFT,2019)这篇谷歌发布的时序Transformer模型,就将quantile regression作为多步预测的建模方法。下图是TFT的网络结构,可以看到在红框部分dense输出层针对每组q生成一个对应分位数的预测结果。

20888f694d278c9571c0f35a63ab3837.png

3

总结

预测时间序列的概率分布、区间是在实际应用中比较常用的技术,对概率分布和区间的预估能让模型输出更多信息,辅助我们进行决策和风险控制。相比只预测一个值,概率分布和区间的预估既能给出时间序列未来走向,也能让描绘出未来的不确定性,值得在实际工作中试一试这种预估方法。

推荐阅读:

我的2022届互联网校招分享

我的2021总结

浅谈算法岗和开发岗的区别

互联网校招研发薪资汇总

2022届互联网求职现状,金9银10快变成铜9铁10!!

公众号:AI蜗牛车

保持谦逊、保持自律、保持进步

f20ad871f3686061a65fde271de44a3d.png

发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)

发送【1222】获取一份不错的leetcode刷题笔记

发送【AI四大名著】获取四本经典AI电子书

猜你喜欢

转载自blog.csdn.net/qq_33431368/article/details/125213648
今日推荐