首页 > 其他分享 >R语言k-Shape时间序列聚类方法对股票价格时间序列聚类|附代码数据

R语言k-Shape时间序列聚类方法对股票价格时间序列聚类|附代码数据

时间:2023-03-17 23:47:22浏览次数:79  
标签:01 语言 Shape 聚类 序列 7974

原文链接 :http://tecdat.cn/?p=3726

最近我们被客户要求撰写关于k-Shape时间序列聚类的研究报告,包括一些图形和统计输出。

本文我们将使用k-Shape时间序列聚类方法检查与我们有业务关系的公司的股票收益率的时间序列

企业对企业交易和股票价格

在本研究中,我们将研究具有交易关系的公司的价格变化率的时间序列的相似性。
由于特定客户的销售额与供应商公司的销售额之比较大,当客户公司的股票价格发生变化时,对供应商公司股票价格的反应被认为更大。

 k-Shape

k-Shape [Paparrizos和Gravano,2015]是一种关注时间序列形状的时间序列聚类方法。在我们进入k-Shape之前,让我们谈谈时间序列的不变性和常用时间序列之间的距离测度。

时间序列距离测度

欧几里德距离(ED)和_动态时间_规整(DTW)通常用作距离测量值,用于时间序列之间的比较。

两个时间序列x =(x1,...,xm)和y =(y1,...,ym)的ED如下。

图片

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. 更新群集质心向量

重复上述步骤1和2,直到集群成员中没有发生更改或迭代次数达到最大值。

R 语言k-Shape

> start <- "2014-01-01"
> df_7974 %>%
+     filter(date > as.Date(start))
# A tibble: 1,222 x 10
   date        open  high   low close   volume close_adj change rate_of_change  code
                                 
 1 2014-01-06 14000 14330 13920 14320  1013000     14320    310       0.0221    7974
 2 2014-01-07 14200 14380 14060 14310   887900     14310    -10      -0.000698  7974
 3 2014-01-08 14380 16050 14380 15850  3030500     15850   1540       0.108     7974
 4 2014-01-09 15520 15530 15140 15420  1817400     15420   -430      -0.0271    7974
 5 2014-01-10 15310 16150 15230 16080  2124100     16080    660       0.0428    7974
 6 2014-01-14 15410 15755 15370 15500  1462200     15500   -580      -0.0361    7974
 7 2014-01-15 15750 15880 15265 15360  1186800     15360   -140      -0.00903   7974
 8 2014-01-16 15165 15410 14940 15060  1606600     15060   -300      -0.0195    7974
 9 2014-01-17 15100 15270 14575 14645  1612600     14645   -415      -0.0276    7974
10 2014-01-20 11945 13800 11935 13745 10731500     13745   -9

缺失度量用前一个工作日的值补充。(K-Shape允许一些偏差,但以防万一)

每种股票的股票价格和股票价格变化率。

图片


点击标题查阅往期内容

图片

对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归

图片

左右滑动查看更多

图片

01

图片

02

图片

03

图片

04

图片

图片

将zscore作为“preproc”,“sbd”作为距离,以及centroid =“shape”,k-Shape聚类结果如下。

> df_res %>%
+     arrange(cluster)
  cluster centroid_dist code           name
1       1     0.1897561 1928     積水ハウス
2       1     0.2196533 6479 ミネベアミツミ
3       1     0.1481051 8411         みずほ
4       2     0.3468301 6658 シライ電子工業
5       2     0.2158674 6804       ホシデン
6       2     0.2372485 7974         任天堂

Nintendo,Hosiden和Siray Electronics Industries被分配到同一个集群。Hosiden在2016年对任天堂的销售比例为50.5%,这表明公司之间的业务关系也会影响股价的变动。
另一方面,MinebeaMitsumi成为另一个集群,但是在2017年Mitsumi与2017年的Minebea合并, 没有应对2016年7月Pokemon Go发布时股价飙升的影响 。

如果您有任何疑问,请在下面发表评论。 


图片

本文摘选 《 R语言k-Shape时间序列聚类方法对股票价格时间序列聚类 》 ,点击“阅读原文”获取全文完整资料。


点击标题查阅往期内容

