基于自适应步长的多元时间序列Motif优化算法

2021-08-25 05:59刘晓彤车文刚
关键词:成交量步长分段

刘晓彤, 车文刚

(昆明理工大学 信息工程与自动化学院, 云南 昆明 650500)

时间序列是指某一指标按照时间顺序形成的数据集合,是数据发生变化的历史轨迹,具有非平稳、非正态、非线性的特点[1]。时间序列特征表示[2]是将原始的时间序列进行降维处理,能更好地突出特征,为后续的挖掘奠定基础。已有的特征表示方法有基于分段的表示方法、基于符号的表示方法、基于模型的表示方法、基于变换的表示方法等。Keogh等[3]提出的分段聚合近似算法是将时间序列分割为长度相同的片段,在一定程度上对数据进行降维处理,以分割后的数据均值来体现短期趋势的特点。在后续的研究中,有研究者将符号化聚合近似算法与分段聚合近似算法相结合[4],以符号化表示序列。这种表示虽然能够提升运算速度,以符号序列的形式进行后续的聚类,但是却丧失了数据的特征。孙友强等[5]对时间序列分段内的趋势距离进行定义,将分段序列中的平均值和趋势距离作为序列段中的特征信息进行符号化表示。尹洪[6]针对卫星时序数据问题,提出一种基于并行分割的卫星时序数据符号化技术,并引入关联规则的探究,提升了处理时间序列的效率。

在实际生活中,一件事物的出现往往伴随着很多的因素,若使用某一个元素来对一件事物进行预测,忽视其他相关的因素,可能会出现片面性。为了解决这一问题,本文将多元素融入到时间序列之中,探究多元时间序列下的特征模式,通过提取序列中的重要特征来降低序列数据维度。对于多元时间序列而言,每一种元素的数据变化不同,分段聚合近似等方法中涉及的等间距分割并不适用。基于此,本文提出一种基于自适应步长选择的多元时间序列Motif算法,提取频繁的量价Motif,选择收益作为Motif的评价指标。在此基础上对自底向上算法进行改进,优化量价Motif形态下的买卖点模型,反映Motif应用效果。

1 相关理论

1.1 Motif理论

Lin等[7]第一次在时间序列分析中提出Motif的概念,他们将以前未知的、具有特征性和重复性的一段数据或结构称为Motif。Motif概念来源于生物学,是特定数据集合的序列预测[8]。以股票市场为例,Motif代表对后市发展具有影响力的模式,反映隐藏在复杂非线性数据中的信息[9]。

1.2 多元时间序列

多元时间序列是指多变量的时间序列。在股票市场环境下,单纯的针对股价进行特征提取具有一定的局限性。通过观察绝对量空间,成交量与价格共同影响着币价走势,两者之间存在着因果关系。本文以成交量时间序列和股价时间序列作为实验背景,将股价和成交量数据视为多元时间序列,展开自适应步长的多元时间序列的Motif挖掘研究。对获取的原始数据进行预处理,用线性形态高效表示原始数据,借助自适应步长的思想有效展开模式的提取工作。图1是Motif模式挖掘与检测的流程图。

图1 Motif模式挖掘与检测流程图

2 基于线性回归的滑动窗口算法

时间序列数据进行分段折线拟合的方法大致分为3类:自底向上算法[10]、自顶向下算法[11]和滑动窗口算法[12]。由于实验所需要的数据较多,复杂度较高的算法并不适用,为了降低数据的计算时间,提升拟合速度,本文采取滑动窗口算法进行数据折线拟合。该算法的拟合速度较快,借助窗口的滑动不断引入数据,简单直观,不必提前读入全部数据,具有较好的拟合效果,算法的伪代码如下:

Algorithm Sliding window algorithm

Input: (ts: time series; R2: fitting error; L: sliding window; Lmax: window maximum)

Output: segs

