您可以使用k means
聚类算法,但在去那里之前,我建议您创建一个N* N
矩阵,其中每个元素代表一个趋势与另一个趋势的相关分数。
然后使用任何聚类算法(如 kmeans/层次聚类)来聚类相似的趋势。
代码
a <- matrix(c(0,1,3,2,0,.32,1,.5,0,.35,1.2,.4,.5,.3,.2,.1,.5,.2,0,-.1),byrow=T, nrow=5)
library(TSclust)
library(reshape2)
Tech1 <- diss(a,"COR") # Correlation
Tech2 <- diss(a,"EUC") # Euclidean Distance
Tech3 <- diss(a, "DTW") # Dynamic Time Wrapping
clust1 <- kmeans(Tech1, 3)
clust1 <- kmeans(Tech2, 3)
clust1 <- kmeans(Tech3, 3)
clust1$cluster
>> 1 2 3 4 5
>> 1 2 2 3 3
clust2$cluster
>> 1 2 3 4 5
>> 1 2 2 3 3
clust3$cluster
>> 1 2 3 4 5
>> 3 2 2 1 1