K-means和层次聚类分析癌细胞系微阵列数据和树状图可视化比较
KMEANS均值聚类和层次聚类:亚洲国家地区生活幸福质量异同可视化分析和选择最佳聚类数
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
有限混合模型聚类FMM、广义线性回归模型GLM混合应用分析威士忌市场和研究专利申请数据
R语言多维数据层次聚类散点图矩阵、配对图、平行坐标图、树状图可视化城市宏观经济指标数据
r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化
Python Monte Carlo K-Means聚类实战研究
R语言k-Shape时间序列聚类方法对股票价格时间序列聚类
R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
R语言谱聚类、K-MEANS聚类分析非线性环状数据比较
R语言实现k-means聚类优化的分层抽样(Stratified Sampling)分析各市镇的人口
R语言聚类有效性:确定最优聚类数分析IRIS鸢尾花数据和可视化Python、R对小说进行文本挖掘和层次聚类可视化分析案例
R语言k-means聚类、层次聚类、主成分(PCA)降维及可视化分析鸢尾花iris数据集
R语言有限混合模型(FMM,finite mixture model)EM算法聚类分析间歇泉喷发时间
R语言用温度对城市层次聚类、kmean聚类、主成分分析和Voronoi图可视化
R语言k-Shape时间序列聚类方法对股票价格时间序列聚类
R语言中的SOM(自组织映射神经网络)对NBA球员聚类分析
R语言复杂网络分析:聚类(社区检测)和可视化
R语言中的划分聚类模型
基于模型的聚类和R语言中的高斯混合模型
r语言聚类分析:k-means和层次聚类
SAS用K-Means 聚类最优k值的选取和分析
用R语言进行网站评论文本挖掘聚类
基于LDA主题模型聚类的商品评论文本挖掘
R语言鸢尾花iris数据集的层次聚类分析
R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
R语言聚类算法的应用实例

标签:01,语言,Shape,聚类,序列,7974
From: https://www.cnblogs.com/tecdat/p/17228674.html

相关文章

  • 层次聚类算法
    动动发财的小手,点个赞吧!层次聚类是一种构建聚类层次结构的聚类算法。该算法从分配给它们自己的集群的所有数据点开始。然后将两个最近的集群合并到同一个集群中。最后,当......
  • 操作码序列
    操作码序列通常对PE格式文件(.exe文件等),用IDAPro反汇编得到对应的asm(包含汇编代码)文件。从asm文件中可以提取操作码、函数调用等信息作为特征训练机器学习和深度......
  • 【特征】操作码序列
    【特征】操作码序列通常对PE格式文件(.exe文件等),用IDAPro反汇编得到对应的asm(包含汇编代码)文件。从asm文件中可以提取操作码、函数调用等信息作为特征训练机器学......
  • 【小结】操作码序列
    【小结】操作码序列通常对PE格式文件(.exe文件等),用IDAPro反汇编得到对应的asm(包含汇编代码)文件。从asm文件中可以提取操作码、函数调用等信息作为特征训练机器学......
  • m基于改进遗传算法优化的双bp神经网络时间序列预测matlab仿真
    1.算法描述       遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假......
  • Winform中实现保存配置到文件/项目启动时从文件中读取配置(序列化与反序列化对象)
    场景Winform中实现序列化指定类型的对象到指定的Xml文件和从指定的Xml文件中反序列化指定类型的对象:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106466......
  • 被3整除的子序列
    被3整除的子序列思路判断被\(3\)整除当一个数的数位和为\(3\)的倍数时,该数就能被\(3\)整除。证明一个十进制数可以表示为\(a_1*10^{b_1}+a_2*10^{b_2}+...+a_n*10^{b......
  • Java序列化与反序列化三连问:是什么?为什么要?如何做?
    Java序列化与反序列化是什么?Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程。为什么需要序列化与反序列化?对象序列......
  • 1425. 带限制的子序列和
    题目描述数组值可以是负,需要返回一个非空的子序列和的最大值。其中对子序列的要求是相邻两个元素的原始下标不能超过kf1-dp+单调队列优化基本分析1.怎么联想到dp?对某......
  • 线性回归和时间序列分析北京房价影响因素可视化案例|附代码数据
    全文链接:http://tecdat.cn/?p=21467最近我们被客户要求撰写关于北京房价的研究报告,包括一些图形和统计输出。在本文中,房价有关的数据可能反映了中国近年来的变化目的......