金融领域时间序列挖掘技术研究(一)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
金融领域时间序列挖掘技术研究(一)
摘要]数据挖掘技术近年来被广泛用于时间序列分析,时间序列挖掘技术主要包括关联分析、序列分析、分类分析、聚类分析和异常检测等五类。
由于金融领域的时间序列具有一些重要的特征,因此将各种挖掘方法与金融时间序列的特征,以及各种传统的时间序列分析模型相结合,是目前金融时间序列挖掘领域的研究热点。
关键词]时间序列;金融;数据挖掘
一、引言
在金融领域,时间序列是一种重要的数据类型,对时间序列的分析是金融数据分析的一个重要内容。
作为数理统计学的一个分支,时间序列分析自1960年代起就已经得到了广泛的研究。
传统的金融时间序列分析方法主要包括基本分析、技术分析以及各种数理统计学方法等。
随着近年来数据规模的不断增长以及分析任务的日益复杂,数据挖掘技术开始被运用到金融时间序列的分析中。
所谓数据挖掘是指从大规模的数据中抽取隐含、未知、有潜在使用价值的规则的过程。
作为一门交叉学科,数据挖掘集成了许多学科中成熟的工具和技术,包括数据库技术、统计学、机器学习以及人工智能等。
广义地说,所有从海量数据中发现新的规律的方法都可以统称为数据挖掘技术。
本文在对传统的金融时间序列分析方法进行简单回顾的基础上,对当前主要的金融时间序列挖掘技术进行综述,并指出相关方法的优缺点和需要进一步研究的问题,为该领域的进一步研究提供基础。
二、金融时间序列传统分析方法
基本分析与技术分析是最常见的分析方法,主要用于证券与期货市场中的时间序列分析。
基本分析主要通过对影响证券市场供求关系的基本因素进行分析,从而判断股票价格的走势。
技术分析则通过对历史数据进行一些简单的计算,得到相关的技术指标和图表,从而判断序列未来的变化趋势。
另一类主要的金融时间序列分析方法是数理统计方法,这类方法主要包括各种统计特征的检验分析、相关分析、线性/非线性回归分析、自回归移动平均(ARMA)分析以及分形分析等,此外,各种多元分析方法也被广泛用于金融时间序列分析,如判别分析、主成分分析以及因子分析等。
限于篇幅,本文不再详细讨论这些方法。
三、时间序列挖掘方法
近年来数据挖掘技术在时间序列分析领域开始得到广泛的研究与应用,已有大量的文献提出了各种时间序列挖掘算法。
需要指出的是,虽然这些文献本质上属于对通用的基础算法进行研究,并不是专门针对金融领域的时间序列,然而其中许多方法都是以金融时间序列为例,来说明算法的有效性、准确度或性能,因此这些算法也在金融领域得到了应用。
时间序列挖掘方法主要包括以下几个方面。
1.关联分析与序列分析
关联分析与序列分析的目的都是发现数据间的各种相关联系,不同的是,关联分析用于发现同一时间段内的各种联系,而序列分析用于发现在时间上具有先后关系的联系。
使用关联与序列分析方法,能够发现同一序列的前后变化或不同序列变化间的复杂关系。
由于传统的关联与序列挖掘算法主要适用于符号型数据,因此在对数值型金融时间序列进行关联与序列分析时一般需要先对序列进行符号化。
将序列划分为多个子序列,根据子序列的形状进行聚类并符号化,在此基础上采用序列挖掘算法发现符号间的规则。
多个股票在不同时段的涨跌关系转换为具有双时间维约束的关联规则模型,并提出相关的挖掘算法,用于挖掘“当某几种资产的收益率变动超过一定幅度时,哪些资产会在同时(或间隔一段时间后)有同样(或相反)的表现”这类复杂的规则。
一种基于“重要点”的方法将时间序列逐段符号化,并提出
了一种基于互关联后继树模型的时间序列关联规则发现算法。
2.相似性查找
相似性查找是时间序列挖掘领域的一个重要研究方向。
所谓相似性查找是指对于给定的目标序列Q,根据某种相似性度量函数,寻找与Q最相似的序列Qk。
时间序列的相似性查找分为全序列匹配和子序列匹配两大类,全序列匹配是指所查找的序列与目标序列Q具有相同的长度;子序列匹配则是指在一个更长的序列中,寻找与目标序列Q相似的所有子序列。
相似性查找在金融领域典型的应用是,根据图形上的相似性,寻找与某种资产的价格(或收益率)变动情况比较接近的其他资产。
由于金融时间序列一般都跨越较长的时间段,理论上甚至具有无限长度,因此这类数据都表现出高维甚至是超高维的特征。
由于大多数相似性度量函数(如欧氏距离函数)在处理高维数据时性能都急剧下降,因此对于这类数据,一般先采用某种方法对序列进行维约简,即将原始序列变换到低维空间,在此基础上再比较序列间的相似性。
常见的时间序列维约简方法包括离散傅立叶变换、离散小波变换、逐段线性描述等。
除了维约简方法,相似性度量函数也是这一问题的研究热点。
3.聚类分析
聚类分析的目的是把整个目标数据分成多个不同的簇,使得每个簇中的数据尽可能相似,而不同簇中的数据具有明显的差别。
在金融领域,聚类分析对于板块研究、投资组合模型的构建以及客户交易模式研究等都有着重要的意义。
由于时间序列的聚类分析同样需要进行序列间的相似性度量,因此与相似性查找类似,在聚类分析之前一般先对序列进行维约简。
使用离散傅立叶变换对序列进行维约简,在此基础上使用欧氏距离进行聚类,与此类似,研究了基于离散小波变换和主成分分析的时间序列维约简以及聚类,对基于线性模型的聚类方法进行了研究。
研究了基于隐马尔可夫模型(HMM)的时间序列聚类,将HMM和期望最大方法相结合,从而提高了聚类结果的准确性。
针对由于时间序列中经常存在异常数据,提出将原始序列根据中位数转化为二元时间序列,在此基础上进行聚类,从而减少异常数据的影响。
试验结果表明,当序列中存在异常数据时,该方法能够有效地提高聚类结果的准确性。
4.分割与逐段描述
时间序列的分割与逐段描述是指对长度为n的序列Q,将其分为k段(k<<n),对各段分别使用某种模型进行描述并记为Q',使得Q'与Q非常接近。
对时间序列进行分割与逐段描述的主要原因有两个方面:第一,时间序列往往跨越较长的时间段,某些序列在理论上甚至具有无限长度,在此期间数据的许多特征都可能发生变化,对这样的数据用一个单一的模型来描述是不合适的;第二,时间序列在演化的过程中,由于受到各种因素的影响,往往具有复杂的局部特征,使用一些简单的模型(如线性模型)对序列进行逐段描述,丢弃一些细节变化信息,对于某些挖掘任务来说更合适。
由于金融时间序列经常受到众多非线性因素的影响,并且随着时间的推移,各种因素的影响效果也不断变化,因此金融时间序列往往呈现出复杂多变的形态特征。
对金融时间序列进行分割并逐段描述,对许多挖掘任务而言更有意义。
最常用的时间序列分割方法是使用线性模型对序列进行分割与逐段描述,称为逐段线性描述,对这类分割方法进行了详细的介绍。
一种基于隐马尔可夫模型的联机时间序列分割算法,根据概率密度函数的变化对序列进行分割。
5.异常检测
异常检测是时间序列挖掘中的一个重要方面。
所谓异常是指数据集中明显与众不同的数据,使人怀疑这些数据是由不同的机制产生的,而非随机偏差。
异常检测最先在统计学领域得到研究,这些方法通常将数据用某个假定的统计分布进行建模,然后根据假定的模型和数据的实际分布来确定异常。
由于通常无法准确地确定实际数据的分布形式,并且现实数据往往并
不符合任何一种理想的数学分布,因此统计异常检测方法具有相当大的局限性。