R群集产生错误消息

时间:2012-09-28 10:53:47

标签: r cluster-analysis na

尝试群集时,我收到消息:

  

戴安娜的错误(mat.in,stand = TRUE):    没有进行聚类,NA是不相似矩阵。

这是出乎意料的,因为戴安娜采用矩阵而不是相异矩阵。根据文档,NA的 允许在矩阵中[但不在相异矩阵中]。

示例:

require("cluster")
mat.in=data.frame(A=c(12,10,NA,14,12,60),B=c(NA,11,45,25,13,65))
d=diana(mat.in,stand=TRUE)

我确保既没有全NA列也没有全NA行。

任何人都知道这里发生了什么?

1 个答案:

答案 0 :(得分:1)

问题,至少对于示例数据而言,对于样本1和3,存在无信息,用于计算不相似性。考虑:

> daisy(mat.in)
Dissimilarities :
          1         2         3         4         5
2  2.828427                                        
3        NA 48.083261                              
4  2.828427 14.560220 28.284271                    
5  0.000000  2.828427 45.254834 12.165525          
6 67.882251 73.593478 28.284271 60.959003 70.767224

Metric :  euclidean 
Number of objects : 6
> mat.in
   A  B
1 12 NA
2 10 11
3 NA 45
4 14 25
5 12 13
6 60 65

这解释了相异矩阵中的NA是真实的。对于样本1和样本2之间的比较,样本3中缺少A但是1表示缺少B,而NA则相反。由于没有数据可用于计算这两个样本的相异性,因此在相异度矩阵中得到NA

请注意,只要有一些信息来计算相异性,就明确允许{{1}};产生的基质包含所有样品与样品1和3之间的不相似性。