1: While(Lstart

2: Regression coefficient = plofit();

3: if(Err> R2||L> Lmax)

4: Return segs;

5: Lstart=Lend;

6: else

7: L=L+1;

8: exit

9: end while

为了更好地反映多元时间序列的数据变化趋势,突出股价和成交量之间的关联,采取拟合误差较小的分段线性回归思想对数据进行拟合。在选取拟合误差计算方面,考虑到残差平方和会受到自变量与因变量绝对值大小的影响,不利于对不同数据进行评价和比较,因此采用拟合优度作为衡量标准,它能够表示回归方程对因变量的拟合程度,取值范围在0~1之间,拟合优度越接近1表示拟合效果越好,计算如下:

线性回归中的数据预测计算涉及到直线斜率k和截距b,本文使用最小二乘法进行计算,公式为

3 自适应步长多元时间序列的Motif提取

3.1 自适应步长的序列分割算法

在对股价和成交量分别进行线性拟合后,两组数据均由不同长度的线段组成,不能很好地体现出同一时间段内的量价关系。为了更好地发现量价之间的Motif,需要在等间距分割的基础上引入自适应步长的思想,根据两种数据的高低起伏进行同一趋势的分割,使在同一时间段内的股价和成交量变化趋势唯一,便于体现量价之间的Motif模式。图2是传统的等间距分割方式,图3是自适应步长的分割方式。

图2 传统的等间距分割方式 图3 自适应步长的分割方式

由上图能够看出同样是分为6段数据片段,图2中每一个分割片段可能含有多个数据趋势,过于繁杂错乱。而图3却能够清晰体现同一区间内的同一趋势,表现出多元时间片段中的内在关联性,突出自适应步长分割的优势。

3.2 基于构建模型的分类特征提取

对多元时间序列自适应步长分割后的数据片段进行符号化处理,在时间X=(x1,x2,…,xm)中含有一条拟合直线,该条直线的形态函数sign可以描述为

sign=(M,A),

式中参数M指的是研究目标区间,A指的是该区间内的指标幅度。将单一时间序列中的数据进行符号化,并用C表示。只关心趋势的升降,不关心涨跌幅度,则每段直线可进行如下表示:

成交量和股价的组合形态group可以表示为

group=(M,A1,A2),

式中A1表示成交量指标幅度,A2表示股价指标幅度。

符号化处理后,使用构建模型的方式对模式进行特征提取和分类,通过计算模型中的因子来对Motif进行判定,公式如下:

A1w1+A2w2=μ,

式中w1表示成交量的权重,w2表示股价的权重,μ表示区域内判定的模型形态。

3.3 短期趋势的Motif检测算法

量价结合的短期趋势在时间序列中是一种出现频繁的模式,为了挖掘这种模式,观察量价之间的变化,提出短期趋势的Motif检测算法,具体步骤如下:

(1)取一支成交量趋势变化量与股价的序列Y(ΔVi,Ci),检测短期趋势,并记录其时间持续间隔;

(2)取另一支成交量趋势变化量与股价的序列Y(ΔVi,Ci),检测短期趋势,比较在相同的时间内是否含有相似的模体片段,若含有相似片段,则进行步骤(3),否则重复步骤(2);

(3)记录检测到类似片段的个数以及持续时间,重复步骤(2),直至检测结束。

4 自底向上算法的改进

为验证量价Motif挖掘带来的经济效益,本文将提取出的频繁Motif视为买点和卖点,以收益作为衡量的标准,并采取优化模型的思想将Motif带来的收益进行提升。传统的自底向上时间序列分段算法具有奇数、偶数点限制的问题,只有偶数点才能两两分配,出现的奇数点会产生问题,因此不能直接与买卖点进行结合。为此需要对自底向上的算法进行改进,以模式影响下定义的买卖点为数据点,将初始分段的数据点进行处理,保证第一个点为买点标志,第二个点为卖点标志,两两交替出现,若最后一个为买点则需要舍去。初始分段时将N个待分段的数据点(除去最后一个点)与后面的点链接成初始分段,将带分段的序列划分为N-1个段。计算合并相邻段的拟合误差。通过这样的处理可以让分段不拘泥于奇数和偶数,比较适合趋势的变化。

将改进的自底向上算法融入在收益模型的研究中,以买卖交错点作为实验数据,优化买卖的模型,减少其手续费用,提升收益。算法的伪代码如下:

Algorithm Seg_TS=BUR(T,max_error)

Input: (T: time series; max_error: Segmentation threshold)

Output: Seg_TS

1: for(i=1;i

2: Seg_TS=concat(Seg_TS,create_segment(T[i:i+1]));

3: for (i=1;i

4: merge_cost(i)=calculate_error([merge(Seg_TS(i),Seg_TS(i+1))]);

5: while(min(merge_cost)

6: index=min(merge_cost);

7: Seg_TS(index)=merge(Seg_TS(index),Seg_TS(index+1));

8: delete(Seg_TS(index+1));

9: merge_cost(index-1)=calculate_error( merge((Seg_TS(index-1),Seg_TS(index))) ;

10: merge_cost(index)=calculate_error(merge(Seg_TS(index),Seg_TS(index+1)));

11: end while

12: end for

13: end for

5 实验结果与分析

5.1 实验环境及数据获取

以股票市场为实验的背景,实验仿真结果均来自MATLAB2019b,实验所需数据来源于搜狐公司和乾隆公司的数据平台。本文选取沪深300指数的历史数据作为实验数据集,时间区间为2019年7月8日至2020年7月3日(共241个交易日)。

5.2 实验内容

在线性拟合过程中,采用拟合优度为0.8展开计算,由于数据较多,实验结果以部分数据进行展示。图4为高澜股份成交量与股价的波动图,图5为数据线性处理后的拟合结果。

图4 高澜股份成交量与股价波动图

图5 高澜股份成交量及对应股价线性拟合图

由图5可以看出,线性拟合处理数据可以减少噪声干扰,突出局部数据的走势,在杂乱的数据中能够较好地体现量价之间的关联性。

如果单纯从价格指标体系看并不能观察到量价的关联性,为此需要将折线进行自适应步长分割处理,这样才能有效地反映出成交量指标走势和股价走势,以及二者之间的对应关系。通过特征因子来对量价Motif进行归类,实验结果将其分为4种,主要模式为量增价升的Motif、量减价升的Motif、量增价跌的Motif和量减价跌的Motif。4种Motif的表达形式如图6所示。

图6 高澜股份自适应步长分割模式图

5.2.1 分割结果对比

用自适应步长对多元时间序列进行分割,以量价结合的4种Motif模式为检测对象,对沪深300股票进行验证。实验结果如表1所示。

表1 自适应步长模式次数统计表

由表1分析可知,通过对不同股票数据进行实验,其中量增价升Motif模式约占总数的47%,量减价跌Motif模式约占总数的27%,两者之和约占总数的74%,即价随量走的形态出现次数较为频繁,明显的体现出成交量与股价呈现出正相关的内在联系。

用固定间距对多元时间序列进行分割,以量价结合的4种Motif模式为检测对象,对沪深300股票进行验证,结果如表2所示。通过对比可以发现,运用自适应步长的方式能够准确将模式进行区分,总共计算出16 030个模式,而固定间距的方式获得8511个模式,相比之下,前者提升近53%的模式挖掘准确度,可以细化数据,保证同时间段内的趋势一致性,突出数据特征。

表2 固定间距模式次数统计表

5.2.2 自底向上算法优化结果

量能的走势可以对短期股价趋势进行预测,量增价升的形态是一种中短线最佳进场信号,出现这种形态时预示后市走势较好,投资者可以适当买入;当出现量减价升的形态时预示股票走势即将反转下行,投资者可持有观察或高价卖出;量增价跌出现在股价高位时预示后市走势较差,代表卖出信号,出现在低位时预示后市行情回升,投资者可买入;量减价跌的出现能够预测后市萎靡不振,应及时卖出。

在上述内容中可以发现同一趋势出现的概率在所有的模式中占据74%的比重,为此以量增价升作为买入点,以量减价跌作为卖出点进行建模,以收益作为衡量的标准。在实验结果中发现,当不进行自底向上算法的处理时,理想的正收益占实验全部数据的75%,经过对数据进行自底向上算法的改进,形成了7段买卖点折线模型,在此模型下理想的正收益提升至82%。以实验数据中的伊利股份(600887)为例,图7为原始买卖点收益与算法改进后的收益对比图。

图7 原始买卖点收益与算法改进后的收益对比图

通过对比可以发现,在买卖点朴素线性拟合模型图中展现了没有优化的买卖点线段,发现伊利股份的收益微亏损,经过对买卖点线段的自底向上优化,该股票每股收益变为正收益1.48元。可见经过算法的应用,可以将收益数据进行优化。表3为沪深300指数在实验中的部分数据对比结果。

表3 收益优化对比结果 元

6 结束语

本文提出了一种基于自适应步长选择的多元时间序列Motif算法,便于精准的进行量价Motif挖掘,在此基础上进行自底向上算法的改进,提升了股票收益效果。首先进行维度转换,构造了基于成交量的股价序列,寻找成交量与股价之间的内在关联模式。其次,引入滑动窗口算法对多元时间序列进行直线拟合,有效压缩了时间序列,减少了数据计算量,降低干扰性。借助自适应步长的思想进行自主的分割判断,保证了两元素拟合线段的一致性,突出数据的主要趋势和特点,在此基础上提出了短期趋势Motif检测算法。最后,以沪深300股票数据进行实验,结果表明自适应步长算法可以有效提升模式的提取精准度,发现在量价结合的4种Motif中,量增价升Motif与量减价跌Motif出现次数频繁,是短期趋势预测的优选模式,将其定义为买卖点,并展开收益模型优化,有效改善了股票收益。

猜你喜欢
成交量步长分段
中心差商公式变步长算法的计算终止条件
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
一类连续和不连续分段线性系统的周期解研究
基于随机森林回归的智能手机用步长估计模型
一周成交量大幅增加前50只个股
一周成交量大幅增加前50只个股
一周成交量大幅增加前50只个股
分段计算时间
3米2分段大力士“大”在哪儿?
基于动态步长的无人机三维实时航迹规划