system: [SYSTEM]

user: 3. 实证研究和结果分析 3.1. 实验数据 为了方便比较和分析，从英为财情官网下载每日黄金期货(GCZ8)数据。把这些数据先从影响因素上分为单因子(最高价)和多因子(开盘价、收盘价、最高价、最低价)两部分，再从时间上分为短期数据(2008/10/22~2018/10/22)和长期数据(1990/06/22~2018/10/22)，从而建立4个数据集，表1列出了这些数据集的特征。 Table 1 Summary of experimental dat 序号 数据集 样本个数 时间范围 变量数目 1 Short_1 2586 2008/10/22~2018/10/22 1个(最高价) 2 Short_1 2586 2008/10/22~2018/10/22 4个(开盘价、收盘价、最高价、最低价) 3 Long_1 7189 1990/06/22~2018/10/22 1个(最高价) 2 Long_2 7189 1990/06/22~2018/10/22 4个(开盘价、收盘价、最高价、最低价) 表1. 实验数据汇总 3.2. 长短期记忆网络模型单因子预测 3.2.1. 实验步骤 1) 数据预处理 读入黄金期货数据，对其进行标准化处理，消除量纲带来的影响。一般数据标准化的步骤为：先求出各变量的算术平均值(数学期望) x i 和标准差 s i ；再进行标准化处理： z i j = x i j − x i s i ，其中 z i j 为标准化后的变量值， x i j 为实际变量值。 接下来定义模型训练时调节的主要参数，主要包括: 批大小(batch_size)、隐层节点数(rnn_unit)、模型的时间步长(time_step)等。 ① 批大小是指进行梯度下降时每一批包含的样本数，在训练的时候每批的样本会被计算一次梯度下降，使目标函数被优化一步。它可以决定梯度下降的方向，比如一个极端情况为batch_size等于1，每次参数更新的方向都是各自样本梯度下降的方向，目标函数的优化就难以收敛。 ② 隐层节点数(rnn_unit)反映隐藏层内部映射和输出维度。隐层神经元个数的选择对于模型预测效果有着非常重要的影响，如果隐层神经元的个数太少，那么模型就无法很好地提取数据特征，其预测效果也很差；如果神经元个数太多，就会造成模型在训练集表现很好，但在测试集上反而表现很差，即过拟合。 ③ 模型的时间步长反映的是模型最多可以记忆多长的时间，如果LSTM的时间步长为10天，即LSTM最多可以记忆10天的时间，那么第11天的黄金期货价格与前10天的价格有关。 本文定义时间步为20，每批次训练60个样例，隐层节点数为10，输入为1维数据，输出为1维数据。 2) 长短期记忆网络的定义与训练 在定义LSTM模型之前，先对神经网络的变量进行定义，如定义输入权重，输入偏差等。然后通过之前定义的输入维度，输出维度定义LSTM神经网络，再对其进行训练。训练的目的是不断调整权重和偏差项，使得最终的均方误差降到最低。最后对模型分别训练1000次、2000次、3000次、4000次和5000次，比较最终的结果。 3) 黄金期货价格的预测 使用训练好的LSTM模型，得到下一日黄金价格的预测值并与实际值比较。 3.2.2. 短期预测结果 使用数据集Short_1生成训练模型，得到单因子短期预测结果，如表2所示。可以看出，只使用最高价一个因子，且有较少数据时，模型的均方误差介于0.001和0.003之间，随着训练次数的增加，均方误差先减小后增大，这是因为当训练次数过多时，会出现过拟合的情况，即训练出来的模型对训练集来说误差很小，但并不适用于测试集。在单因子短期预测中，下一日黄金价格的真实值为1243.00，其标准化结果为−0.268350911。本文的LSTM模型在训练次数为2000次时，得到预测结果为−0.29719335，均方误差为0.0014775329，说明用LSTM模型预测黄金价格可行有效。 Table 2 Single factor short-term forecast result 训练次数 均方误差 预测值 1000 0.0016045270 −0.27769384 2000 0.0014775329 −0.29719335 3000 0.0015098210 −0.28685120 4000 0.0015384698 −0.30222230 5000 0.0028385934 −0.29912508 表2. 单因子短期预测结果 3.2.3. 长期预测结果 使用数据集Long_1生成训练模型，得到单因子长期预测结果，如表3所示。可以看出，使用最高价一个因子，且有较多数据时，模型的均方误差介于0.0005和0.003之间，相比单因子短期预测，同样是单因子，长期预测比短期预测的均方误差有所降低。但随着训练次数的增加，仍会出现过拟合的情况。在单因子长期预测中，下一日黄金价格的真实值为1243.00，其标准化结果为1.10。本文的LSTM模型在训练次数为4000次时，得到预测结果为1.0620697，均方误差为0.000524908，说明LSTM模型在预测黄金价格时表现较好。 Table 3 Single factor long-term forecast result 训练次数 均方误差 预测值 1000 0.002784248 1.0873673 2000 0.001507329 1.0839670 3000 0.001201251 1.0795054 4000 0.000524908 1.0620697 5000 0.002959938 1.0629648 表3. 单因子长期预测结果 3.3. 长短期记忆网络模型多因子预测 3.3.1. 实验步骤 1) 数据预处理 读入黄金期货数据，并将其分为两部分。对于短期预测，将前2300组数据作为训练集，剩下的286组数据作为测试集；对于长期预测，将前6000组数据作为训练集，剩下的1189组数据作为测试集。再对训练集和测试集数据进行标准化处理，消除量纲带来的影响。最后定义LSTM有两个隐藏层，每个隐藏层有10个神经元，输入为收盘价、开盘价和最低价3维数据，输出为最高价1维数据等。 2) 长短期记忆网络的定义与训练 在定义LSTM模型之前，先对神经网络的变量进行定义，如定义输入权重，输入偏差等。再通过之前定义的输入维度，输出维度定义LSTM神经网络，最后对其进行训练。训练的目的是不断调整权重和偏差项，使得最终的均方误差降到最低。最后对模型分别训练1000次、2000次、3000次、4000次和5000次，比较最终结果。 3) 黄金期货价格的预测 利用生成的训练模型，对测试集上的黄金期货数据进行预测，并计算偏差，即： a c c = y 预 − y 真 y 真 。 3.3.2. 短期预测 使用数据集Short_2生成训练模型，得到多因子短期预测结果，如表4所示。可以看出，使用最高价，最低价，开盘价，收盘价四个因子，且数据较少时，模型的均方误差介于0.0001和0.0004之间，相较单因子短期预测，同样数据较少，多因子比单因子预测的均方误差更小。但随着训练次数的增加，仍会出现过拟合的情况。当训练次数为4000次时，模型的均方误差最小，拟合效果最好。 Table 4 Multi factor short-term forecast result 训练次数 均方误差 预测值 1000 0.000325662 0.001845699 2000 0.000260878 0.001912991 3000 0.000198966 0.001884724 4000 0.000149761 0.001960919 5000 0.000219345 0.001902263 表4. 多因子短期预测结果 使用得到的多因子短期预测模型，设置训练次数为4000次，对测试集的黄金价格进行预测，如图3所示。蓝色为实际值，红色为预测值，可以看出预测值和实际值很接近，说明模型的拟合效果比较好。 图3. 多因子短期预测图 3.3.3. 长期预测 使用数据集Long_2生成训练模型，得到多因子长期预测结果，如表5所示。可以看出，使用最高价，最低价，开盘价和收盘价四个因子，且数据较多时，模型的均方误差介于0.00005和0.0005之间，相较多因子短期预测，同样是多因子，长期预测比短期预测的均方误差更小。当训练次数为5000次时，模型的均方误差最小，拟合效果较短期预测也更好。 Table 5 Multi factor long-term forecast result 训练次数 均方误差 预测值 1000 4.006 × 10 −4 0.007742414644 2000 3.289 × 10 −4 0.008534511771 3000 6.627 × 10 −5 0.007894591309 4000 1.360 × 10 −4 0.008153175614 5000 5.861 × 10 −5 0.007131973184 表5. 多因子长期预测结果 使用得到的多因子长期预测模型，设置训练次数为5000次，对测试集的黄金价格进行预测，如图4所示。蓝色为实际值，红色为预测值，可以看出预测值的趋势和实际值吻合，且在大部分数据点上，预测值和实际值很接近，说明用本文的LSTM模型预测黄金价格的效果比较好。 图4. 多因子长期预测图 3.4. 预测结果分析 从以上单因子预测和多因子预测结果来看，无论是有一个影响因素，还是有多个影响因素，长期预测相较短期预测的均方误差更小，预测更接近真实值，这个结果指导我们在用LSTM模型做数据预测时，应尽可能多的收集数据(表6)。另一方面，无论是短期预测还是长期预测，多因子预测较单因子预测的均方误差更小(表7)，这一结果说明在用LSTM模型做黄金价格预测时，应更全面地考虑影响黄金价格的因素，预测结果才能越精确。 Table 6 Statistics of prediction results of LST 影响因素 时间范围 训练次数 均方误差 单因子(最高价) 短期预测 (过去10年数据) 2000 1.478 × 10 −3 长期预测 (过去28年数据) 4000 5.249 × 10 −4 多因子 (开盘价、收盘价 最高价、最低价) 短期预测 (过去10年数据) 4000 1.498 × 10 −4 长期预测 (过去28年数据) 5000 5.861 × 10 −5 表6. 长短期记忆网络的预测结果统计