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

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

时间:2024-03-19 16:34:16浏览次数:25  
标签:01 语言 Shape 聚类 序列 7974

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

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

本文我们将使用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/18083294

相关文章

  • 资源加载和序列化
    一切加载最后都要跑到LoadPackageInternal:创建Linker序列化(LoadAllObjects){ FUObjectSerializeContext*InOutLoadContext=LoadContext; Linker=GetPackageLinker(InOuter,PackagePath,LoadFlags,nullptr,InReaderOverride,&InOutLoadContext,ImportLinker,In......
  • C#,人工智能,机器学习,聚类算法,训练数据集生成算法、软件与源代码
    摘要:本文简述了人工智能的重要分支——机器学习的核心算法之一——聚类算法,并用C#实现了一套完全交互式的、可由用户自由发挥的,适用于聚类算法的训练数据集生成软件——Clustering。用户使用鼠标左键(拖动)即可生成任意形状,任意维度,任意簇数及各种数据范围的训练数据集,同时也可以......
  • abc253E 相邻元素之差不低于K的序列数
    给定n,m,k,找一个序列A[n],使用满足1<=A[i]<=m,并且任意相邻两元素的差的绝对值大于等于k,求满足条件的序列个数,求998244353取模。2<=n<=1000;1<=m<=5000;0<=k<=m-1设dp[i][j]表示前i个数,以j结尾的方案数,在计算dp[i+1][k]时,可以枚举j进行统计,复杂度为O(n^3),可以通过前缀和优化成O(......
  • python时间序列缺失值补零
    有个雨滴谱的数据,情况是有雨滴的时候会记录那个时刻的雨滴情况,但是无雨滴的时间没有记录那么我想花一个雨滴时间序列的情况,就需要补全没有雨滴的时间,并且记录为0数据情况如下: python代码:#!usr/bin/envpython#-*-coding:utf-8-*-"""@author:Su@file:timecomplet.p......
  • FastJson反序列化3-1.2.25绕过
    在1.2.25中,主要添加了config.checkAutoType(typeName,null)函数,所以从这里开始查看检查逻辑;为了方便,先看POC;publicvoidbyPass1(){Strings1="{{\"@type\":\"java.lang.Class\",\"val\":\"com.sun.rowset.JdbcRowSetImpl\"},{......
  • FastJson反序列化2-1.2.24漏洞利用
    1、1.2.24漏洞利用-JNDI漏洞利用思路,如果某个类的set()方法中使用了JNDI,那么则可以使用JDNI注入执行任意命令。事实上在JDK8中就存在这样的类:JDBCRowSetImpl;该类实现了JdbcRowSwt接口,继承自BaseRowSet;packagecom.sun.rowset;其中setAutoCommit方法中的else分支调用了conn......
  • FastJson反序列化1-FastJson基础使用及反序列化流程分析
    1、FastJson简介及使用fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。1.1序列化JavaBean;假设现在程序中有一个类User,基本信息如下(省略构造方法及getset方法):packageorg.exampl......
  • 时间序列(二)——实践中应用
    时间序列(二)实践中选择模型通过p、d、q决定需要的模型超参数p的确定超参数q的确定一般情况下如何确定p和q实践中选择模型通过p、d、q决定需要的模型ARIMA模型的公式可以表示为:Y......
  • 时间序列预测的零样本学习是未来还是炒作:TimeGPT和TiDE的综合比较
    最近时间序列预测预测领域的最新进展受到了各个领域(包括文本、图像和语音)成功开发基础模型的影响,例如文本(如ChatGPT)、文本到图像(如Midjourney)和文本到语音(如ElevenLabs)。这些模型的广泛采用导致了像TimeGPT[1]这样的模型的出现,这些模型利用了类似于它们在文本、图像和语音方面获......
  • 第五十七天| 647. 回文子串、5.最长回文子串、516.最长回文子序列
    Leetcode 647.回文子串题目链接:647回文子串题干:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的......