尝试群集时,我收到消息:
戴安娜的错误(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行。
任何人都知道这里发生了什么?
答案 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之间的不相似性。