首页 > 文章中心 > 正文

时间序列挖掘技术

时间序列挖掘技术

[摘要]数据挖掘技术近年来被广泛用于时间序列分析,时间序列挖掘技术主要包括关联分析、序列分析、分类分析、聚类分析和异常检测等五类。由于金融领域的时间序列具有一些重要的特征,因此将各种挖掘方法与金融时间序列的特征,以及各种传统的时间序列分析模型相结合,是目前金融时间序列挖掘领域的研究热点。

[关键词]时间序列;金融;数据挖掘

一、引言

在金融领域,时间序列是一种重要的数据类型,对时间序列的分析是金融数据分析的一个重要内容。作为数理统计学的一个分支,时间序列分析自1960年代起就已经得到了广泛的研究。传统的金融时间序列分析方法主要包括基本分析、技术分析以及各种数理统计学方法等。随着近年来数据规模的不断增长以及分析任务的日益复杂,数据挖掘技术开始被运用到金融时间序列的分析中。

所谓数据挖掘是指从大规模的数据中抽取隐含、未知、有潜在使用价值的规则的过程。作为一门交叉学科,数据挖掘集成了许多学科中成熟的工具和技术,包括数据库技术、统计学、机器学习以及人工智能等。广义地说,所有从海量数据中发现新的规律的方法都可以统称为数据挖掘技术。

本文在对传统的金融时间序列分析方法进行简单回顾的基础上,对当前主要的金融时间序列挖掘技术进行综述,并指出相关方法的优缺点和需要进一步研究的问题,为该领域的进一步研究提供基础。

二、金融时间序列传统分析方法

基本分析与技术分析是最常见的分析方法,主要用于证券与期货市场中的时间序列分析。基本分析主要通过对影响证券市场供求关系的基本因素进行分析,从而判断股票价格的走势。技术分析则通过对历史数据进行一些简单的计算,得到相关的技术指标和图表,从而判断序列未来的变化趋势。

另一类主要的金融时间序列分析方法是数理统计方法,这类方法主要包括各种统计特征的检验分析、相关分析、线性/非线性回归分析、自回归移动平均(ARMA)分析以及分形分析等,此外,各种多元分析方法也被广泛用于金融时间序列分析,如判别分析、主成分分析以及因子分析等。限于篇幅,本文不再详细讨论这些方法。

三、时间序列挖掘方法

近年来数据挖掘技术在时间序列分析领域开始得到广泛的研究与应用,已有大量的文献提出了各种时间序列挖掘算法。需要指出的是,虽然这些文献本质上属于对通用的基础算法进行研究,并不是专门针对金融领域的时间序列,然而其中许多方法都是以金融时间序列为例,来说明算法的有效性、准确度或性能,因此这些算法也在金融领域得到了应用。时间序列挖掘方法主要包括以下几个方面。

1.关联分析与序列分析

关联分析与序列分析的目的都是发现数据间的各种相关联系,不同的是,关联分析用于发现同一时间段内的各种联系,而序列分析用于发现在时间上具有先后关系的联系。

使用关联与序列分析方法,能够发现同一序列的前后变化或不同序列变化间的复杂关系。由于传统的关联与序列挖掘算法主要适用于符号型数据,因此在对数值型金融时间序列进行关联与序列分析时一般需要先对序列进行符号化。将序列划分为多个子序列,根据子序列的形状进行聚类并符号化,在此基础上采用序列挖掘算法发现符号间的规则。多个股票在不同时段的涨跌关系转换为具有双时间维约束的关联规则模型,并提出相关的挖掘算法,用于挖掘“当某几种资产的收益率变动超过一定幅度时,哪些资产会在同时(或间隔一段时间后)有同样(或相反)的表现”这类复杂的规则。一种基于“重要点”的方法将时间序列逐段符号化,并提出了一种基于互关联后继树模型的时间序列关联规则发现算法。

2.相似性查找

相似性查找是时间序列挖掘领域的一个重要研究方向。所谓相似性查找是指对于给定的目标序列Q,根据某种相似性度量函数,寻找与Q最相似的序列Qk。时间序列的相似性查找分为全序列匹配和子序列匹配两大类,全序列匹配是指所查找的序列与目标序列Q具有相同的长度;子序列匹配则是指在一个更长的序列中,寻找与目标序列Q相似的所有子序列。相似性查找在金融领域典型的应用是,根据图形上的相似性,寻找与某种资产的价格(或收益率)变动情况比较接近的其他资产。

