一种基于非负矩阵分解的股票市场中的异常检测方法与流程

文档序号:11178236
一种基于非负矩阵分解的股票市场中的异常检测方法与流程
本发明属于证券市场的智能检测算法,特别涉及一种基于非负矩阵分解的股票市场中的异常检测方法。

背景技术:
异常检测旨在检测出不符合期望行为的数据,因而适合应用于故障诊断、疾病检测、入侵和欺诈检测、金融市场波动检测等多个领域。在对股票市场波动相关理论和模型的研究中,主要集中于异常波动的分析,具有时间序列的股票市场数据中的异常波动通常会导致模型参数估计偏差、较低的波动预测准确性以及得出一些无效的结论等。因此,对股票市场的时间序列数据中的异常值检测具有重要意义。通常,根据机器学习、模式识别的理论和方法可以把检测方法归为六类:基于类别的检测,最邻近检测法,基于聚类的检测,统计检测、基于信息理论的检测、基于光谱理论的检测。近年来也发展了利用信号处理的方法来进行异常检测。特别是在高频或者超高频金融数据的建模方面,取得了一些研究成果,比如在GARCH类模型基础上发展的弱GARCH模型和异质ARCHCHARCH模型等,但是还没有一个被普遍认可的模型框架。Andersen和Bollerslev于1998年提出了“己实现”波动的测量方法,通过“己实现”波动理论,把高频数据的金融波动转换成一个可观测的时间序列,如此就可以采用常规的标准时间序列分析方法对高频数据进行建模研究。在多变量的情况下,“己实现”波动理论还可以克服多元GARCH模型和多元SV模型参数估计中的“维数灾难”问题。BilenC和Huzurbazar,S.Grane提出了一种基于小波的异常值检测方法,但该方法检测到的异常值的平均错误率很高。Franses,Doornik,Ooms等提出了一种通过多次循环建立GARCH模型的方法检测异常值。Zhang,King进一步发展了一种基于曲率的方法来检测小扰动在回归分析和GARCH模型中的影响,也被用来检测异常值。Grane和Veiga以时间序列的GARCH模型残差为基础,提出了检测并定位异常的方法,并对道琼斯指数的历史数据做了实证分析,能够检测出历史上股市因发生重大事件而表现出的较大波动。股票市场本身也是一个复杂系统,因此复杂系统理论亦可用以金融数据的检测。最早由Ray在2004年提出的D-Markov模型就是基于复杂系统隐含模式的时间序列数据快速检测方法。之后,Chin,Ray等进一步在异常检测领域将该模型与统计方法和神经网络方法进行对比,发现D-Markov模型更优于其他两种方法。

