system: [SYSTEM]

user: 4. 实证分析 由于预测模型预测的股票指数，其价格的波动性很大且难以预测，同时投资者预测指数更多的是为了了解指数价格的未来的涨跌趋势，所以对于预测结果的可行性分析分析其涨跌趋势比预测数偏差更为合理，所以分别计算样本数据序列和预测值序列每一天的环比增长率，然后将两者的对应序列的增长率相乘，见式(21)。若乘积大于零，则证明预测的涨跌趋势一致，预测结果是理想的，预测成功；否则预测趋势与实际变动趋势不一致，预测失败。然后计算预测成功次数在总预测次数中的占比，通过成功率的高低来分析该预测模型预测结果可靠与否。若样本序列为 { y t } ，预测值序列为 { y ^ t } ，则有 T r e n d t = ( y t y t − 1 − 1 ) ( y ^ t y ^ t − 1 − 1 ) (21) 4.1. 上证指数预测 正如上文所提到的，对于取得的股票指数的收盘价预处理就是寻找一个上限制除以这些样本点，让样本数据能够符合激活函数的值域要求，即在 ( 0 ， 1 ) 区间内。由于上证指数的数值基本都在0到5000之间，所以将上限K设为10，000相对合适。此外，模型精确度会受到迭代次数和输入变量个数的影响，因此在迭代次数为100时，比较了方程变量分别为399和511时预测趋势的准确性，结果见表1。发现当方程自变量个数为511时，无论是模拟窗口还是预测窗口的成功的概率都比失败的概率高，因此，选择 n = 512 时的模型进行预测。 Table 1 Model prediction success rate of the Shanghai composite index tren n = 400 n = 512 模拟窗口 预测窗口 模拟窗口 预测窗口 成功的概率 0.6524 0.35 0.8552 0.65 失败的概率 0.3476 0.65 0.1448 0.35 表1. 模型预测上证指数趋势成功的概率 所以将 n = 512 时得到的最优解集带入模型，有 m = n 0 − n + 1 = 1030 − 512 + 1 = 519 ，即输入矩阵为一个519×511的矩阵，取 i = 0 ， 1 ， 2 ， ⋯ ， 538 ，所以预测模型的通项公式可以表示为： − 1.605346 y i + 1 + 0.77312 y i + 2 + ⋯ + 3.871329 y n − 1 + i + 0.006184 = y n + i (22) 表2为该二层BP神经网络对上证指数预测结果拟合度的误差水平检验结果，该模型的R值为0.9976，误差的分布离散度和误差平方和较小，证明该模型解释力度强、拟合效果好。 图3全样本窗口拟合的效果图，从图像来看前期模拟时的样本点基本都在拟合曲线上的，这也证明模型的拟合预测效果具有一定的可靠性。但是，到了后20天的预测值与实际数值有较大的偏离程度，预测值的波动幅度比实际样本值更大，这很可能是因为我们进行预测的这20天并没有参与到样本模拟 Table 2 Error level test of Shanghai composite index fitting mode 可决系数值 0.9976 可决系数值平方根 0.9988 调整后可决系数值 0.7894 回归误差分布离散度 87.8095 误差平方和均值平方差 9.4413 表2. 上证指数拟合模型的误差水平检验 图3. 上证指数全样本模拟窗口拟合效果图 时的模型中，机器学习时并没有学习到这部分数据，模型使用的最优解也并不是全样本区间模拟得到的最优解，因此预测未来20天时的数据存在较大偏差是可理解的。但是对于股市来说更重要的是价格的涨跌趋势，所以与其说该人工神经网络预测了指数的价格，不如说是预测了指数价格的变动趋势，结果证明该模型在指数变动趋势上还是有很强的准确性的。这也正是人工神经网络的一大优势，具有极强的容错能力和学习能力。即便未来20天的数据没有参与机器学习，但是模拟得到的模型仍然具有很强的解释性。 图4更仔细的展示了样本预测窗口的预测值和实际值。如果仅仅只是从预测数值的准确性和误差离散度来看，其实对于未来20天的股票指数价格的预测误差还是比较大的，如果预测其他数据出现这种程度的偏差可能解释力度较差。但是对于股票指数价格来说，预测与实际的涨跌趋势是否一致才是评判一个股价预测模型准确性的重要标准。从图5预测的涨跌幅度来看，预测的准确性比较高的，20天内有7天预测趋势有误，成功率高达0.65。 图4. 上证指数实际值与预测值对比图 图5. 上证指数涨跌趋势图 4.2. 上证指数增长指数预测 此处使用的上证指数的增长指数为上证指数价格的累计增长率，即每一天的股票指数与样本中的基期的比值，在本例中的基期为按时间序列排序的第一个数据，即2016年1月4日的上证指数的收盘价格。假设基期的股票指数价格为 y 0 第i天的股票指数价格为 y i ，其增长指数为 e i ，则有 e i = y i y 0 ，     ( i = 0 ， 1 ， 2 ， ⋯ ， N 1 ) (23) 对于取得的股票指数的增长指数的预处理就是寻找一个上限制除以这些样本点，使的样本数据能够符合激活函数的值域要求，即在 ( 0 ， 1 ) 区间内。由于增长指数的数值基本都在0到2之间，所以将上限K设为2较为合理。由表3可知，当方程自变量的个数为511时，模拟窗口和预测窗口中预测到的股票指数涨跌变动趋势成功率比自变量为399个时高，尤其是预测窗口中的成功率。因此，选择 n = 512 时的模型和最优解进行预测。 Table 3 Model prediction success rate of growth index tren n = 400 n = 512 模拟窗口 预测窗口 模拟窗口 预测窗口 成功的概率 0.6460 0.40 0.8533 0.65 失败的概率 0.3540 0.60 0.1467 0.35 表3. 预测模型预测上证指数增长指数趋势成功的概率 所以将 n = 512 时得到的最优解集带入模型，有 m = n 0 − n + 1 = 1030 − 512 + 1 = 519 ，即输入矩阵 A m n 为519 × 512的矩阵，取 i = 0 ， 1 ， 2 ， ⋯ ， 538 ，所以预测模型可表示为： − 1.144764 y i + 1 + 0.634725 y i + 2 + ⋯ + 3.436624 y n − 1 + i + 0.00201 = y n + i (24) 表4为该二层BP神经网络对上证指数预测结果拟合度的误差水平检验结果，该模型的R值为0.9977，误差的分布离散度和误差平方和都在0.03以内相对较小，因此该模型解释力度强、拟合效果好。图6为增长指数预测结果的拟合曲线，可以直接观察到该预测模型对样本数据的解释力度较强，样本点基本在拟合曲线上。而预测窗口如上文所说，由于没有参与机器学习，所以在预测值上可能会有较大幅度的波动。 图7清晰地反应了预测窗口中未来20天样本点与拟合曲线的拟合程度，预测值的变动幅度大于实际 Table 4 Error level test of growth index fitting mode 可决系数值 0.9977 可决系数值平方根 0.9988 调整后可决系数值 0.8011 回归误差分布离散度 0.0270 误差平方和均值平方差 0.0029 表4. 上证指数增长指数模型拟合的误差水平检验结果 图6. 上证指数增长指数全样本模拟窗口拟合效果图 图7. 上证指数增长指数实际值与预测值对比图 图8. 上证指数增长指数涨跌趋势图 值。尽管预测结果在数值上可能存在较大的偏离程度，但是对于指数来说更关注的是未来的增长或下降的趋势。如图8所示，在未来20天内，只有7天趋势值为负数，即预测涨跌趋势失败，成功概率也能达到0.65，因此该模型预测在预测上证指数价格的增长指数上也是有效的。