使用pvclust聚类一维数据

时间:2013-05-20 22:16:33

标签: r cluster-analysis dimension statistics-bootstrap pvclust

感谢您花时间阅读此问题。我有一些一维数据要在R中聚类。基本hclust命令工作正常。但是pvclust命令不会采用一维数据,并且一直说:

Error in hclust(distance, method = method.hclust) : 
  must have n >= 2 objects to cluster

我找到了解决办法,我在数据中添加了一些全零行。所以数据变成了:

       [,1]   [,2]   [,3]  [,4]  [,5]   [,6]   [,7]   [,8]   [,9]  [,10]
[1,]  7.424 14.251 15.957 1.542 2.451 20.836 13.534 20.003 12.555 10.817
[2,]      0      0      0     0     0      0      0      0      0      0
[3,]      0      0      0     0     0      0      0      0      0      0
[4,]      0      0      0     0     0      0      0      0      0      0

然后我跑了pvclust,它运作了!

但是我担心这种解决方法会破坏pvclust背后的数学。任何人都可以告诉我,我是对还是错,如果我的问题有更好的解决方案吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

首先,让我说明这些方法都不适用于一维数据

对于一维数据,请使用利用数据排序的方法。例如,使用基于核密度估计的方法。

术语“聚类分析”通常仅与多维数据一起使用。在一维中,有更好的方法。另请参阅“自然中断优化”,但恕我直言,您应该使用内核密度估算:将数据拆分为KDE中的本地最小值。

现在回答你的实际问题。最有可能的问题是你是......传递1维数据。这被解释为一个记录,d维度,因此该方法抱怨只有一个样本。您可以先成功转置您的记录。

随着您添加零记录的破解,结果很可能变成虚假。您可能正在聚类一个数据集,该数据集包含1个包含数据的向量,以及3个全部为零的向量...

但最后,你不应该在这里使用这些方法!使用利用可以对数据进行排序的方法。