原文 :http://tecdat.cn/?p=3726
这次,我们将使用k-Shape时间序列聚类方法检查与我们有业务关系的公司的股票收益率的时间序列。
执行环境如下。
- R:3.5.1
企业对企业交易和股票价格
在本研究中,我们将研究具有交易关系的公司的价格变化率的时间序列的相似性,而不是网络结构的分析。
由于特定客户的销售额与供应商公司的销售额之比较大,当客户公司的股票价格发生变化时,对供应商公司股票价格的反应被认为更大。
k-Shape
k-Shape [Paparrizos和Gravano,2015]是一种关注时间序列形状的时间序列聚类方法。在我们进入k-Shape之前,让我们谈谈时间序列的不变性和常用时间序列之间的距离。
时间序列距离测度
欧几里德距离(ED)和动态时间扭曲(DTW)通常用作距离测量值,用于时间序列之间的比较。
两个时间序列x =(x1,...,xm)和y =(y1,...,ym)的ED,其中m是系列的长度如下。
DTW是ED的扩展,允许局部和非线性对齐。
k-Shape提出称为基于形状的距离(SBD)的距离。
k-Shape算法
k-Shape聚类侧重于缩放和移位的不变性。k-Shape有两个主要特征:基于形状的距离(SBD)和时间序列形状提取。
SBD
互相关是在信号处理领域中经常使用的度量。使用FFT(+α)代替DFT来提高计算效率。
归一化互相关(系数归一化)NCCc是互相关系列除以单个系列自相关的几何平均值。检测NCCc最大的位置ω。
SBD取0到2之间的值,两个时间序列越接近0就越相似。
形状提取
通过SBD找到时间序列聚类的质心向量 有关详细的表示法,请参阅文章。
k-Shape的整个算法如下。
k-Shape通过像k-means这样的迭代过程为每个时间序列分配簇。
- 将每个时间序列与每个聚类的质心向量进行比较,并将其分配给最近的质心向量的聚类
- 更新群集质心向量
重复上述步骤1和2,直到集群成员中没有发生更改或迭代次数达到最大值。
R 语言k-Shape
缺失度量与前一个工作日的值相互补充。(K-Shape允许一些偏差,但以防万一)
每种股票的股票价格和股票价格变化率。
如果将“部分”指定为列表,则将tsclust(),zscore作为“preproc”,“sbd”作为距离,以及centroid =“shape”的系列数字向量的类型,它变为k-Shape。
聚类结果如下。
Nintendo,Hosiden和Siray Electronics Industries被分配到同一个集群。Hosiden在2016年对任天堂的销售比例为50.5%,这表明公司之间的业务关系也会影响股价的变动。
另一方面,MinebeaMitsumi成为另一个集群,但是在2017年Mitsumi与2017年的Minebea合并, 没有应对2016年7月Pockemon Go发布时股价飙升的影响 。