1.3 时间序列预测与其他回归任务的差异
你可能遇到过这样的回归任务,在这些任务中,你必须在给定一组特征集的情况下预测一些连续目标。乍一看,时间序列预测似乎是一个典型的回归问题:我们有一些历史数据,并且希望建立一个数学表达式,将未来值表示为过去值的函数。然而,在一些与时间无关的场景中,时间序列预测和回归之间存在一些关键差异,因此我们需要在研究第一种预测技术之前了解这些差异。
1.3.1 时间序列有顺序
第一个要记住的概念是,时间序列有一个顺序,我们在建模时不能改变这个顺序。在时间序列预测中,我们将未来值表示为过去值的函数。因此,我们必须保持数据有序,这样才不会违反这种关系。
此外,保持数据有序是有意义的,因为你的模型只能使用从过去到现在的信息——它不知道未来会观测到什么。回想一下你的露营之旅,如果你想预测星期二的气温,那么你不可能使用星期三的相关信息,因为从模型的角度来看,它是未来的。你只能使用星期一及其之前的数据。这就是在整个建模过程中数据的顺序必须保持不变的原因。
机器学习中的其他回归任务通常没有顺序。例如,如果你的任务是根据广告支出预测收入,那么何时进行特定金额的广告支出并不重要。相反,你只需将广告支出金额与收入相关联。事实上,你甚至可以随机打乱数据以使你的模型更加健壮。这里,回归任务是简单地推导出一个函数,给定广告花费的金额,该函数就会返回收入的估计。
另外,时间序列是按时间索引的,并且必须保持该顺序。否则,你将使用没有预测时间的未来信息来训练模型,这在很多正式的术语中被称为前瞻偏差。因此,所得到的模型是不可靠的,当你对未来进行预测时,该模型很可能会表现不佳。
1.3.2 时间序列有时没有特征
在不使用除时间序列本身之外的特征的情况下,可以进行时间序列预测。
作为数据科学家,我们习惯于拥有包含许多列的数据集,每一列都代表我们目标的一个潜在预测因子。例如,考虑基于广告花费预测收入的任务,其中收入是目标变量。我们可以使用Google、Facebook和电视等广告上花费的金额作为特征。利用这三个特征,我们将建立一个回归模型来估计收入。
然而,对于时间序列,通常会给出一个简单的数据集,其中包含一个时间列和该时间点的值。在没有任何其他特征的情况下,我们必须学习使用时间序列的过去值来预测未来值的方法。这是移动平均模型(第4章)或自回归模型(第5章)开始发挥作用的时候,因为它们是将未来值表示为过去值的函数的方法。这些模型是更复杂模型的基础,这些模型允许你考虑时间序列中的季节性模式和趋势。从第6章开始,我们将逐步建立一些基准模型来预测更复杂的时间序列。