由于金融时间序列一般都跨越较长的时间段,理论上甚至具有无限长度,因此这类数据都表现出高维甚至是超高维的特征。由于大多数相似性度量函数(如欧氏距离函数)在处理高维数据时性能都急剧下降,因此对于这类数据,一般先采用某种方法对序列进行维约简,即将原始序列变换到低维空间,在此基础上再比较序列间的相似性。常见的时间序列维约简方法包括离散傅立叶变换、离散小波变换、逐段线性描述等。除了维约简方法,相似性度量函数也是这一问题的研究热点。

3.聚类分析

聚类分析的目的是把整个目标数据分成多个不同的簇,使得每个簇中的数据尽可能相似,而不同簇中的数据具有明显的差别。在金融领域,聚类分析对于板块研究、投资组合模型的构建以及客户交易模式研究等都有着重要的意义。

由于时间序列的聚类分析同样需要进行序列间的相似性度量,因此与相似性查找类似,在聚类分析之前一般先对序列进行维约简。使用离散傅立叶变换对序列进行维约简,在此基础上使用欧氏距离进行聚类,与此类似,研究了基于离散小波变换和主成分分析的时间序列维约简以及聚类,对基于线性模型的聚类方法进行了研究。

研究了基于隐马尔可夫模型(HMM)的时间序列聚类,将HMM和期望最大方法相结合,从而提高了聚类结果的准确性。针对由于时间序列中经常存在异常数据,提出将原始序列根据中位数转化为二元时间序列,在此基础上进行聚类,从而减少异常数据的影响。试验结果表明,当序列中存在异常数据时,该方法能够有效地提高聚类结果的准确性。

4.分割与逐段描述

时间序列的分割与逐段描述是指对长度为n的序列Q,将其分为k段(k<<n),对各段分别使用某种模型进行描述并记为Q′,使得Q′与Q非常接近。对时间序列进行分割与逐段描述的主要原因有两个方面:第一,时间序列往往跨越较长的时间段,某些序列在理论上甚至具有无限长度,在此期间数据的许多特征都可能发生变化,对这样的数据用一个单一的模型来描述是不合适的;第二,时间序列在演化的过程中,由于受到各种因素的影响,往往具有复杂的局部特征,使用一些简单的模型(如线性模型)对序列进行逐段描述,丢弃一些细节变化信息,对于某些挖掘任务来说更合适。

由于金融时间序列经常受到众多非线性因素的影响,并且随着时间的推移,各种因素的影响效果也不断变化,因此金融时间序列往往呈现出复杂多变的形态特征。对金融时间序列进行分割并逐段描述,对许多挖掘任务而言更有意义。最常用的时间序列分割方法是使用线性模型对序列进行分割与逐段描述,称为逐段线性描述,对这类分割方法进行了详细的介绍。一种基于隐马尔可夫模型的联机时间序列分割算法,根据概率密度函数的变化对序列进行分割。

5.异常检测

异常检测是时间序列挖掘中的一个重要方面。所谓异常是指数据集中明显与众不同的数据,使人怀疑这些数据是由不同的机制产生的,而非随机偏差。异常检测最先在统计学领域得到研究,这些方法通常将数据用某个假定的统计分布进行建模,然后根据假定的模型和数据的实际分布来确定异常。由于通常无法准确地确定实际数据的分布形式,并且现实数据往往并不符合任何一种理想的数学分布,因此统计异常检测方法具有相当大的局限性。在时间序列挖掘领域,序列异常的概念,即当扫描序列时,如果某个数据点明显不同于其前面的序列,这样的点就被认为是异常数据。由于序列异常在概念上存在一定的缺陷,因此该方法容易遗漏真正的异常数据。使用柱状图方法来发现异常数据,如果将某个数据从序列中移去,单独用一个桶存放,能够减少整体柱状图的误差,则该数据被认为是异常。一种两阶段支持向量回归的算法,用于检测金融时间序列中的异常数据,以避免异常数据对预测精度产生影响。

四、混合挖掘方法

近年来金融时间序列分析领域出现一种新的趋势,即将各种时间序列挖掘技术与传统分析方法和模型相结合,我们将这些方法称为混合挖掘方法。与第三节中的时间序列挖掘方法不同,这类方法大多针对于金融领域某个特定的分析任务,或者基于金融时间序列的某些特征,因此更具有针对性,

