答疑:时间序列预测中,单步预测与多步预测的区别?

最后更新于:2024-02-17 16:05:11

本篇是针对等间隔采样的一维时间序列预测而言的。

一、单步预测与多步预测的概念

所谓单步预测,就是每一步预测都使用了全部真实值。

比如总共有100个数据,使用前80个训练模型,后20个验证模型精度。

预测第81个数据的时候,理所应当是用的前80个真实数据训练的模型。

那么预测第82个数据的时候呢?有两类策略:

(1)一种是用1~81的真实数据作为输入;

(2)另一种是用1~80的真实数据加上一步预测得到的预测值作为输入。

前一种策略就是单步预测,第二种是多步预测。

求第83个数据的时候也一样,单步预测是使用的真实值进行迭代的,多步预测使用的预测值迭代。

以此类推。

二、单步预测与多步预测的特点

这就导致了两个区别:

(1)多步预测的预测误差会随着步数的增加而累积,多步预测的结果也会越来越不准。但是单步预测很多时候不会有这种误差累积。

(2)多步预测可以用于预测“不存在”的数据,比如上述例子中,如果想预测第101到120个数据点,那么就只能使用多步预测了。

单步预测可能会给人一种感觉:现实的场景中,怎么会知道真实值是多少,使用单步预测是不是不能说明问题?

但其实不是的。一来很多场景下是不做长期预测的,单步预测图可以进行该方法短期预测的多数据点验证;二来如果要对比几种预测方法的优劣,保证几种方法都使用单步预测的策略,做横向比较是可以的。还有很重要的一点,单步预测出图效果往往比多步好很多。

所以在你的研究中,具体使用单步还是多步,综合考虑以上几点考虑就好。

三、关于软件中三种预测模式的介绍

你看到的预测模式应该有三种:

(1)全部数据用于多步预测:这就是上述说的,要预测“不存在”的数据。在软件中指定想预测的长度,点击开始就可以了。

(2)划分“训练-测试集”的多步预测:大致相当于上述举的例子,即将全部数据按照一定比例划分成训练集和测试集,然后多步预测出于测试集相同长度的数据,并画图对比,计算若干评估指标。这种模式下结果往往并不太理想。

(3)划分“训练-测试集”的单步预测:将全部数据按照一定比例划分成训练集和测试集,然后单步预测出于测试集相同长度的数据,并画图对比,计算若干评估指标。这种模式下预测精度较高,在某些趋势性强的数据中,预测结果可能会表现出“滞后性”。