
股票市场的价格走势是极为复杂且难以预测的,
这是因为市场参与者难以准确把握宏观经济形势、金融、公司财务状况、国际环境以及投资者心理承受能力等因素的变化及其对市场的影响方式和作用。于是,如何较为准确地预测股票收益率引起许多研究者和市场分析人员的极大兴趣,他们都试图建立关于股票收益率适当的计量经济模型。
以往很多文献都将股票收益率作为线性时间序列进行建模与预测,具体模型包括自回归滑动平均
(ARMA
)模型、季节模型及带时间序列误差的回归模型,它们试图用简单模型来刻画股票收益率与时间所拥有的信息之间的线性关系。这些模型的预测有一定的精度,但是模型仅仅局限于线性问题分析,并不能很好地解决股票市场中的非线性问题。随着研究的深入,一些非线性模型被很好地运用到股票市场时间序列上。
此外,不少研究表明,门限自回归模型(TAR )及其扩展模型在预测股票收益率时也有较强的能力。近年来,许多学者在尝试着用核回归、局部最小二乘估计及神经网络等非参数方法对股票收益率进行预测。[1]其
基于BP 神经网络的股指收益率预测研究
———以高频数据为样本
叶银龙
黄晓莉
刘
干
摘要:
高频金融数据和金融资产收益率是金融计量学的一个全新的研究领域。目前,国内学者利用年、月、日等低频数据对股票市场的收益率进行了很多的研究,但是以日内高频数据为基础的研究还不多见。如何较准确地预测基于高频数据的股票收益率是进一步深入研究金融市场的基础,论文采用数据挖掘中的BP 神经网络对沪深
300指数高频数据中的日内收益率进行建模与预测。结果表明:神经网络模型对股票高频数据的日内收益率具有很强的预测能力。
关键词:
高频金融数据;收益率;神经网络;预测Forecast of Stock Market Returns Based on BP Neural Network
———Case of the High-Frequency Data Ye Yinlong ,Huang Xiaoli ,Liu Gan
Abstract:The study of high -frequency financial data and stock market returns is a brand new field in financial econometrics,however,current studies on financial returns usually use low-frequency data rather than high-frequency data.How to better measure stock market returns based on high-frequency data is the basis of further study in the financial market.This paper attempts to build up a BP neural net by using high-frequency data of the Shanghai and Shenzhen 300Index to forecast the returns.The results show that neural net is capable of measuring the returns of stock market based on high-frequency data.
Key Words:high frequency financial data;returns;neural network;forecast
作者简介:叶银龙,1983年生,浙江龙泉人,杭州电子科技大学财经学院统计学硕士研究生,研究方向:金融数据挖掘、神经网络;黄晓莉,1962年生,浙江台州人,杭州电子科技大学财经学院副教授,研究方向:数理统计与经济分析;刘干,1967年生,安徽安庆人,杭州电子科技大学财经学院副教授,研究方向:计量经济与统计建模。
第4期
(总第115期
)2009年4月
No.4
(Series No.115)Apr 2009
统计教育Statistical Thinktank
股票市场本质上属于典型的非线性动力学系统,而神经网络模型可以很好地解决这一类非线性问题。与一般的统计模型相比较,神经网络可以不考虑传统统计模型中较多的研究条件与假设,可利用学习训练或设计网络结构的方式处理非线性问题。目前,神经网络模型被广泛地运用到关于股票市场的研究中。Atiya A F、Chen J F利用股票市场中常用的技术指标或公司金融比率作为变量,通过神经网络学习并搜寻技术指标中可能存在的套利关系,以解决投资者在使用技术指针上的复杂性及消除可能的冲突。[2][3]Maa-soumi采用不同的预测期间、比较方式加以分析神经网络与ARMA模型在股市上价格的估计或应用的优劣。[4]但Meissner G在分别采用股价原始信息及技术指标所建立的神经网络模型进行股价预测时,发现原始信息比技术指标更加有效。[5]同样地,Chenoweth在采用不同周期的技术指标时,发现以周为单位且训练样本越多时,此时神经网络预测能力最佳,而变量越多并不见得能提高神经网络的预测能力。[6]众多研究表明,神经网络在股票市场的运用是相当广泛有效的,而且所建立模型的预测能力是非常不错的。不过,他们的缺陷在于其研究基本上都是针对股票市场的低频数据进行建模,而关于日内高频数据建模的文献非常少。高频数据是指以小时、分钟或秒为抽样频率的日内数据,如果数据频率越高,获得的股票市场信息就越多。而且,股票日内收益率预测得越精确,股票市场波动率将会得到更有效的度量,从而进一步有利于风险管理和控制。因此,基于高频数据的股票日内收益率研究越来越受到人们的关注。
基于以往研究的不足,本文以股票市场高频数据为对象,利用BP神经网络对日内收益率进行建模与预测,以寻求精度更高的预测模型,从而可以更好地把握股票市场的波动趋势及有助于市场参与者对证券市场进行风险控制和管理。
2BP神经网络模型原理
2.1BP模型概述
BP(Back-Propagation)神经网络是一类前馈型神经网络,它由输入层、中间层和输出层组成,中间层也就是隐含层,可以是一个或多个。每层包含若干互不连接的神经元节点,相邻层之间各神经元通过不断变化的连接强度或权值进行全连接。图1所示为BP神经网络拓扑结构。其中:输入层有n个节点,对应输入x1~x n;输出层有m个节点,对应输出y1~y m;隐含层有q
个节点,对应的输出z
1
~z q;输入层与隐含层之间的权
值v
ik
,隐含层与输出层之间的权值为w
kj
。
BP网络中隐含层激活函数通常采用S型的对数或正切函数和线性函数。由于激活函数是连续可微的,不仅使得网络的容错性较好,而且可以严格利用剃度法进行推算,权值修正的解析式十分明确[7]。
2.2BP学习算法
BP学习算法是一种有监督的学习过程,它是根据给定的(输入、输出)样本数据来进行学习,并通过调整网络连接权值来体现学习的效果。就整个神经网络来说,一次学习过程由输入数据的正向传播和误差的反
向传播两个子过程构成。设有N个学习样本(X
k
,Y*
k),k= 1,2,…,N,对样本(X k,Y*k),在正向传播过程中,样本k
的输入向量X
k
=(x1k,x2k,…,x nk)从输入层的n个节点输入,经隐含层逐层处理,在输出层的m个节点的输出
端得到样本k的网络计算输出向量Y
k
=(y1k,y2k,y mk)。比较Y k和样本k的期望输出向量Y*k=(y*1k,y*2k,…,y*mk),若N 个学习样本的计算输出都达到期望的结果,则学习过
程结束;否则,进入误差反向传播过程,把Y
k
与Y*
k的误差由网络输出层向输入层反向传播,在反向传播过程中,修改各层神经元的连接权值[8]。
BP反向传播算法的具体步骤可归纳如下:
(1)输入N个学习样本(X
k
,Y*
k),k=1,2,…,N。
(2)建立BP网络结构。确定网络层数L≥3和各
层节点数,由学习样本输入向量X
k
的长度n确定网络
输入层节点数为n;由学习样本输出向量Y*
k的长度m 确定网络输出节点数为m;第l层的节点数为n(l)。定义各层间连接权矩阵,第l层连接第l+1层的连接权矩阵为W(l)=[W(l)ij]n(l)×n(l+1)(l=1,2,…,L-1),初始化各连接权矩阵的元素值。
(3)输入允许误差ε和学习率η,初始化迭代计算次数t=1,学习样本序号k=1。
图1BP神经网络基本结构
(4)取第k 个学习样本(X k ,Y *k ),
X k =(x 1k ,x 2k ,…,x nk ),Y *k =(y *1k ,
y *2k ,…,y *
mk )。(5)由X k 进行正向传播计算,计算输入层各节点的输出为
O (l )
jk =f (x jk )(j =1,2,…,n )
(1)
逐层计算各层的各节点输入和输出为
I (l )jk
=n (l -1)
i =1
Σw (l -1)ij O (l -1)ik (2)O (l )jk =f(I (l )
jk )(l =2,…,L ;j =1,2,…,n (l ))
(3)(6)计算输出层(第L 层)的各输出节点误差为
y jk =O (l )jk
(4)E jk =12
(y *
jk -y jk )2(j =1,2,…,m )
(5)
(7)若对N 个学习样本的任一样本k 有E jk ≤ε(j =1,
2,…,m ),则学习过程结束;否则,进行误差反向传播修改各连接权矩阵。
(8)误差反向传播计算。修改第L -1层隐含层至输出层(第L 层
)的连接权矩阵为δ(L )jk =-(y *jk -y jk )f (I (L )jk )(6)△w (L -1)ij (t )=ηδ(L +1)ji O (L )ik
(7)w (L -1)ij (t +1)=w (L -1)ij (t)+△w (L -1)ij (t )(8)
(j =1,2,…,m ;i =1,2,…,n (L -1))
反向逐层修改连接各隐含层的连接权矩阵:
δ(l )jk =f (I (l )jk )n (l +1)
q =1
Σδ(l +1)qk w (l )
jq
(9)△w (l -1)
ij
(t )=-ηδ(l )jk
O
(l -1)ik
(10)
w (l -1)ij
(t +1)=w (l -1)ij
(t )+△w (l -1)
ij
(t )
(11)
(l =L -1,…,2,1;j =1,2,…,n (l );i =1,2,…,n (l -1))(9)k =k +1(mod N ),t =t +1转步骤(4)。
3样本选取与模型设计
3.1样本选取和分析
本文主要针对沪深300指数的日内高频数据,对
其收益率进行建模和预测。所用数据全部来自同花顺股票交易系统,采用沪深300指数2008年7月1日至9月18日每日的1分钟高频数据,共13817个有效样本,其中包括10658个学习样本和3159个测试样本。
本文的研究对象是高频金融时间序列的收益率,并采用下面的公式来表示:
R t (i )=P t -P t -i
P t -i
i =1,2,…,n
(12)
式中:R t 为沪深300指数时刻(以1分钟为单位)的收益
率,
P t 为t 时刻的收盘价格,P t -i 为t -i 时刻的收盘价格。在金融文献中,资本资产定价模型(CAPM )理论就假定资产收益率序列是不可预测的,应没有自相关性。零自相关系数的检验被用来作为有效市场假定是否成立的判定工具。然而,股价的决定方式和指数收益率的计算方式可导致在观察到的收益率序列中有自相关性,尤其是分析高频数据时。为研究样本时期内高频金融时间序列的计量统计特点,本文采用E -views 对该数据进行相关性检验,并得到高频金融数据波动率自相关及偏相关分析如表1所示:
从表1可以发现,在0.05的临界水平下,高频金融时间序列收益率与其37阶以内的滞后项存在较为显著的相关性,但是与37阶以后的滞后项不存在明显的相关性。因此,
在对高频金融时间序列收益率进行建模时,可以选择当前收益率及其37阶滞后项作为变量。3.2输入\\出层的向量确定
神经网络不需要任何已知的统计或数学知识描述输入—输出模式间的映像,它是根据已选取的样本数据,通过学习和训练,凭自身的网络结构实现对信息的记忆,然后对测试样本进行预测。因此,在神经网络训练时,训练数据应包含所研究对象的全部模式。即,本文输入向量的各个分量应该选取能充分反映沪深300指数收益率的定量指标。通过对高频金融时间序列波动率相关性表的研究,确立了38个输入层节点(神经元),包括时刻的收益率及其前37分钟每分钟的收益率,即R t (1)、R t (2)、...、R t (37)、R t (38)。
输出层是对基于高频数据的收益率进行预测,即以时刻的沪深300指数收益率作为输出神经元。输入及输出变量的样本数据见表2:
表1
高频数据收益率相关性检验表
高频数据时点R t(1)R t(2)R t(3)…R t(38)R t+1第1分钟0.00230.00250.002852…0.0112750.002858第2分钟0.0028580.0055090.005430…0.013909-0.00079第3分钟-0.000790.0020680.004717…0.0112150-0.00125…………………3.3隐层神经元数目的确定
隐层神经元负责实现非线性样本的线性转换,所
以在BP网络设计中具有十分重要的作用。隐含层层
数和节点个数可自行指定,一般在神经网络中选择一
层隐含层,而确定合适的隐层神经元数目是设计BP
网络的关键。在以往的众多研究中,人们总结出一些
关于确定隐层神经元个数的经验公式,其中,Mir-
chadani认为隐含层单元数J与输入模式P的关系为:
J=log2P。本文根据Clementine神经网络训练方法中的
快速训练法,运用多层感知机模型,确定为一层隐含
层,而隐含层的节点数目依据公式max(3,(n
i
+n0)/20),
其中:n
i 为输入节点数;n
为输出节点数。根据以上公
式,可以计算隐含层的神经元数目为3。
3.4激活函数的确定
激活函数是一个神经元及网络的核心,网络的预测能力在很大程度上取决于所采用的激活函数。激活函数f(x)的作用是激活神经元,使其对输入产生响应。在实际应用中,可根据需要选取适当的激活函数,常用的是Sigmoid类型的函数。由于激活函数f(x)所具有的非线性特征,使BP算法训练的多层前馈式网络建立了从输入到输出的高度非线性映射,可以表达复杂的客观现象。而且,由于其导数常常可用f(x)自身表示,所以在误差反向传播的过程中,不需要另外计算激活函数的导数,大幅度地减少了计算量,提高了网络的效率。在实际应用中,通过对股票样本数据的学习训练,可以发现采用f(x)=tan1/[1+exp(-x)
!"
]作为激活函数,网络的收敛速度最快。
4实证结果与分析
本文运用SPSS Clementine数据挖掘软件,以高频数据为样本对沪深300指数的日内收益率构建BP神经网络模型。其基本过程是,首先将2008年7月1日至8月29日的10658个样本数据作为学习和训练样本,建立一个三层BP神经网络模型,然后用剩余的3159个样本数据作为测试样本,来进行模式识别,再判断神经网络模型对沪深指数收益率的拟合程度及预测效果。
用样本数据对神经网络进行训练时,需要网络训练参数进行设置,本文确定动力因子α=0.9,较高的α值有助于避免网络的局部极小值,使神经网络的权数调整更加平滑;预测精度为90%,迭代周期为250次,控制误差取为0.0001。最大容许误差设为0.005,学习步长为0.01,最大训练次数为500。
利用上述神经网络及其网络规则,可以得到预测精度为98.72%的神经网络模型。基于已构建的BP神经网络模型,再将其对剩余3159个测试样本进行判断,来验证系统的预测结果。在Clementine中,将BP 神经网络加入到测试样本的数据流中,可以得到测试样本相对应的沪深指数收益率预测值。再将收益率预测值和收益率实际值做比较分析,如图2所示:
从图2可以发现,神经网络模型较好地拟合了测试样本的收益率,仅仅有几个时点预测效果不佳。由于测试样本较大,为了更加直观清楚地判断收益率的预测效果,选取了预测周期第一天的收益率实际值与预测值进行比较,得到图3的时间序列图:
由图3可见,BP神经网络对于沪深300指数收益率的拟合效果相当不错,就整体趋势而言,网络模型基本上模拟出实际收益率的特征,说明BP神经网络图2收益率实际值与预测值比较
图3股指收益率预测值与实际值时序比较图
From Data to Decisions.New York:Wiley.[3]Lambert,D.,Zero-inflated Poisson regression,with an application to defects in manufacturing [J].Technometrics 1992,(34):1-14.[4]
Ridout,M.,J.Hinde,and C.G.B.Demetrio.A score test for testing a zero -inflated poisson regression model against zero -inflated negative binomial Alternatives [J].Biometrics 2001,(57):219-23.[5]
Miaou,S.P.,The relationship between truck accidents and geometric design of road section:Poisson versus negative binomial regression [J].Accident Analysis and Preventation 1994,(26):471-482.
[6]Mullahy J.Specification and Testing of Some Modified Count Data Models [J].Journal of Econometrics.1986,(33):341-365.[7]
Dionne,G.,M.Artis,and M.Gullen.Count data models for a credit scoring system [J].Journal of Empirical Finance.1996,(3):303-25.
[8]SAS Institute Inc.,Solving business problems using SAS enterprise
miner software [M].SAS Institute White Paper 1998.Cary NC:SAS Institute Inc.
(责任编辑:宁红)
参数Poisson Negative Binomial
Hurdle ZINB 截距-1.2388(0.010)*-1.2187
(0.1045)*-0.4558(0.1130)*-0.5619(0.03082)*用途0.2750(0.04487)*0.25(0.06387)*0.03324(0.05749)0.14(0.05013)*婚姻状况-0.1083(0.04260)*-0.1430(0.05976)*-0.04119(0.05458)-0.1107(0.04557)*行驶区域 1.3919(0.08367)* 1.4071(0.09705)*0.07969(0.1096) 1.2298(0.07199)*收入-0.02825(0.004937)*-0.03087(0.006731)*0.000245(0.006297)-0.01740(0.005501)*性别-0.1124(0.04393)*-0.1187(0.06147)0.01153(0.05627)-0.05102(0.05063)-2Log-likelihood
7118.46749.26693.76536.5AIC 7130.46763.26707.76552.5BIC 7166.06804.86749.36600.0自由度
2806
2805
2805
2804
表3
回归模型的参数估计值
对于指数收益率的预测能力是较强的。
为检验模型的预测效果,引入MAPE 指标,MAPE 平均相对误差绝对值的定义为:
MAPE =1
n
n
i =1
Σ
y i -y 赞i
i
(13)
式中,y i 为实际值,
y 赞i 为预期值。根据上述公式,计算得到BP 神经网络3159个测试样本的MAPE =1.66%,表明神经网络的预测精度非常高,BP 神经网络对于高频金融时间序列收益率的预测是有效的,而且预测效果非常好。
5结论与启示
股票市场高频数据是当前金融计量研究的热点
问题,基于高频数据的股指日内收益率建模与预测对于深入研究证券市场具有十分重大的意义。本文采用数据挖掘中的神经网络对高频数据进行建模与预测,
实证研究表明其预测能力是非常有效的,可以有效地
模拟出短期的沪深300股票指数时间序列收益率的趋
势特征。这不仅仅验证了数据挖掘技术在高频数据中应用的可行性,而且也为进一步测算股票市场波动率与金融领域的衍生工具定价、风险管理与控制及投资
组合等提供了一个可靠的工具。
参考文献
[1]Ruey S.Tsay.Analysis of Financcial Time Series[M].北京:机械工业出版社,2006.234-263.
[2]
Atiya A F.Bankrucy prediction for credit risk using neural net -works:A survey and new results.Neural Networks,IEEE Transac -tions on,2001,(12):929-935.[3]
Chen J F.Analysis of an adaptive time-series autoregressive mov -ing-average model for short-term load forecasting.Fuel and Ener -gy Abstract,1996,(37):108-116.
[4]Maasoumi E and Racine J.Entropy and predictability of stock mar -
ket returns.Journal of Econometrics,2002,(107):291-312.[5]
Meissner G and Kawano N.Capturing the Volatility Simple of Op -tions on High-Tech Stocks-A Combined GARCH-Neural Network
Approach.Journal of Economics and Finance,2001,(25):276-292.
[6]Chenoweth T,Hubata R,Louis R D S.Automatic ARMA identifica -tion using neural networks and the extended sample autocorrela -
tion function:a re-evaluation.Decision Support Systems,2000,(19):21-30.
[7]袁曾任.人工神经元网络及其应用[M].北京:清华大学出版社,
1999.
[8]朱大奇,史慧.人工神经网络原理及应用[M].北京:科学出版社,2006.
(责任编辑:王锋)上接第33页
333333333333333333333333333333333333333333333
