基于神经网络的金融时间序列预测

2022-01-24 07:40赵翔安徽大学
品牌研究 2021年31期
关键词:人工神经网络股价神经网络

文/赵翔(安徽大学)

一、研究背景

股票作为金融行业必不可少的一部分,日渐受到人们的关注,越来越多的人参与股票投资。在股票投资中人们最为关心的就是股价的波动,因为股价的波动直接影响着股市的稳定以及金融市场与国民经济的健康发展。

拥有一个准确的股价和趋势预测方法有助于加强投资者活力,同时也可以给政府部门的市场监管与指导提供支撑。因此,如何预测股票市场在金融领域是一个重要并且十分具有价值的课题。

现如今预测股票涨跌的方法五花八门,每个方法都有其优点和缺点,并没有十全十美的预测方法。考虑到当下预测方法众多本文篇幅有限不能一一采用,所以本文选取了如今最热门的方法之一人工神经网络。

人工神经网络通过效仿人大脑中神经元功能,在股票市场中利用之前的数据和其他有关信息来对股价未来的变化趋势进行预测,并且其具有十分强大的自组织与自适应的能力。正因如此,神经网络适用于处理具有非线性时间序列特征的股价预测问题,这也是神经网络如此受人推崇的原因。

神经网络是一个大的整体,而不仅仅是某一个方法,它包括了很多种方法。本文提出了一种基于BP神经网络针对股价预测问题的模型。首先从影响股价的众多市场因素中讨论并确定了11个针对股价预测的评价指标,然后通过相关关系分析把指标个数降至6个;同时探讨了样本数据的选取、隐藏层节点个数和预处理等问题;最后多次运行所建立的模型,得到一个具有最好预测精度和稳定性的综合模型。理论和实验的结果表明,本文建立的基于BP神经网络的股价预测综合模型是可行且有效的,有着非常良好的应用前景。

二、理论分析

(一)神经网络基本原理

人工神经网络在人工智能领域扮演着重要角色,它通过模拟人脑神经元的结构,找出隐藏在数据中的非线性关系。目前为止,人工神经网络被广泛地应用于包括医学、经济学、图像识别等在内的各个领域。神经网络的结构大致可以分为输入层、隐含层和输出层三个部分,数据传入输入层,通过阈值,权重和激励函数在神经元中进行运算,经过隐含层,层层传递,最后在输出层得到结果。神经网络利用误差反向传递,逐次调整阈值和权重,通过多次的迭代,参数进行反复优化,最后便可得到一个拥有某种作用的神经网络。

人工神经网络只是大量人工智能技术中的一种,其之所以引起人们广泛的关注,是因为相对于其他人工智能技术,具有以下几个优势:

1.容错与联想存取能力

人工神经网络的参数大部分是由阈值与连接权重组成,人工神经网络的整个学习过程就是在对这些参数进行更新和调整,最终人工神经网络就会把通过学习所得到的数据之间的关系存储在这些参数中。同时如果BP神经网络部分的神经元结构遭到破坏时,它不会对整个训练结果造成很大的影响,也就是说整个神经网络部分结构出现问题后它依然可以正常的运行,并且得到的结果不会受到太大的影响。这就是BP神经网络的容错能力。

2.高速寻优能力

人工神经网络可以通过计算机进行并行计算,加快训练速度,同时利用各种优化函数,让神经网络能以最快的速度得出最优参数。

3.自学能力

通常我们所得到的原始数据看似毫无关联,但其中往往隐藏着某种较为复杂的非线性关系,人工神经网络按照某种特定的机制对这些杂乱的数据进行训练与学习,当完成训练与学习后,再把其他的同种杂乱的数据输入到这个人工神经网络模型中,模型便会利用它之前通过学习得到的这种规律给出比较精确的结果。

4.非线性映射能力

BP神经网络实际上是输入层到输出层的一个映射,相关理论证明三层的人工神经网络就可以以任意的精度去迫近任意的非线性连续函数。这也是为什么它特别合适解决内部机制复杂的问题。

5.泛化能力

泛化能力就是保证人工神经网络对所需分类对象正确进行分类的前提下,还要求人工神经网络在经过训练学习后,对未知模式或者含有噪声的模式进行正确分类。

(二)BP算法

其算法流程图如图1。

图1 算法流程图

BP算法是BP神经网络的参数调节机制,给定一个由n组训练样例构成的训练数据集,x代表特征数据,y代表标签数据(图2)。

图2 神经网络架构

以(xk,yk)为例。叙述BP算法具体的流程,xk输入网络,经过层层计算,最终输出的结果为:即:

以yk作对比计算出均方误差为:

每一轮迭代运算 ,均会对参数做一次更新调整,参数更新公式为:

这里选取隐含层到输出层的链接权ωhj作为样例,描述神经网络中各参数的更新过程。BP算法采用非线性规划中的梯度下降法对参数进行调整,因此选取目标的负梯度方向对参数进行调整,给定学习率η,有:

数据在网络的传递过程中,先用计算第j个输出神经元的输入值βj,然后再通过激活函数计算其输出值进而得到Ek。

三、实证分析

金融时间序列指的是把金融数据在特定的时间内按照时间前后顺序所获得值进行排列,它有一个最明显的特征就是与“时间”紧密相连。金融时间序列主要受到行业周期、供求关系、宏观经济政策等众多外部条件影响。所以怎样利用这些外部条件对股票进行研究十分重要。一般我们认为,宏观经济和外界环境的变化,会以某种形式表现在数据里,我们所面临的问题是怎么去对数据进行挖掘,研究各种信息融合对序列趋势所产生的影响,突发事件对序列的影响也会通过数据的突然变化体现出来。本文对金融时间的选取,数据的处理,机器学习模型,分类回归预测模型评价指标进行相应的描述。

(一)数据来源及指标选取

本文实验所选取的数据为五粮液(000858)2018年 1月 2号 到2020年12月16号日线数据集。该数据集是网易财经网站的一个子数据集,一共有720条数据。除了收集股票数据外,我们还需要知道引起股价变化的具体因素,并选取影响股价的主要因素建立一个合适的股价预测模型。在建立模型之前,我们需要采集尽可能多的信息方便我们从各个不同的角度和层面来分析股票。首先我们需将数据分成两个部分,如表1所示,第一部分为2018年1月2号到2020年12月16号每日的历史股票数据(选取70%的数据)我们用它来当训练数据集(如表),用于人工神经网络算法学习和训练,剩下的数据就为我们的测试数据集。我们利用经过学习的人工神经网络模型对测试集股价趋势进行预测,将得到预测结果与实际数据进行一个对比(表1)。

表1 样本划分数据说明

本文从最高价、最低价、开盘价等维度选取了11个评价指标。日线数据的每一行代表的为每一天的记录,主要记录了当天股票的开盘和收盘价、最低价和最高价格以及成交量等几个关键指标,开盘价为当天早上9:30所给出的开盘价,收盘价为当天下午3:00所给出的收盘价,最低价和最高价分别为当天价格最低时候和最高时候所对应的值,成交量是一整天的累积,其原始数日线部分数据如表2。

表2 数据说明

(二)数据预处理

我们需要对原始数据进行一定程度的预处理,前期数据的一些准备工作对我们所得到的序列预测效果有着十分重大的影响,可以说我们所得到模型的精度很大程度上取决于对原始数据预处理的效果。因此,利用一些有效的技术手段对金融时间序列数据进行前期预处理变得十分有必要,它可以让数据更加可靠和完整,可以在一定程度上提高数据的质量,从而能提高模型预测的准确率和精确度。

(1)异常值和空缺值处理:目前比较流行的解决方法有以下几种,例如直接把缺失值删除或者运回归值、前一时刻的正常值、平均值等填充,但是金融数据整体数据一般波动幅度较大,用平均值填充缺失值或者代替异常值的话非常容易产生较大的误差,因此我们通常选择采用前一时刻的正常值来替换比较合适。

(2)数据标准化处理:在现实中,即使同种类型的数据集所使用的量纲也会不同,因此,一般需要对时间序列进行一定的标准化处理,如果直接利用它们进行一系列的处理和分析,得到的结果将会产生一定程度的偏差,不能体现真正的预测结果甚至产生违背事实的结果。一般时间序列的标准化方法有:线性函数归一化处理,Z-Score,反正切函数转化,对数转化,本文使用的是线性归一化处理数据,下面简单介绍一下线性归一化处理,计算公式如下:

输入数据为 X=(x1,x2 ...xn),xmin为输入数据的最小值,xmax为输入数据的最大值,通过线性归一化处理线性函数,使得输入数据在同一个量纲上,有效地减少预测的误差,提高预测的精确度。

(三)模型参数的确定

1.隐含层数的确定

1989 年 Robert Hecht - Nielsen用数学理论证明了在任何一个闭区间内的任意一个连续函数都可以采用含有一层隐含层的BP神经网络来逼近,即我们可以用一个含有三层隐含层的BP网络完成任意的m维到n维的映射。因此,本文选定含有一层隐含层的BP神经网络预测模型。

2.隐含层节点数的确定(表3)

表3 不同隐含层节点数误差分析

