证券市场中的涨跌起伏往往是瞬息万变的,尽管如此,它还是存在着一定的规律:在某一段时间中,如果A股票出现上涨趋势,则B股票必然会随之上涨;如果A股票在tl时刻出现上涨趋势,B股票在t2时(t2>tl)刻出现上涨趋势,则C股票必然会在t3(t3>t2)时刻上涨。前一条规律能够用来对股票之间的相互关系进行分析,后一条规律能够用来对股票的涨跌进行预测,这些规律在投资者的实际决策过程中有着重要的参考价值和指导作用。
关键词:数据;关联规则;股票分析;预测;
作者:戴钟仪
1、选取数据
如果上市公司所经营的业务是相同或相近的,则在一段时间内股票价格的走势就会呈现出相似性;在一定时间内,属于同一个区域的上市公司也会受到区域经济政策的直接影响,也会呈现出大体相同的变化形势;如果上市公司之间具有关联交易,相互持股、控股,则它们之间也会产生某种相互作用[37]。上述规则能够通过关联规则分析来发现,然而更重要的是发现另一种表面上没有很强的相关性、但实际的股票价格却具有很大关联的规则。
设股票行情数据D={X1,X2,…,Xi,…,Xn。},其中Xi(1<i<n)表示的是证券市场中某一只股票的历史行情数据,Xi={Ci,K1,K2,…,Km},C为股票代码,Ki为Xi的第i个属性变量,对应最高价、日涨跌幅、最低价、成交量等属性。
本文选取的研究对象是沪深300指数成分股,样本时间是从2010年9月2日到2011年9月1日一年的数据。本文选取沪深300指数成分股为研究对象的主要原因具体如下:沪深300指数包含了各个行业的股票,并且覆盖了沪深两市60%以上的市值,将各个行业中规模较大,流动性较好的股票都包含在内;沪深300指数成分股包含了沪深股市中上市1个季度以上,而且不包含ST和*ST的股票,公司的经营情况一直很好,在一年内没有发生过较重大的违法情况,股票价格也没有明显的异常波动等因素;沪深300指数从2006年编制以来,一直都是衡量上海和深圳股票市场的重要指标。综合上述分析可知,沪深300指数成分股能很好反映出上海和深圳证券市场的总体特征,具有很强的代表性。
选取样本时间从2010年9月2日到2011年9月1日这段时间的主要原因是:在这段时间中,大盘经历了上涨波段和下跌波段,沪深300指数最低到1598,最高达3256,而且上涨时间和下跌时间大致相同。本文数据均来源于CASMAR数据库,着重考虑股票价格变化之间存在的关联关系,由于一天中股票价格有很多种,本文主要考虑的是收盘价。因此原始数据包含日期、股票代码、收盘价三个变量,经过处理数据中共有71268条记录。
2、数据预处理
数据预处理是指在主要的处理以前对数据进行的一些处理。在我们实际生活的世界中,数据大多数都是不完整并且不一致的,根本没有办法直接使用数据挖掘方法,或者会导致挖掘的结果不能让人满意。为了能够有效的将数据挖掘的质量提高,数据预处理技术便在这种形势下产生了。数据预处理的方法有很多,具体包括:数据清理,数据集成,数据归约,数据变换等[38]。在对数据进行挖掘之前,使用这些数据处理技术,能够在很大程度上提高数据挖掘模式的质量,并且有效的减少挖掘所使用的时间。我们所要研究的是在一段时间内,股票价格变动之间存在的关联关系,因此只需对那些对投资有参考价值的数据进行研究。在投资过程中,关系到投资者收益的重要指标是收益率,在数据挖掘中所选用的是每天的涨跌幅。首先以收盘价为依据,将每日的涨跌幅计算出来,日涨跌幅就是当日收盘价和上一个交易日收盘价之差与上一个交易日收盘价之比。计算公式如下:
在分析过程中我们所感兴趣的是那些每天的涨跌幅大于一定幅度的股票,因为在股票市场中,大多数股票会随着大盘指数的涨跌而不断发生变化,多数股票都会在大盘指数涨跌幅进行上下波动,所以只有涨跌幅超过一定范围的股票才具有研究意义。因此我们在进行分析之前,引入最小日涨跌幅Min-UpRat。最小日涨跌幅的值是以具体的股票行情为依据并由用户确定的,本文选取Min-UpRat为3%,这主要是从以下几个方面考虑:现阶段,中国的证券市场还处于发展阶段,尚不成熟。股票在牛市中会存在随大盘指数普遍上涨的情况,因此只有对那些涨势较为剧烈的股票进行分析研究才会有实际意义。大部分股票在熊市中会出现普遍下跌的情况,出现上涨形势的股票只有极少的一部分,涨势能达到3%涨幅的股票更是少之又少。
在样本中添加一个新的变量,极为win,当日涨跌幅大于最小日涨跌幅min-UpRat时,win就记为1,日涨跌幅小于或等于最小日涨跌幅min-UpRat时,win就记为0。在原始数据中,交易日期均为10个字符的字符型变量,共有244天。众所周知,在进行数据挖掘时,字符长度较大会占用大量的内存,因此应该尽量用简短的数据型变量来对其进行替换。所以为了节省空间进而提高运行的效率,我们重新对交易时间变量进行编码,用1,2,…,244来标记。将股票代码均变为6位字符的字符型数据,共有300只股票,分别用1,2,…,300标识。在进行关联规则挖掘时,直接处理对象是股票和日期的新编码,间接处理对象是股票代码和交易日期,这样便可有效减少内存的占用,有利于提高挖掘效率。选取的原始数据有字符型证券代码,字符型交易日期,数值型收盘价,最后对对原始数据进行变换和预处理,然后计算出每个交易日各只股票的涨跌幅,保留win等于1(也就是日涨跌幅大于3%)的记录,最终整理得出关联规则模型预处理后的数据。
3、数据探索
一般情况下,在进行数据挖掘之前可以先对数据进行初步探索,用描述性统计方法对数据进行初步的分析,从而对沪深300指数的一些基本性质进行简单的了解。通过整理可以看出,从2010年9月2日到2011年9月l日这一年时间内,沪深300指数从2689.5下跌到了1599.6,而后又上升到3279.5。虽然股票指数有某种程度的变化和波动,但是总体变化趋势是先下跌而后上涨。这种情况表明,在这一年中由于受到全球经济的影响,股票市场先逐渐下降,随着中国各项经济政策的一系列措施的实施,中国证券市场又出现了回升的趋势。