神经网络时间序列预测的加权窗口方法
1. 引言
预测是决策的重要组成部分,决策的成功在很大程度上取决于预测的质量。定量预测主要有两种方法:因果方法和时间序列方法。因果方法通过建立一组预测变量与待预测标准变量之间的关系进行预测;时间序列方法则利用同一标准变量的过去或滞后值作为所有潜在因果因素的替代,建模这些过去观测值与未来值之间的关系。本文将重点探讨时间序列预测方法。
时间序列是按时间周期顺序采集的观测值序列,用于时间序列预测的模型有很多,常见的如下:
- 朴素或随机游走:使用最近的观测值作为预测值。
- 移动平均:使用固定数量的过去数据点的平均值作为预测值。
- 指数平滑:一种加权移动平均方法,对近期值的权重高于过去值。
- 自回归(AR):一种线性回归技术,用于估计时间序列中观测值之间的关系。
- 自回归积分移动平均(ARIMA):一种通用的线性系统,用于建模时间序列观测值和随机冲击之间的关系。
- 双线性:一种简单的非线性模型。
- 阈值自回归:一种特殊的非线性 AR 模型。
- 自回归条件异方差(ARCH):一种用于非恒定条件方差的参数非线性模型。
- 人工神经网络(ANNs):基于生物神经系统的自适应模型,能够表示非线性关系。
其中,前五种模型是线性的,其余是非线性的。大多数模型本质上是参数化的,即在从数据构建模型之前需要假设模型形式。因此,了解数据集和潜在的数据生成过程对于成功应用这些模型进行预测至关重要。
人工神经网络是时间序列预测领域中受到越来越多关注的新方法。它试图模拟生物神经网络或大脑的部分功能,能够表示非线性系统的输入 - 输出关系,并且对噪声具有一定的免疫力。非参数和数据驱动的特性使其在一般预测应用中具有价值。
神经网络预测的一个主要问题是确定合适的数据量,以捕捉时间序列中潜在过程的动态特性。这涉及两个方面:
1. 应该使用多少滞后观测值作为神经网络的输入(即神经网络应该有多少个输入节点)。
2. 应该使用多少过去的观测值来训练神经网络。
虽然在模型开发中通常建议使用更大的样本量,但实证结果表明,较长的时间序列并不总是能产生最佳的预测性能。确定合适的样本量并非易事,特别是在时间序列建模中,更大的样本意味着使用更旧的数据。如果时间序列的潜在数据生成过程是平稳的,更多的数据有助于减少数据中固有的噪声影响;但如果过程是非平稳的或其结构和参数随时间变化,较长的时间序列可能会损害模型的预测性能。在这种情况下,近期观测值对于指示数据中的结构或参数变化更为重要,而旧的观测值可能对预测模型的构建没有帮助甚至有害。
2. 滚动和移动窗口方法
在神经网络时间序列预测中,大多数研究采用固定窗口方法来构建和评估神经网络性能。即将所有可用数据划分为训练样本、验证样本和测试样本,使用前两个样本估计和开发模型,然后用最后一个样本评估模型。数据划分通常比较随意,一般原则是将更多数据分配给训练样本,较少数据分配给其他样本。一旦完成数据划分,各部分数据的大小在模型构建、选择和评估过程中保持固定。
然而,这种方法仅在各部分数据特征相似或潜在数据生成过程及其参数不随样本变化时才有效。如果数据是非平稳的,即其特征随时间变化,那么基于固定历史数据段构建的静态模型的预测性能会随着时间推移而下降。即使时间序列相对平稳,由于噪声水平或模型参数可能发生变化,使用静态模型评估近期或未来预测也存在局限性。因此,随着时间的推移,通常需要纳入新的观测值来更新模型或模型参数。
更新预测模型的方法主要有滚动窗口和移动窗口两种:
- 滚动窗口方法:使用所有可用数据来训练神经网络。每次收到新的观测值时,将一个新的训练示例添加到数据库中,新示例由新观测值作为新的标准变量,接下来的 k 个最近观测值(k 为输入节点数)作为预测变量。随着时间的推移,样本量会增加。
- 移动窗口方法:使用一组最近的观测值来估计模型。每次添加新的训练示例时,会从训练样本中删除最旧的观测值以更新模型,样本量保持固定。
滚动窗口方法的优点是随着样本量的增加,模型参数可以更准确地估计,因为较大的样本通常具有较小的误差方差。但其缺点是当时间序列过程随时间变化时,该方法效果不佳。移动窗口方法的优点是能够更好地反映时间序列潜在过程的变化,但确定合适的样本量并不容易,而且固定的样本量不一定对所有后续或未来的模型更新和预测都有效。此外,相对较小的样本量可能会限制准确估计模型参数的能力。
3. 加权窗口方法
本文提出了一种加权窗口方法,它类似于移动窗口方法,但不同之处在于,在训练神经网络时考虑了加权目标函数。即对预测误差进行不同的加权,最近的误差赋予更高的权重,较旧的误差权重较低。
模型参数的选择是为了最小化窗口内训练示例的计算预测变量与实际预测变量之间的加权平方偏差之和。对于窗口中最近部分(“核心”)的训练示例,平方误差的权重为 100%;对于窗口的其余部分,平方误差的权重由一个线性函数确定,该函数对于核心中最旧的训练示例取值为 1,对于不在窗口内的训练示例取值为 0。实际上,这些权重定义了一个模糊的近期数据集,其隶属函数呈梯形,核心由“完全近期”的数据组成,支持集由整个窗口组成。
可以使用不同的加权方案来定义时间序列窗口中观测值的权重,一种简单而自然的选择是线性加权方法,即权重从窗口中最近的观测值到最旧的观测值呈线性递减。具体来说,时间周期 t 的权重定义如下:
[
W(t) =
\begin{cases}
0 & \text{if } t < s \
\frac{t - s}{c - s} & \text{if } s \leq t < c \
1 & \text{if } t \geq c
\end{cases}
]
其中,s 是支持集的起始点,c 是核心集的起始点。
加权窗口方法并不修改输入数据,而是修改训练神经网络的目标函数。假设训练样本中有 N 个观测值 (y_1, y_2, \ldots, y_N),使用一个具有 k 个输入节点和一个输出节点的网络,将得到 (N - k) 个训练模式。第一个训练模式由 (y_1, y_2, \ldots, y_k) 作为输入,(y_{k + 1}) 作为目标;第二个训练模式由 (y_2, y_3, \ldots, y_{k + 1}) 作为输入,(y_{k + 2}) 作为目标;以此类推,最后一个训练模式由 (y_{N - k}, y_{N - k + 1}, \ldots, y_{N - 1}) 作为输入,(y_N) 作为目标。训练目标是找到弧权重,使得加权总体误差度量(如加权平方误差之和 WSSE)最小化,对于该网络结构,WSSE 可表示为:
[
WSSE = \sum_{i = 1}^{N - k} W(i) (y_i - \hat{y}_i)^2
]
其中,(\hat{y}_i) 是第 i 个观测值的 ANN 预测值。
4. 研究方法
4.1 数据
从 Economagic 网站获取了七个金融数据集,所有数据集截止到 2001 年 2 月 1 日。对于每日数据,将其转换为每月数据,使用每个月的第一个记录值以保持一致性,并确保所有预测的预测点相同。这些时间序列包括:
| 数据名称 | 起始时间 | 观测值数量 |
| — | — | — |
| 新单户住宅销售 | 1963 年 1 月 | 458 |
| 联邦基金利率 | 1954 年 7 月 | 560 |
| 一个月定期存款利率(二级市场) | 1965 年 12 月 | 423 |
| 一个月欧洲美元存款 | 1971 年 1 月 | 362 |
| 美国国债 | 1963 年 9 月 | 439 |
| 法国法郎兑美元汇率 | 1971 年 1 月 1 日 | 364 |
| 德国马克兑美元汇率 | 1971 年 1 月 | 364 |
每个时间序列首先保留最后 31 个数据点用于最终测试,其余数据按 80/20 的比例划分,80% 的最早观测值作为训练集,用于估计神经网络模型的参数;20% 作为验证集,用于测试这些模型以选择最佳模型。训练集和验证集的具体大小通过整数截断确定。
4.2 神经网络模型构建
本研究仅使用标准的三层前馈神经网络结构,使用一个输出节点进行一步预测。输出节点使用线性激活函数,隐藏节点使用 sigmoid 或逻辑激活函数,隐藏节点和输出节点都使用偏置。输入节点和隐藏节点的数量通常难以预先确定,因此通过对训练集和验证集进行实验来选择,这是常用的交叉验证方法。即使用训练集为每个候选架构估计参数,然后根据验证集选择最终架构。
对于时间序列预测问题,输入节点的数量对应于用于确定时间序列自相关结构的滞后观测值数量。在实验中,该数量从 2 到 9 变化;隐藏节点的数量从 1 到 10 变化。对于每个实验的 ANN 架构,使用训练集估计模型参数,使用验证集选择最佳模型。
对于移动和加权窗口方法,架构规范还包括用于训练的观测值数量,这通常难以预先精确指定,并且一般取决于数据。为了找到最佳的训练窗口大小,将其从 50 变化到训练集中可能的最高 50 的整数倍。选择 50 是参考了时间序列预测文献中的一般建议,即至少需要 50 个观测值才能构建成功的预测模型。
对于每个移动窗口模型,还需要确定支持集中接收部分权重的数据量。本研究考虑了三个级别:0、50 和 100。权重为 0 表示所有数据点的权重相同,这表明移动窗口是加权窗口的一种特殊情况。否则,支持集中最旧的 50 或 100 个观测值将根据其年龄给予分数权重。
对于给定架构的误差计算,通过对验证集中的每个观测值进行一个月的提前预测来完成。对于具有 k 个输入的 ANN 模型,将训练集的最后 k 个月输入模型,对验证样本的第一个月进行预测,将预测值与实际值进行比较并计算误差。然后将训练集的最后 k 个月和验证集的第一个月输入同一模型(不重新估计参数),对验证样本的第二个月进行预测并计算误差,以此类推,迭代评估模型在整个验证期和测试期的性能。
在模型构建阶段,目标是找到对验证样本预测效果良好的最稳健模型。因此,最佳模型是在验证样本中表现最准确的模型。选择的模型将用于检查在模型构建阶段未使用的测试样本中的真实样本外预测性能。
本研究选择平均绝对百分比误差(MAPE)作为整体性能度量,因为它具有稳健性,并且便于在不同时间序列之间进行模型比较。
神经网络训练是吸收历史数据并学习输入 - 输出关系的过程,需要进行非线性优化以估计模型参数。本研究使用广义缩减梯度(GRG2)方法训练神经网络模型,GRG2 使用广义缩减梯度算法进行一般非线性优化,能够解决非线性优化问题系统。由于在神经网络的非线性优化训练中不能保证找到全局最优解,因此每个网络使用不同的初始随机权重训练 50 次。
4.3 结果
重点关注使用三种不同方法进行样本外预测评估。在最终测试阶段,每个数据集有三组 31 个误差值,分别对应滚动、移动和加权窗口(WW)三种方法。为了直接比较,使用绝对百分比误差(APE)作为每个保留样本期间的预测误差度量,使用平均绝对百分比误差(MAPE)作为样本中所有期间的汇总性能度量。
| 数据集 | 滚动窗口 | 移动窗口 | 加权窗口 |
|---|---|---|---|
| 一个月定期存款利率 | 12.20 | 11.40 | 5.36 |
| 欧洲美元存款 | 4.98 | 5.25 | 4.13 |
| 联邦基金利率 | 4.41 | 4.45 | 2.50 |
| 法国法郎汇率 | 3.26 | 3.29 | 2.78 |
| 德国马克汇率 | 2.57 | 2.46 | 2.74 |
| 新单户住宅销售 | 20.21 | 20.12 | 11.19 |
| 美国国债 | 5.04 | 5.27 | 6.18 |
从表中可以看出,基于加权窗口方法的神经网络模型在七个数据集中的五个数据集上是最准确的预测器,这些数据集包括一个月定期存款利率、欧洲美元存款、联邦基金利率、法国法郎汇率和新单户住宅销售。在某些情况下,加权窗口方法相对于滚动和移动窗口方法的改进非常显著。例如,在一个月定期存款利率预测中,加权窗口方法的 MAPE 比滚动和移动窗口方法降低了 50% 以上;在新住宅销售预测中,加权窗口方法将 MAPE 从滚动和移动窗口方法的水平降低了约 45%。然而,在德国马克汇率和美国国债这两个数据集中,加权窗口方法的效果不如滚动和移动窗口方法,但差异并不显著。
为了详细检查三种方法之间的差异,对每个数据集进行了单独的 ANOVA 分析,使用测试集中的时间周期作为阻塞因子进行完全阻塞设计,以突出建模和评估方法的差异。结果如下表所示:
| 数据集 | 变异来源 | SS | df | F | P - 值 |
|---|---|---|---|---|---|
| 一个月定期存款利率 | 时间 | 5773.04 | 30 | 6.04 | 0.0000 |
| 方法 | 867.19 | 2 | 13.6 | 0.0000 | |
| 误差 | 1912.97 | 60 | |||
| 欧洲美元存款 | 时间 | 1813.91 | 30 | 4.05 | 0.0000 |
| 方法 | 21.37 | 2 | 0.71 | 0.4952 | |
| 误差 | 901.71 | 60 | |||
| 联邦基金利率 | 时间 | 897.85 | 30 | 8.99 | 0.0000 |
| 方法 | 77.09 | 2 | 11.59 | 0.0000 | |
| 误差 | 199.55 | 60 | |||
| 法国法郎汇率 | 时间 | 483.54 | 30 | 10.01 | 0.0000 |
| 方法 | 4.91 | 2 | 1.53 | 0.2257 | |
| 误差 | 96.59 | 60 | |||
| 德国马克汇率 | 时间 | 233.95 | 30 | 14.67 | 0.0000 |
| 方法 | 1.93 | 2 | 1.82 | 0.1716 | |
| 误差 | 31.89 | 60 | |||
| 新单户住宅销售 | 时间 | 5236.44 | 30 | 6.24 | 0.0000 |
| 方法 | 1664.84 | 2 | 29.78 | 0.0000 | |
| 误差 | 1677.04 | 60 | |||
| 美国国债 | 时间 | 2099.77 | 30 | 8.06 | 0.0000 |
| 方法 | 13.57 | 2 | 0.78 | 0.4623 | |
| 误差 | 520.82 | 60 |
从表中可以看出,阻塞效应在所有数据集中都很显著,这表明阻塞在为主要关注因素提供额外的模型检测能力方面是有用的。此外,“方法”这一主要因素在三个数据集中高度显著,分别是一个月定期存款利率、联邦基金利率和新单户住宅销售。对于欧洲美元存款和法国法郎汇率数据集,三种方法之间没有显著差异,尽管加权窗口方法在平均性能度量上优于其他两种方法。同样,虽然从整体 MAPE 度量来看,加权窗口方法在德国马克汇率和美国国债数据集上不如滚动和移动窗口方法,但差异并不显著。
为了进一步确定三种方法之间的显著差异,对三个具有显著 ANOVA 结果的数据集使用 Tukey 诚实显著检验(HST)。在 5% 的显著性水平下,发现加权窗口方法与移动窗口方法以及加权窗口方法与滚动窗口方法之间存在显著差异,而滚动窗口方法和移动窗口方法之间没有显著差异。这表明,采用强调近期数据的加权方案对于某些经济时间序列可能非常有帮助。
5. 总结与展望
加权窗口方法在经济时间序列预测中表现出了一定的有效性。在研究的七个数据集中,从整体预测准确性来看,加权窗口方法在五个数据集中优于传统的滚动或移动窗口方法,在三个数据集中显著优于这两种方法。虽然在两个数据集中,从整体 MAPE 度量来看,加权窗口方法不如滚动和移动窗口方法,但差异并不显著。
未来的研究可以探讨以下几个方面:
1. 确定加权窗口方法更有效的条件。理论上,如果时间序列的潜在过程的结构或参数随时间变化,加权窗口方法应该更有用,但在实践中判断这种情况是否发生可能很困难,因此需要开发识别这种变化环境的实用方法。
2. 改进权重分配方法。本研究仅考虑了简单的线性加权方案,应开发更适合不同时间序列行为的权重分配方法。
3. 优化模型更新的长度和频率。本研究中的加权窗口方法可能会因每次新观测值的加入而过于频繁地更新模型,导致模型在捕捉变化的噪声而不是潜在模式时变得不稳定,因此需要研究合适的更新长度和频率。
6. 加权窗口方法的优势分析
加权窗口方法在时间序列预测中展现出独特的优势,这主要得益于其对数据动态变化的适应性和对近期信息的重视。
6.1 适应数据非平稳性
在实际的经济和金融时间序列中,数据往往呈现出非平稳的特性,即其均值、方差或自相关结构随时间发生变化。传统的滚动和移动窗口方法在处理这类数据时存在一定的局限性。滚动窗口方法虽然利用了所有历史数据,但随着时间推移,旧数据可能会掩盖当前数据的特征,导致模型无法及时捕捉到数据的变化。移动窗口方法虽然能够关注到近期数据,但固定的窗口大小可能无法灵活适应不同程度的变化。
而加权窗口方法通过对不同时间点的数据赋予不同的权重,能够更好地适应数据的非平稳性。近期数据被赋予更高的权重,使得模型能够更快地响应数据的变化,及时调整预测结果。例如,在经济形势发生突然变化时,加权窗口方法可以迅速捕捉到这种变化,提高预测的准确性。
6.2 强调近期信息的重要性
在时间序列预测中,近期数据通常包含了更多关于未来趋势的信息。加权窗口方法通过对近期数据赋予更高的权重,充分利用了这一特点。这类似于加权移动平均方法,但不同的是,加权窗口方法关注的是历史数据在模型参数学习过程中的作用,而不是具体的预测函数。
例如,在金融市场中,股票价格的波动往往受到近期新闻、政策变化等因素的影响。加权窗口方法能够突出这些近期因素对模型的影响,使得预测结果更加符合市场的实际情况。
6.3 提高模型的灵活性
加权窗口方法的权重分配方案可以根据不同的时间序列特点进行调整,从而提高模型的灵活性。在本研究中,采用了线性加权方案,但实际上可以根据数据的特性设计更复杂的权重分配方案。
例如,对于具有季节性波动的时间序列,可以根据季节周期调整权重,使得模型更好地捕捉季节性特征。此外,还可以结合其他技术,如机器学习算法,自动学习权重分配方案,进一步提高模型的适应性和预测性能。
7. 实施加权窗口方法的步骤
为了更好地应用加权窗口方法进行时间序列预测,可以按照以下步骤进行:
7.1 数据准备
- 数据收集 :收集相关的时间序列数据,确保数据的准确性和完整性。
- 数据预处理 :对数据进行清洗、转换和归一化等操作,以提高数据的质量和模型的性能。
- 数据划分 :将数据划分为训练集、验证集和测试集,用于模型的训练、选择和评估。
7.2 模型架构选择
- 确定输入和输出节点 :根据时间序列的特点和预测目标,确定神经网络的输入和输出节点数量。
- 选择隐藏节点数量 :通过实验或交叉验证方法,选择合适的隐藏节点数量,以平衡模型的复杂度和性能。
- 选择激活函数 :根据模型的需求,选择合适的激活函数,如线性激活函数用于输出节点,sigmoid 或逻辑激活函数用于隐藏节点。
7.3 权重分配方案设计
- 选择加权函数 :根据时间序列的特性,选择合适的加权函数,如线性加权、指数加权等。
- 确定核心和支持集 :根据数据的特点和实际需求,确定核心集和支持集的范围,以确定不同数据点的权重。
7.4 模型训练和优化
- 选择优化算法 :选择合适的优化算法,如广义缩减梯度(GRG2)方法,用于训练神经网络模型。
- 设置训练参数 :设置训练参数,如学习率、迭代次数等,以确保模型能够收敛到最优解。
- 多次训练 :由于神经网络的训练过程可能会陷入局部最优解,因此需要进行多次训练,选择性能最优的模型。
7.5 模型评估和选择
- 计算评估指标 :使用验证集计算评估指标,如平均绝对百分比误差(MAPE)、均方误差(MSE)等,以评估模型的性能。
- 选择最佳模型 :根据评估指标,选择性能最佳的模型作为最终的预测模型。
7.6 模型预测和更新
- 进行预测 :使用训练好的模型对测试集进行预测,得到预测结果。
- 更新模型 :随着新数据的到来,根据加权窗口方法的原理,更新模型的参数,以提高模型的预测性能。
以下是一个简单的 mermaid 流程图,展示了加权窗口方法的实施步骤:
graph LR
A[数据准备] --> B[模型架构选择]
B --> C[权重分配方案设计]
C --> D[模型训练和优化]
D --> E[模型评估和选择]
E --> F[模型预测和更新]
7. 不同方法的性能对比总结
为了更直观地比较滚动、移动和加权窗口三种方法的性能,我们对之前的实验结果进行总结。以下是一个对比表格:
| 对比指标 | 滚动窗口方法 | 移动窗口方法 | 加权窗口方法 |
| — | — | — | — |
| 对数据平稳性的要求 | 较高,数据特征变化时性能下降 | 相对较低,但固定窗口大小有局限 | 低,能适应数据非平稳性 |
| 对近期信息的利用 | 不足,旧数据影响大 | 较好,但窗口固定 | 强,强调近期数据权重 |
| 模型灵活性 | 低,依赖所有历史数据 | 一般,窗口大小固定 | 高,可调整权重方案 |
| 预测准确性(多数数据集) | 一般 | 一般 | 较好,部分数据集显著提升 |
从表格中可以清晰地看出,加权窗口方法在多个方面表现出优势,尤其是在适应数据非平稳性和提高预测准确性方面。
8. 结论
加权窗口方法为时间序列预测提供了一种有效的解决方案,特别是对于经济和金融领域的非平稳时间序列。通过对不同时间点的数据赋予不同的权重,该方法能够更好地适应数据的动态变化,提高预测的准确性。
在实际应用中,加权窗口方法可以根据具体的时间序列特点和预测需求进行调整和优化。未来的研究可以进一步探索加权窗口方法更有效的应用条件,开发更合理的权重分配方案,以及优化模型更新的策略,以提高其在不同场景下的性能和稳定性。
总之,加权窗口方法在时间序列预测领域具有广阔的应用前景,有望为决策提供更准确、更可靠的支持。
超级会员免费看
5417

被折叠的 条评论
为什么被折叠?



