答疑:时间序列预测中,单步预测与多步预测的区别?
最后更新于: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)划分“训练-测试集”的单步预测:将全部数据按照一定比例划分成训练集和测试集,然后单步预测出于测试集相同长度的数据,并画图对比,计算若干评估指标。这种模式下预测精度较高,在某些趋势性强的数据中,预测结果可能会表现出“滞后性”。