技术实现要素:
为解决上述现有技术存在的问题,本发明的目的在于提供一种基于非负矩阵分解的股票市场中的异常检测方法,本发明在考虑直接用小波分析进行异常检测的局限性的基础上,引入了一种非负矩阵分解(NMF,NonnegativeMatrixFactorization)的数据处理方式。非负矩阵分解自1999年Lee和Seung在《Nature》上提出后,在图像处理、文本信息处理、生物信息等领域有着广泛的应用。NMF的最大优点是能够在一定程度上识别数据的局部特征,定量地刻画局部与整体之间潜在的、可加的非线性组合关系。我们利用NMF对高维股指数据进行分解,得到最具股指特征的权系数向量,并对该向量构成的信号采用了小波分析的方法,得到权系数向量的多层分解波形,通过加权融合的方式,计算出超出波动阈值的异常点。为达到上述目的,本发明的技术方案为:一种基于非负矩阵分解的股票市场中的异常检测方法,包括如下步骤:步骤一、建立股指数据矩阵;以股票每日收盘时的指数特征属性,构成一个记录项为矩阵行,时间维度构成矩阵的列,以股票每天收盘时候指数作为一个记录项,构成了股指数据矩阵,所述股指数据矩阵为非负矩阵,满足:X=[xi,j]n×m;步骤二、利用NMF对股指数据矩阵进行分解,得到代表股指特征基的基矩阵U和代表低维的权重系数的系数矩阵V,其中,U=[ui,j]n×d和V=[vi,j]d×m,使得它们满足X≈UV(1)其中,原矩阵X的任意一列矢量可以解释为对左矩阵U中所列矢量-基矢量的加权组合,而权重系数为右矩阵V中对应的矢量元素;如果矩阵U,V分别重写为:U=[ui,j]n×d=[U1,U2,...Ud](2)V=[vi,j]d×m=[V1,V2,...Vm](3)进行非负矩阵分解后,矢量Xj被表示为Xj≈UV,其中Vj=[v1j,v2j,...vdj]T(4)Xj≈v1jU1+v2jU2+...+vdjUd(5)矢量Xj可以通过矩阵U的列矢量U1,U2,…Ud的线性组合来近似表示,而X与UV之间的误差定义为:其中步骤三、寻找最优U,V的过程就是最小化D(X||UV)值的过程,因此需要满足既能快速把X分解为U和V两个非负矩阵,又要确保D(X||UV)的值最小;这里采用一种求解非负矩阵的迭代计算机方法,通过重复迭代规则可以保证U,V收敛于局部最优,对股票时间序列Xn×m进行非负矩阵分解得到基矩阵Un×r和系数矩阵Vr×m,其计算表达为:其中x,u,v分别表示对应矩阵的元素,u,v可以选取任意的非负矩阵作为初始值,通过多次迭代最终收敛到稳定的v,u,将基矩阵U看作是构成股票时间序列数据的基本单元,任何一支股票指数都是由这些基本单元构成,这里定义为“股指特征基”;系数矩阵是这些特征基组合成股票时序数据的权值,Vi是矩阵V的列向量,是对应股指向量Xi的权系数向量,也就是说单个股指的时间序列数据是由股指特征基U与Vi的乘积;由于Vi的维度小于n,这一步实现了维度约减;步骤四、对权系数向量Vi实施小波变换,得到多层级的不同粒度的波形;对波形的波动幅度进行检测,从波形幅度中判断异常情况;步骤五、在确定了序列异常位置后,进行实证分析:从对权系数向量Vi进行小波变换后的序列中找出检测到的异常波动相对于序列的位置,然后在原始矩阵数据中对应的位置标记出异常事件的时间点,并考察该时间点股市指数的变换情况,从而判断检测的准确性,具体做法如下:(1)从进行小波变换后的序列中,标记出异常点的位置;(2)对序列进行小波变换的逆变换到股指序列向量Vi',还原出股指特征向量,即股票指数时间序列向量;(3)从带标记的股票指数时间序列向量中,定位出出现异常波动的时间点。进一步的,所述步骤一的股指数据矩阵,以股票每日收盘时的指数特征属性,有多空指数BBI、意愿指标BR、平均趋向指数DMI.ADX、平均方向指数评估DMI.ADXR、多方指数DMI.+DI、空方指数DMI.-DI)、随机指数KDJ、指数平滑移动平均线MACD、威廉变异离散量WVAD、价格推动量Power、相对强弱指数RSI、人气指标AR、乖离率BIAS、顺势指标CCI、指数平均数EXPMA、动量指标MTM、能量潮OBV、心理线PSY、停损点转向SAR、容量比率VR、均价线AVL、收盘价的N日简单移动平均BOLL.BOLL、布林线上缘BOLL.UB、布林线下缘BOLL.LB、CR指标CR、换手率线HSL、移动平均线MA、加权移动平均线、成本移动平均线MA5、成交量柱体及其均线MV、震荡量指标OSC、变动率指标ROC、宝塔线Tower、威廉指数WMS、容量比率VR、均价线AVL、成交量柱体及其均线MV、分水岭FSL指标、市场成本指标MCST、平行线差指标DMA、人气意愿指标BRAR、开盘价,共计42个属性值,构成一个记录项为矩阵行,时间维度构成矩阵的列,以股票每天收盘时候指数作为一个记录项,构成了股指数据矩阵。进一步的,所述步骤四中,异常情况判断的具体方法为:设定一个正常波动幅度区间,凡是在这区间范围内变化的波形,都认为是正常波动,而超出该范围的则为异常波动。从而对于小波变换后得到各个层级的波形都会计算出异常波动点,然后采用加权方式对异常波型进行判断,如果加权后该波形的幅值仍然在设定的区间范围外,那么最终认定为异常波动,考虑小波分解各层次的粒度不同,采用加权融合的权重计算方式进行叠加,...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1