基于小波分析与神经网络时间序列的股票预测方法
2013-04-29王刚许晓兵
王刚 许晓兵
摘要:本文提出基于小波分析与神经网络时间序列的股票预测方法,把股票每日最高价、最低价以及开盘价进行小波去噪处理,然后把去噪后的数据利用BP(Back Propagation)神经网络进行预测分析,实验的结果表明利用处理后的数据进行分析比传统的直接使用神经网络进行分析的精准度更高,预测的效果更好。
关键字:小波分析;去噪处理;神经网络;股票预测
一、引言
从股票产生起,人们就开始对它进行各种各样的研究,研究表明股票市场是一个极其复杂的动力学系统。高噪声、严重非线性和投资者的盲目任意性等因素决定了股票预测的复杂与困难。针对股票市场表现的不同特点,人们提出了多种多样的预测方法,常用的预测方法有下面几种:
1.证券投资分析法。这是分析和预测股价变化方向和趋势的方法,可分为基本分析法、技术分析法和组合分析法三大类。
2.时间序列分析法。这种方法主要是通过建立股价及综合指数之间的时间序列相关辨识模型。
3.其它预测方法。如专家评估法和市场调查法等定性方法,季节变动法、马尔柯夫法和判别分析等定量预测方法。
4.神经网络预测法。人工神经网络以其独特的信息处理特点在许多领域得到了成功应用。它不仅具有强大的非线性映射能力,可以实现复杂的因果关系,而且还具有许多优秀品质,如:自适应、自学习和纠错性等。BP神经网络模型作为证券市场预测的基本因果模型,收到良好的效果。
5.小波神经网络预测法。小波神经网络是神经网络的一种改进,它融合了神经网络和小波的优点。与一般的神经网络相比它对高频信号的适应能力更强,预测效果更好[1]-[2]。
由于神经网络具有可任意逼近非线性连续函数的学习能力和对杂乱信息的综合能力,国内外众多学者都曾使用其对股票数据进行预测。White(1992)尝试用神经网络来预测IBM普通股每日的收益率;吴华星(1998)根据自组织模式理论建立了基于前馈神经网络的股票价格预测系统;宋军等(2007)采用Elman回归神经网络分析方法,通过对股票市场的技术指标的建模, 寻求股票价格的变化规律, 实现对股票价格的预测。但是经过研究发现,使用人工神经网络进行预测一旦陷入局部最小值就会使其预测结果大打折扣。王建伟(2004)运用Haar和dbN小波对鞍山信托的收盘价和成交量进行变换再用神经网络对股票价格预测取得了较好的预测结果;兰秋军等(2004)[4]和邓凯旭、宋宝瑞(2006)讨论了小波变换在金融时间序列中的应用,得出小波方法可有效消除金融时间序列中的噪声,并能充分保留原信号的特征;李萍(2010)结合小波变换与神经网络对汇率等一些经济数据进行预测也收到了很好的效果。[5]可见把小波与神经网络相结合的分析预测方法在经济数据预测中能够收到很好的效果。开盘价是股票当天第一笔成交价格,是市场各方对当天股价的一个预期,对股价的走势具有一定的预测作用。本文通过小波对股票每日最高价、最低价以及开盘价进行去噪处理,然后用BP神经网络对开盘价进行预测。避免了非正常价格对股票的影响,提高了预测的精度。
二、小波消噪的基本原理
小波分析方法是一种窗口大小固定但其形状可以改变,时间窗和频率都可以改变的时频局部化分析方法。即在低频部分具有较高的频率分辨率和较低的时间分辨率,在高频部分具有较高的时间分辨率和较低的频率分辨率,所以被誉为数学显微镜,正是这种特性,使小波变换具有对信号的自适应性。小波分析有两个显著特点:一是在时域都具有紧支集或近似紧支集;二是正负交替的波动性。小波分析是将信号分解成一系列小波函数的叠加,而这些小波函数都是由一个母小部进行比较,获取的是信号的高频部分。小波分析理论有一个重要的特色就是可以进行多分辨率分析。信号可以通过多层次分解为反映高频信息的细节部分和反映低频信息的概貌部分,通过这种多分辨率分解,信号和噪声通常会有不同的表现,从而可达到信噪分离的目的。综上所述我们可以利用小波函数去除股票价格信息中包含的噪声因素。
三、BP神经网络
BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐含层(hide layer)和输出层(output layer)。它是利用非线性可微分函数进行权值训练的多层网络,具有极强的容错性、自组织和自学习性,有着较好的函数逼近和泛化能力[6]。
BP神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。[7]-[9]
在金融数据分析预测中经常会遇到一些复杂的非线性系统,这些系统状态方程复杂,难以用数学方法准确建模。在这种情况下,可以建立BP神经网络表达这些非线性系统。该方法把未知系统看成是一个黑箱,首先用系统输入输出数据训练BP神经网络,使网络能够表达该未知函数,然后就可以用训练好的BP神经网络预测系统的输出。本文将把股票每日的最高价和最低价作为输入,股票每日的开盘价作为输出训练神经网络,使得训练后的神经网络能够预测股票开盘价的输出。
四、实例分析与结果
本文采用MATLAB小波分析功能实现原始股票数据的分解与重构,采用MATLAB语言编程。股票数据采用江苏洋河酒厂股份有限公司(SHE:002304)2012年4月到6月每日股票的开盘价、最高价和最低价共计150组数据。通过小波分解与重构后,前140组数据用于训练神经网络,后10组数据用于预测检验。
根据正交性、紧支撑性、消失矩和对称性等与去噪关系紧密的小波函数的特性,我们选择小波,用函数获得信号的默认阈值将其多分辨率分解到第3层,使用命令函数来实现消噪过程。每日开盘价的消噪结果如图4-1所示。由于实例中有两个输入参数,一个输出参数,所以我们选择BP神经网络的结构为2—5—1,即输入层有两个节点,隐含层有五个节点,输出层有一个节点。然后把经过消噪的数据输入到BP神经网络中进行训练和预测,预测的结果如图4-2所示。为了比较降噪前和降噪后的BP神经网络预测误差的区别我们再使用未降噪的数据进行预测并保持BP神经网络的各项参数不变,预测结果如图4-3所示。我们得到经过降噪处理后的数据预测十天开盘价的总误差为:4.0091,而未处理过的数据预测十天开盘价的总误差为:35.6732。由此可得基于小波消噪与神经网络时间序列的股票预测方法明显优于普通的神经网络预测方法。