时间序列预测的评估指标补遗

《销量预测中的误差指标分析》一文中,我们介绍了一些时间序列点预测中常用的指标。而通过在《为什么需要考虑销量的随机性?》《报童问题》《报童问题的简单解法》等文中的探讨,我们已经看到,将需求预测的方式从点预测改为概率分布预测,可以有效降低库存管理的风险,获得更大的期望收益。针对时间序列的概率分布预测,我们也已经介绍了 DeepARTransformer 等若干深度学习模型。那么,该如何评估概率分布预测的效果呢?在《概率预测的评估方法简介》一文中,我们已经介绍了一些通用的概率预测的评估指标。在本文中,我们再补充介绍几个适用于时间序列的概率预测评估指标。

1. Quantile Loss

《分位数回归》一文中,我们证明了以最小化分位数损失作为训练目标,可以得到分位数预测模型。其实反过来看,分位数损失也可以作为概率分布预测的评估指标。

ZtZ_t 表示 tt 时刻的真实值,用 Z^tρ\hat Z_t^\rho 表示概率分布预测给出的 tt 时刻的 ρ\rho 分位数,总共预测 hh 步,我们定义 Quantile Loss 为

QLρ=2t=1h(Z^tρZt)(ρI{Z^tρ>Zt}(1ρ)I{Z^tρZt})QL_\rho = 2\sum_{t=1}^{h}(\hat Z_t^\rho-Z_t)\left(\rho I_{\{\hat Z_t^\rho > Z_t\}} - (1-\rho)I_{\{\hat Z_t^\rho \leq Z_t\}}\right)

在此基础上定义 weighted Quantile Loss 为

wQLρ=QLρt=1hZtwQL_\rho = \frac{QL_\rho}{\sum\limits_{t=1}^h Z_t}

不难发现取 ρ=0.5\rho=0.5

wQL0.5=t=1hZ^t0.5Ztt=1hZt=wMAPEwQL_{0.5}=\frac{\sum_{t=1}^h|\hat Z_t^{0.5}-Z_t|}{ \sum_{t=1}^h Z_t} = wMAPE

wMAPE 是在销量点预测中常用的评估指标,现在我们知道它可以看作分位数损失的一个特例,或者反过来说,分位数损失可以看作 wMAPE 的泛化。因此,选择分位数损失作为概率分布预测的评估指标还有一个额外的好处,就是可以把点预测和概率分布预测的评估统一起来。

2. Coverage

沿用上面的符号,我们定义 Coverage 指标为

Cρ=1ht=1hI{Z^tρZt}C_\rho=\frac{1}{h}\sum_{t=1}^h I_{\{\hat Z_t^\rho \geq Z_t\}}

也就是在 hh 步预测中,真实值 ZtZ_t 小于等于预测的 ρ\rho 分位数 Z^tρ\hat Z_t^\rho 的比例。直观上来看,如果预测得越准,这个比例应该越接近 ρ\rho

事实上

EI{ZρZ}=+I{Zρz}f(z)dz=Zρf(z)dz=F(Zρ)=ρ\begin{aligned} \mathbb E I_{\{Z^\rho \geq Z \}} &= \int_{-\infty}^{+\infty} I_{\{ Z^\rho \geq z\}} f(z)\mathrm dz \\ &= \int_{-\infty}^{Z^\rho} f(z)\mathrm dz \\ &= F(Z^\rho) \\ &= \rho \end{aligned}

因此,Z^tρZtρ\hat Z_t^\rho\to Z_t^\rho,则 CρρC_\rho\to\rho

这个指标的优势是非常直观。我们可以取多个 ρ\rho,分别计算 CρC_\rho,然后作 CρρC_\rho-\rho 图,如果越靠近直线 y=xy=x,说明预测越准。

3. MSIS (Mean Scaled Interval Score)

这是 M4 比赛的指标之一,用来评估预测区间的好坏。其定义为

MSIS=1ht=1h(U^tL^t)+2α(L^tZt)I{Zt<L^t}+2α(ZtU^t)I{Zt>U^t}1nmt=m+1nZtZtmMSIS = \frac{\frac{1}{h}\sum_{t=1}^h(\hat U_t-\hat L_t)+\frac{2}{\alpha}(\hat L_t-Z_t)I_{\{Z_t<\hat L_t\}} +\frac{2}{\alpha}(Z_t-\hat U_t)I_{\{Z_t>\hat U_t\}} }{\frac{1}{n-m}\sum_{t=m+1}^n|Z_t-Z_{t-m}|}

其中 α\alpha 是显著性水平,U^\hat UL^\hat L 是预测区间的上界和下界。举例来说,我们给出了 95% 预测区间的上下界,此时 α=0.05\alpha=0.05

