APP下载

BP神经网络在股票指数预测中的应用

2016-12-23黄宏运吴礼斌李诗争

通化师范学院学报 2016年10期
关键词:阀值安徽神经元

黄宏运,吴礼斌,李诗争

(1.安徽财经大学 金融学院,安徽 蚌埠 233000;2.安徽财经大学 统计与应用数学学院,安徽 蚌埠 233000)



BP神经网络在股票指数预测中的应用

黄宏运1,吴礼斌2,李诗争1

(1.安徽财经大学 金融学院,安徽 蚌埠 233000;2.安徽财经大学 统计与应用数学学院,安徽 蚌埠 233000)

针对股票数据规模庞大、结构复杂、多噪声和高度模糊非线性等特点而导致的预测难问题,利用人工智能算法BP神经网络的误差反向传播机制建立了一个以历史开盘价、收盘价、最低价、最高价、成交量、成交额和涨跌幅为输入变量,未来股价为输出变量的自适性相对优良的预测系统,通过MATLAB软件实现了自2002年1月7日至2016年6月22日股价预测模型的建立,并且对预测结果与实际结果进行了误差分析,得出了BP神经网络可以在短期内为股价预测提供一定借鉴和指导的结论.

BP神经网络;股票指数;预测;负梯度修正

随着我国经济水平的不断提高,国内资本市场也呈现出不断发展和扩大的局面,作为资本市场主要交易品种之一的股票自然也成为广大个体与机构投资者追逐的热宠.在成熟的市场经济中,与股票价格、成交量相关的指数不仅是投资者决策的重要依据,同时也是国民经济的晴雨表,因而对于未来股票指数的预测也就成为了广为热议的话题之一.

但是,由于历史股票数据具有规模巨大,多噪声和高度模糊非线性[1]等特点,因而对于适应股票指数预测的方法或系统具有较高的要求,尽管目前已经有很多学者给出了不同的预测方法,如时间序列预测[2]、灰色预测、组合预测等,但由于股票指数的波动易受到短期因素的影响,因而得到的效果并不十分理想.因而寻找一种适应性良好的预测方法,为投资者对未来股价的预测提供一定的借鉴就显得尤为关键.

1 数据来源与相关假设

本文的数据主要来源于大智慧与同花顺数据中心提供的自2002年1月7日至2016年6月22日的沪深300股价指数,其中数据的格式为3505行乘7维,其中每一行代表了每一日的开盘价、收盘价、最低价、最高价、成交量、成交额和涨跌幅.为了问题与数据的处理方便,给出几点假设:①假设所获取的数据真实、准确和可靠.②假设对数据进行适当的标准化处理不会对预测结果产生显著影响.③假设在研究期间内未出现大的金融市场动荡或货币危机.

2 BP神经网络股指预测模型

考虑到股票数据所具有的规模庞大、结构混杂、多噪声和高度模糊非线性等特点,利用人工智能算法BP神经网络所具有的良好的自适性能力、自学习能力和以任意精度逼近能力来构建股票指数预测系统.

为了考虑前期股票指数因素对于股价的影响,以前一日股票的开盘价、收盘价、最低价、最高价、成交量、成交额和涨跌幅为因变量,以后一日的开盘价为自变量构建BP神经网络预测系统,即建立一个具有一般意义的分布滞后模型.

2.1 BP神经网络

BP(Back Propagation)网络[3]是一种多层前向神经网络,由于在网络的训练中,调整权阀值的训练算法遵循了误差反向传播方式,所以,它是神经网络中比较成熟和完美的一部分.通常BP神经网络是一种具有3层或者3层以上神经元的神经网络,包括输入层、隐含层和输出层,上下层之间实现全连接,而同一层神经元之间无连接.

输入层神经元与隐含层神经元和隐含层神经元与输出层神经元之间的是网络的权值,即两个神经元之间的连接强度,隐含层或输出层任一神经元将前一层所有神经元传来的信息进行整合,通常还会在整合过的信息中添加一个阀值.当一对学习样本提供给输入神经元后,神经元的激活值从输入层经过各隐含层向输出层传播,然后按照减少网络输出与实际输出样本之间误差的方向,从输出层方向反向经过个隐含层回到输入层,从而逐步修正各连接权值,这种算法即被称为“误差反向传播算法”[4]或“负梯度修正算法”[5].

根据上述原理,以下给出BP神经网络算法的实现过程[6].

假设X=(xij)是一个样本输入矩阵(i=1,2,…,n,j=1,2,…,p),每一行代表一组观测值,且每一组输入观测值对应一个输出值,整体样本的实际输出样本为Y=[y1y2… yn]T,每一列可以理解为一个指标或属性,那么输入层的输入I1即为X,通常输入层与输出层处的激励函数均为线性函数,那么广义上得到输入层神经元的输出O1即为X.

假设隐含层神经元的个数为m个,对应的权值矩阵为W=(xij)(i=1,2,…,m,j=1,2,…,p),阀值矩阵为B=(b1,b2,…,bm)T,那么隐含层的输入

I2=Wm×p×X'p×n+B×ones1×n

(1)

通常作为隐含层的激励函数为单极S型函数即Sigmoid函数,其表达式为f(x)=(1+e-x)-1,那么隐含层的输出为O2=f(I2).输出层的输入与隐含层的输入类似为I3=Wjk×O2+Bjk×ones1×n,对于第三层的输出,由传递函数为线性函数,所以,可以认为O3=I3.

以下计算输出层与隐含层和隐含层与输入层连接权阀值的调整量分比为

(2)

(3)

观察到f'(x)=f(x)[1-f(x)],可知隐含层的权阀值调整量为

