成为新会员获取本项目完整讲解视频

加入会员群

黄金在全球经济市场中扮演着重要的角色,其价格的预测对于投资者、政策制定者以及经济分析师而言具有重要意义。一般来说,金融市场的时间序列具有严重非线性和高噪声特性,这一点使得传统的统计模型难以准确预测其走势,因此我们可以基于CNN‑LSTM组合模型进行预测,并通过与SVR、LSTM和Ridge Regression模型进行对比分析得到在黄金现货价格预测方面,CNN‑LSTM 模型能更有效地捕捉价格走势的结论,从而提供更准确的预测结果。

本项目完整报告、代码、数据和AI智能体

下载资料(17页)

数据集介绍:以伦敦黄金现货价格为研究对象,从wind数据库中获取2021年1月4 日至2024年2月2日的黄金价格(以美元计价)进行预测分析。

表一 黄金现货价格的描述性统计

变量名样本量最大值最小值平均值中位数方差峰度偏度变异系数(CV)
price730483.33354.2407.8394.561369.974-0.9980.6520.091

图4 黄金现货价格的时序图

数据预处理:为了消除变量之间因量纲差异对模型的影响,首先对数据进行归一化处理。根据数据的特点,我们选择均值方差归一化方法,均值方差归一化的公式如下:

$$x’=\frac{x-mean}{std}$$

其中,x 为原始数据,$x’$ 为归一化后的数据

视频

小贴士:均值方差归一化是一种将数据按特征(即数据集中的列)进行标准化的方法,它通过将每个特征的值减去该特征的均值,然后除以该特征的标准差来实现以解决数据之间的可比性问题,加快训练网络的收敛速度,提高数值的稳定性并提高模型的预测精度。

CNN‑LSTM算法流程图:

在这里插入图片描述

图5 CNN‑LSTM 算法流程图

流程:数据获取→数据预处理→数据重组

数据重组后分为测试集、训练集

训练集→建立CNN→建立LSTM网络→Adam 优化算法→得到优化后的LSTM网络

测试集输入至得到优化后的LSTM网络→预测黄金现货价格

模型介绍:CNN模型,即卷积神经网络(Convolutional Neural Networks),是深度学习领域中用于图像识别和处理的一种高效的人工神经网络结构,目前也被应用于连续数据的预测任务。CNN模型主要由输入层、卷积层、激活函数、池化层、全连接层以及输出层组成。其中数据通过输入层输入,然后通过位于卷积层上的激活函数进入卷积层储存。接着由池化层进行特征提取,提取过程中降低特征图的空间维度,即进行下采样。这有助于减少网络中的参数数量,防止过拟合,并且使特征检测变得对小的位置变动不敏感。在多个卷积和池化层之后,全连接层将网络中的高级特征映射到样本的标签空间,即用于执行分类任务。

LSTM模型介绍LSTM 模型是一种特殊的RNN模型,当需要预测较长一段时间的时间序列时,通常使用LSTM模型。LSTM模型包含输入门,遗忘门和输出门三种以及用于传递信息的细胞状态$C_t$,具体结构如图所示。传入进来的数据首先进入输入门,然后通过遗忘门将一些数据从细胞状态中筛选掉。在这里遗忘门中的激活函数可以确保遗忘门输出的函数数值在0到1之间。当遗忘门接收到新信息时,遗忘门会将上一个信息中的一部分以一定的概率与新信息叠加起来,形成新的输入信息,之后与新的细胞状态逐个相乘,确定其数值是否为1。若为1,则保留其相关信息,否则,则丢弃其相关信息。这种做法在一定程度上可以减少模型在训练过程中的数据量。

接下来 LSTM 模型中需要确定细胞状态中需要存储什么信息,这一步分为两个过程。首先我们应该确定需要更新的信息,接下来我们需要确定哪些信息需要被加入到细胞状态中。这两个过程的公式如(1)、(2) 和(3) 所示:

$$i_t=\sigma(W_{ii}h_{t-1}+U_{ix}x_t+b_i) \tag{1}$$

$$\tilde{C}t = tanh(W_{ci}h_{t-1}+U_{cx}x_t+b_c) \tag{2}$$

$$C_t=C_{t-1} \otimes f_t+i_t \otimes \tilde{C}_t \tag{3}$$

最后,我们需要确定输出的信息$h_t$,公式如(4)和(5)所示。

$$o_t=\sigma(W_oh_{t-1}+U_ox_t+b_o) \tag{4}$$

$$h_t=o_t \otimes tanh(C_t) \tag{5}$$

CNN‑LSTM组合模型介绍:CNN用于从时间序列中提取特征,CNN中的卷积层可以有效地捕获输入信息中的特征,然后将这些特征传递给LSTM,接下来利用LSTM进行建模,进一步提取时序数据中的有效特征。

网络结构:输入层→卷积层→池化层(CNN层)→LSTM层→输出层

评价指标:采用均方误差(Mean Square Error, MSE)、平均绝对误差(Mean Absolute Error, MAE)、和拟合优度$R^2$作为模型的评价指标,计算公式如下:

$$\text{MSE} = \frac{1}{n}\sum_{i=1}^{n}(\widehat{y}_i-y_i)^2 \tag{8}$$

$$\text{MAE} = \frac{1}{n}\sum_{i=1}^{n}|\widehat{y}_i-y_i| \tag{9}$$

$$R^2=1-\frac{\sum_{i=1}^{n}(Y_i-\widehat{Y}_i)^2}{\sum_{i=1}^{n}(Y_i-\bar{Y})^2} \tag{10}$$

其中: n 为样本个数, $Y_i$为序列真实值, $\widehat{Y}_i$为序列预测值, $\bar{Y}$为序列均值.

模型的评价与预测:首先建立 CNN 模型从时间序列中提取特征,将提取到的特征传递给 LSTM 模型。之后建立 LSTM 网络模型,LSTM 网络模型由一层隐藏层,一层 dropout 层和一层全联接层构成;LSTM 层数为 2,隐藏层的单元个数为 64 个;以归一化后的预测值和真实值的 MSE 作为损失函数;使用 Adam 优化算法更新网络参数,初始学习率为 0.0001,基于梯度一阶矩的衰减率为 0.6,基于梯度二阶矩的衰减率为 0.999;使用网格搜索对 batch_size 和训练次数寻优,最终得到最优的 batch_size 为 63,最优训练次数为 12000 次。

为进一步验证模型的有效性,采用 LSTM 模型,支持向量机模型(SVR)以及岭回归模型(Ridge Regression)进行预测,进行对比实验,并计算出测试集上的各个评价指标。

表2 不同预测模型的评价指标

CNN‑LSTMLSTMSVRRidge Regression
MAE2.17585.103416.38632.5065
MSE9.482234.5230291.868612.3962
$R^2$0.94870.8131-0.58010.9329

封面