我们先看分子,第一项惩罚的是上下界之间的间隔,第二项惩罚的是真实值低于下界的情况,第三项惩罚的是真实值高于上界的情况。单看分子很好理解,直观上就是要用尽可能窄的区间把真实值“包”进去。

那么分母是个什么玩意儿呢?它实际上借鉴自点预测的一种评估指标,MASE (Mean Absolute Scaled Error)。

MASE=1ht=1hZ^tZt1nmt=m+1nZtZtmMASE = \frac{\frac{1}{h}\sum_{t=1}^h|\hat Z_t-Z_t|}{\frac{1}{n-m}\sum_{t=m+1}^n|Z_t-Z_{t-m}|}

MASE 实际上是用测试集上的 MAE 除以一个 Naïve 预测模型在训练集上的 MAE。所谓的 Naïve 模型,有两种情况,对于非周期性序列,则预测 Z^t+1t=Zt\hat Z_{t+1|t}=Z_t;对于周期性序列,设周期为 mm,则预测 Z^t+1t=Ztm\hat Z_{t+1|t}=Z_{t-m}。MASE 的意义在于,所有的模型都来跟 Naïve 模型比一比,看看能比它好出多少。

总之需要注意的是,MASE 和 MSIS 的分母是用训练集来计算的。

4. CRPS (Continuous Ranked Probability Score)

这个指标我们在《概率预测的评估方法简介》中已经介绍过了,它也是概率预测中使用最广泛的指标之一,它的定义如下:

CRPS(Ff,Fo)=+[Ff(x)Fo(x)]2dxCRPS(F^f, F^o) = \int_{-\infty}^{+\infty}\left[F^f(x)-F^o(x)\right]^2\mathrm dx

其中 FfF^f 是预测分布的 CDF,FoF^o 是观测值的 CDF。由定义可知,CRPS 衡量的是预测分布和真实分布的差异,当预测分布与真实分布完全一致时,CRPS 为零。预测分布过于集中、过于分散,亦或是偏离观测值太远都会导致 CRPS 增大。

问题在于,在我们的场景下,每天的销量只会发生一次——我们不能看到某一件商品在多元宇宙中的销量——无法给出观测值的 CDF。这种情况下,可以用下面的式子来估算

CRPS=1ht=1h[Ft(x)ϵ(xZt)]2dxCRPS = \frac{1}{h}\sum_{t=1}^{h}\int_{-\infty}^{\infty}\left[F_t(x)-\epsilon(x-Z_t)\right]^2\mathrm dx

其中

ϵ(t)={0,t<01,t0\epsilon(t)= \begin{cases} 0, \qquad t < 0\\ 1, \qquad t\geq 0 \end{cases}

为单位阶跃函数。

前面已经提到分位数损失可以看作 wMAPE 的泛化。事实上,这种定义下的 CRPS 也可以看作是点预测中常见的 MAE 指标的泛化,这也是为什么我们要在这里炒冷饭。如果我们输出的仅仅是一个点预测 Z^t\hat Z_t,则它的 CDF 也只能使用单位阶跃函数近似为 Ft(x)=ϵ(xZ^t)F_t(x) = \epsilon(x-\hat Z_t)。代入到 CRPS 的定义中,可以发现

CRPS=1ht=1h[ϵ(xZ^t)ϵ(xZt)]2dx=1ht=1hmin(Z^t,Zt)max(Z^t,Zt)12dx=1ht=1hZ^tZtMAE\begin{aligned} CRPS &= \frac{1}{h}\sum_{t=1}^{h}\int_{-\infty}^{\infty}\left[\epsilon(x-\hat Z_t)-\epsilon(x-Z_t)\right]^2\mathrm dx\\ &= \frac{1}{h}\sum_{t=1}^{h}\int_{\min(\hat Z_t, Z_t)}^{\max(\hat Z_t, Z_t)}1^2\mathrm dx\\ &= \frac{1}{h}\sum_{t=1}^{h}|\hat Z_t - Z_t|\\ &\equiv MAE \end{aligned}

CRPS 评估的是分布整体的情况,而不是某个分位数,这是它的优势。这也意味着模型必需能够输出累积分布函数。与分位数损失类似,CRPS 也可以将点预测和概率分布预测的评估统一起来,但是 MAE 并不像 wMAPE 应用得那么频繁。

参考文献

  1. Salinas D, Flunkert V, Gasthaus J, et al. DeepAR: Probabilistic forecasting with autoregressive recurrent networks[J]. International Journal of Forecasting, 2019.
  2. M4 Competitor’s Guide
  3. Mean absolute scaled error - Wikipedia