(4)

(5)

BP神经网络的误差反向传播算法事实上即将每一次权阀值的调整量与前一次的权阀值相整合,直至得到误差最小的最优状态,具体的调整过程为

(6)

(7)

(8)

(9)

从上述推导可以看出,误差通过从输出层到隐含层的反向传播实现了连接权阀值的不断最优调整过程,但是在实际的算法实现过程中,权阀值通常是通过随机数来产生的,因而不易获得一组好的权阀值.

2.2 研究过程

为了消除数据数量级与量纲方面的差异,首先对数据进行了适当的归一化处理,具体得到的开盘指数对比如图1、图2所示.

图1 原始开盘指数

图2 归一化后开盘指数

从图1和图2可以看出,归一化之后的开盘指数基本保持了原始开盘指数的走势规律.以前3000组数据为网络训练样本,以后505组数据为网络测试样本,设置的初始网络结构为[7]:设置两个隐含层,且在经过多次测试之后确定最佳的隐含层神经元个数为50,20,隐含层与输出层传递函数均为tansig,网络训练函数为traingda,最大的迭代次数为1000次,学习率为0.1,目标精度0.000004.

利用MATLAB软件对3000组训练样本进行训练后,平均相对误差降低到135.988,从预测股指输出与实际股指输出的对比情况来看,BP网络结构在一定程度上实现了对训练集股指开盘数的准确判断,且误差基本上控制在5%以内,具体的训练结果与误差显示如图3~4所示.

图3 训练集网络开盘指数预测输出

图4 训练集预测输出与实际输出误差

以下利用训练好的BP网络对测试集数据进行仿真预测,测试的具体结果如图5所示.

图5 测试集网络开盘指数预测输出

从图5可以看出,训练好的BP神经网络在测试集短期内对开盘指数的预测较好,但是随着时间的推迟,在股价剧烈波动的区域,网络的预测输出与实际输出存在着较大的差异.预测指数与实际指数之间误差如图6所示.

图6 测试集网络预测输出与实际输出误差

从图6可以看出,网络在短期内的预测输出与实际输出之间的误差较小,但是长期内的误差震荡较大,预测输出与实际输出之间的偏离程度非常大,因而BP神经网络在对于长期股票指数的预测仍然存在着较大的缺陷.为了进一步比较测试集预测输出与实际输出之间的误差,选取了股价波动幅度较小的六天(2014年5月28日至2014年6月5日)和波动幅度较大的六天(2015年6月18日至2015年6月26日)进行对比,整理的输出结果,如表1所示.

表1 网络预测输出与实际输出结果

从表1可以看出,位于测试集初期时段且股价波动幅度较小时,BP神经网络的预测输出对实际输出具有较高的拟合度,但对股价波动幅度较大的时段预测输出则严重偏离实际输出.

3 结论

本文基于BP神经网络的误差反向传播算法,利用MATLAB软件建立了以前一日股票的开盘价、收盘价、最低价、最高价、成交量、成交额和涨跌幅为自变量,以后一日的开盘价为因变量的股票指数预测模型,通过对比网络的预测输出与实际输出得到以下两点结论.

(1)BP神经网络在一定程度可以实现对短期股票指数较为准确的预测,但对于长期股票指数预测效果并不理想,在实际的股票投资中,BP神经网络可以为短期指数的预测提供一定的借鉴,但对于长期的投资预测仍有待预测模型进一步的修正与改善.

(2)BP神经网络对股价波动浮动较小时段的股指预测要明显比对股价波动浮动较大时段的股指预测准确,这主要是由于股价波动幅度较大的区域受到短期不确定的因素影响较多,如相关利好政策、市场羊群效应预期等,因而预测的精度也显著降低.

[1]王小川,史峰.MATLAB神经网络30个案例分析[M].北京:北京航空航天大学出版社,2013.

[2]陈敏.基于BP神经网络的混沌时间序列预测模型研究[D].长沙:中南大学,2007.

[3]韩立群.人工神经网络理论、设计及应用[M].北京:化学工业出版社,2002.

[4]余立雪.神经网络与实例学习[M].北京:中国铁道出版社,1996.

[5]飞思科技产品研发中心.神经网络与MATLAB 7实现[M].北京:电子工业出版社,2005.

[6]杨杰.MATLAB神经网络30例[M].北京:电子工业出版社,2014.

[7]刘玉静,李成华,杨升明.辽宁省农机总动力组合预测与分析[J].农机化研究,2007(5):31-33.

(责任编辑:陈衍峰)

2016-07-12

国家自然科学基金资助项目“随机动力系统的非一致指数二分性及其数值模拟”(11301001);安徽高等学校省级自然科学基金项目“基于分数布朗运动的组合信用衍生品定价及其应用研究”(KJ2013Z001);安徽财经大学校级重点研究项目“信用衍生品定价研究”(ACKY1402ZD)

黄宏运,安徽合肥人,安徽财经大学金融学院在读.

F830.91;O29

A

1008-7974(2016)05-0032-03

10.13877/j.cnki.cn22-1284.2016.10.011

猜你喜欢

阀值安徽神经元
跃动的神经元——波兰Brain Embassy联合办公
激光多普勒测速系统自适应阀值检测算法
基于模糊数学的云南省区域经济研究
安徽医改自我完善主动纠错
安徽药采如何“三步走”
安徽 诸多方面走在前列
安徽为什么选择带量采购
某尾矿库在线监测设防阀值确定方法
深度学习在无人驾驶汽车中的应用
ERK1/2介导姜黄素抑制STS诱导神经元毒性损伤的作用