原文 :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發布時股價飆升的影響 。