使用dtwclust

时间:2017-12-14 09:41:43

标签: r time-series cluster-analysis dtw

我正在尝试第一次尝试时间序列聚类并需要一些帮助。我已经阅读了关于时间序列聚类的tsclust和dtwclust软件包,并决定尝试使用dtwclust。

我的数据包括不同地点的温度每日时间序列(每天一个单一值)。我想根据温度序列对空间簇中的不同位置进行分组。我的第一次尝试(只是复制了一个带有选项的例子并放入了我的数据,temp.max3)

library(dtwclust)

hc<- tsclust(temp.max3, type = "h", k = 20L,
             preproc = zscore, seed = 899,
             distance = "sbd", centroid = shape_extraction,
             control = hierarchical_control(method = "average"))

但这给了我这个错误信息

  

stats :: hclust(stats :: as.dist(distmat),method,members =中的错误   dots $ members):外部函数调用中的NA / NaN / Inf(arg 11)

我必须先删除任何系列中存在的所有NA,导致temp.max3数据帧不包含任何NA值。

summary(temp.max3)
      8025           8400A            8416            8455      
 Min.   : 6.40   Min.   : 4.60   Min.   : 6.00   Min.   : 4.00  
 1st Qu.:18.80   1st Qu.:17.40   1st Qu.:18.20   1st Qu.:19.00  
 Median :23.20   Median :22.00   Median :22.60   Median :24.00  
 Mean   :23.34   Mean   :22.23   Mean   :22.71   Mean   :23.67  
 3rd Qu.:28.20   3rd Qu.:27.40   3rd Qu.:27.40   3rd Qu.:29.00  
 Max.   :41.40   Max.   :40.60   Max.   :43.00   Max.   :42.00

数据看起来像

head(temp.max3)
      8025 8400A 8416 8455
13127 16.0  14.0 13.5   14
13128 17.8  15.6 17.4   20
13129 18.2  15.2 19.2   18
13130 17.2  15.0 17.6   19
13131 17.0  13.8 15.6   17
13132 21.0  14.0 18.2   19

其中8025,8400A,8416和8455是电台代码(现在只有四个,但最终分析将延伸到120)。可以在此保管箱链接https://www.dropbox.com/s/xru4qnz8grhbxuo/data.csv?dl=0

上找到数据

任何想法,链接到信息或示例将非常感谢,提前感谢

1 个答案:

答案 0 :(得分:1)

感谢Alexis的评论,错误消息消失了,脚本运行正常。

library(dtwclust)

temp.max4<-t(temp.max3)

hc<- tsclust(temp.max4, type = "h", k = 2L,
             preproc = zscore, seed = 899,
             distance = "sbd", centroid = shape_extraction,
             control = hierarchical_control(method = "average"))

使用此输出

enter image description here

Alexis,对不起,我不能接受评论作为解决方案。