当前的时间序列聚类方法分为基于原始数据、基于特征量以及基于模型的聚类三类。其中后两类均属于混合挖掘方法。一种基于ARMA模型的时间序列相似性度量和聚类算法,该方法使用ARMA模型对序列进行建模,并且将模型的系数转换为线性预测编码倒谱系数(LPCC)。在此基础上,对LPCC使用欧氏距离判断两个序列的相似程度并进行聚类。对同一个序列使用多个ARMA模型建模,以便更准确地捕获数据的各项特征。结合期望最大方法,鉴于ARMA模型在金融时间序列分析中已经得到广泛应用,上述方法在金融领域有着重要的意义。

一种新的时间序列趋势变动分析方法,该方法将传统的时间序列趋势分析与文本挖掘技术相结合,分析证券市场中的各种新闻信息与股票数据趋势变动之间的关系,从而通过分析相关的新闻来预测股票数据的变动方向。与此类似,研究了外汇市场中的相关新闻对汇率波动的影响,从而根据这些新闻进行汇率的短期预测。

此外,大多数基于逐段线性描述的时间序列分割方法都使用了线性回归模型的相关特性。一个常用于描述金融资产波动性的技术分析指标——布历加信道与逐段线性描述方法相结合,用于对金融时间序列进行联机分割,在此基础上进行相似性查找以及资产价格变动的趋势预测。

五、对上述方法的评述

基本分析与技术分析方法主要用于证券与期货市场中的时间序列分析,这两种分析方法虽然计算简单并且易于使用,但是无法用于进一步分析数据中隐藏的其他规律和各种复杂的统计特征。

数理统计方法是目前金融时间序列分析中最重要的方法。但是随着数据量的不断增加(如金融领域中的高频和超高频数据),这些方法在分析能力方面存在一定的缺陷。各种统计分析方法的一个主要问题在于,其无法有效地处理具有较大规模的数据集。此外数理统计分析方法也不适合用于从大量的数据中主动地发现各种潜在的规则。

虽然近年来出现了大量的时间序列挖掘方法,然而将这些方法直接用于分析金融时间序列仍然存在一些不足。其中一个主要的原因在于不同领域的时间序列往往具有不同的特征。例如金融领域的时间序列一般不具有典型的周期性,而这一特征在商业或气象领域的时间序列中则非常明显。近年来时间序列挖掘领域的主要研究成果做了一个详细的介绍,并对这些挖掘方法使用大量新的数据集进行了重新检验。作者发现随着测试数据集的不同,这些方法的有效性、性能以及准确度等都会得到迥异的实验结果,有些方法针对某些数据集甚至根本无法使用。实验结果说明,对于来自不同领域、具有完全不同特征的时间序列,提出一种普适的挖掘方法是困难的。

我们认为金融时间序列挖掘技术未来的主要发展方向是混合挖掘技术,这里的“混合”主要包括以下两个方面的内容:一方面,各种新的数据挖掘算法必须考虑到金融时间序列所具有的主要特征,即根据序列的特征研究相关挖掘算法,基于特征分析的金融时间序列挖掘进行了详细研究;另一方面,新的数据挖掘算法应与传统分析方法和统计模型进一步结合,并针对金融领域的特定分析任务,从而保证分析与挖掘工作的有效性。事实上,传统的数理统计分析方法与模型大多基于严格的统计数学和相关的金融分析理论,在金融时间序列分析中发挥着不可替代的作用。数据挖掘技术则为在海量的金融数据中快速、自动、智能化地发现各种潜在的、有价值的规律提供了新的支持。这些方法的结合,将使得金融时间序列分析领域具有更广阔的应用前景。

六、进一步研究的问题

虽然金融时间序列挖掘技术得到了广泛的研究,但是仍然存在一些有待于进一步研究的问题。一方面,金融领域的某些分析任务或数据特征具有一定的特殊性,需要开发新的数据挖掘算法进行支持。另一方面,各种时间序列挖掘技术在金融领域的应用层次也有待于进一步深入,例如现有的关联分析与序列分析技术,大多侧重于发现序列中大量IP-THEN形式的规则以及这些规则的可信度。然而如何利用这些规则,并根据投资者的风险偏好以及资本金规模等相关特征,为其提供个性化的投资与理财方案,则需要将数据挖掘与相关的决策优化技术相结合。

此外,目前金融时间序列挖掘领域主要关注的是单变量时间序列,对多变量时间序列挖掘的研究则非常少,在金融领域经常使用多个变量描述一种现象或状态,例如描述股票交易情况的变量一般包括交易价格、成交量以及换手率等,并且与单变量时间序列相比,多变量金融时间序列将会具有一些新的特征(比如协整性等)。如何根据这些新的特征,将各种数据挖掘技术与相关的多变量统计模型(如向量自回归模型等)相结合,从而实现对多变量金融时间序列的有效挖掘,这是一个重要的研究方向。