一般来说,对于较为复杂的股价预测问题,BP神经网络预测按照经验公式,隐含层一般含有神经元个数的大致范围为3-10,然后采用比较法,找到最适合的隐含层结点个数。实验结果如表3所示:通常BP神经网络模型的误差随着节点个数的增加会呈现先减少后增加的趋势。我们通过比较不同隐含层节点数的测试均方误差,表3表明,在本文的实验中隐含节点数为6时,网络预测误差最小。因此,本文确定隐含层节点数为6。

四、描述性统计分析

从五粮液收盘价的趋势图可以看出(如图3),五粮液的股价呈现出先下降后上升的趋势,在2018年到2019年期间,五粮液的股价是逐渐下降的,2019年到2021年改变了以往的趋势,表现出一路上涨的形态,虽然中间略微波动且下降,从图中可以直观地看出,2020年到2021年上涨的速度比上一年还要快。五粮液作为“浓香型”白酒之一,股价的上涨可能与五粮液公司的业绩良好有很大的关系。

图3 五粮液趋势图

根据图3、图4和图5可以明显地看出五粮液股票的收盘价时间序列的确出现尖峰厚尾性,对比标准正态分布,两段的尾部更厚,也就是极值更多,峰度更高。通过图6明显看出五粮液的股票价格收益率序列在样本区间内都显示出一定程度的聚集性和波动性,其中,在2018到2021的三年中波动幅度十分的明显。

图4 五粮液收益率分布

图5 QQ 图

图6 收益率波动

五、模型建立及分析

在数据规范化中选择线性归一化处理方法对数据进行操作,图7是数据处理前的收盘价价格变化走势,图8是数据处理后的收盘价价格变化趋势,从图中可以清晰地看出,基本保持了原始数据的走势规律,说明归一化不改变数据要表达的原始意义。

图7 原始数据分布

图8 处理后数据分布

进一步,对处理后的数据进行变量的筛选,参考相关文献的变量选择和相关性分析,最终选出与标签变量相关度大的变量,选取收盘价为输出变量即因变量,最高价、最低价、开盘价、前收盘、成交量、总市值为输入变量即自变量,设置模型的学习率为0.01,对其建立金融时间序列预测的神经网络模型,以探究神经网络预测效果及其模型在金融时间序列的数据的可行性。

运用综合代码进行十次交叉检验,记录每一次模型的均方误差,并计算其均值,由表4、图9可知,模型的均方误差是 0.0202。由箱线图可知,只有一个异常值,其余的值都在0到0.045之间。

表4 多次运行误差分析

图9 均方误差箱线图

通过实证分析结果可以发现,其预测结果如图,对于处理后的数据,从图10训练集预测效果图可以看出,神经网络模型在训练集表现出较好的预测效果,而在验证集上,神经网络模型在短期内的股票预测较为准确,但是从图11可以看出,长期的拟合效果有点差,测试误差均在0周围波动。(图12、图13)

图10 训练集预测效果

图11 训练集误差

图12 测试集预测效果

图13 测试集误差

六、结论与不足

本文综合考虑造成股市市场变化的各个方面因素,从成交量、总市值、股票价格等方面选取了11个评价指标,然后我们通过相关关系方法减少评价指标的个数,找到了6个主要影响股市市场的评价指标。以此建立基于BP神经网络的股价预测综合模型。

一般短期股价的波动隐藏着非线性的映射关系,BP神经网络相比其他算法有着很强的非线性映射能力,所以它可以完美地解决非线性映射关系,并且它拥有十分强大的自主学习能力。

因此,BP神经网络可以实现对短期股票收盘价比较精准的预测。我们由图12所得出的结果也可以验证这一点,在短期时间内对股票的预测还是十分精准的。但BP神经网络也存在一定的缺点,如果我们想要对股票做一个长期预测,最好不要采用BP神经网络,因为它得到的结果并不是很理想,如图12、图13所显示的结果。所以我们在现实生活中进行股票投资的时候,可以用BP神经网络模型对股价进行预测,给自己提供一个短期时间内股票走势参考。如果想要利用BP神经网络对股票进行一个长期的投资预测,我们首先要对其算法原理存在的缺陷进行一定的改进,现在已经出现了很多改进后的方案,在这里就不细说。

猜你喜欢
人工神经网络股价神经网络
基于神经网络的船舶电力系统故障诊断方法
使用人工神经网络改进2022年北京冬奥会数值天气预报后处理过程的算法研究
基于人工神经网络的Ni-ZrO2纳米镀层耐腐蚀性能预测
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
盘中股价升跌引起持股者情绪变化
牛股盘中冲高回落尾市拉涨停行为解读
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
基于人工神经网络的优化配置研究
股价创股灾以来新低的股票