使用nbclust时“TSS矩阵不定,缺失值一定太多,无法计算索引”

far*_*far 7 r cluster-analysis

我想使用 NbClust 包确定聚类的最佳 k。我的数据既有连续变量又有分类变量,因此我使用使用 cluster 包中的 daisy() 计算得出的相异矩阵。我使用了下面的代码:

 res.nb <- NbClust(gower_dist_gender, min.nc = 1, 
              max.nc = 5,method = "complete", index ="all")
Run Code Online (Sandbox Code Playgroud)

并遇到这个错误:

The TSS matrix is indefinite. There must be too many missing values. The 
  index cannot be calculated.
Run Code Online (Sandbox Code Playgroud)

问题是什么?我应该如何解决?另外考虑到当我将索引设置为“silhouette”时,没有出现问题并返回最佳k为2。但我想使用index =“all”来确保根据大多数索引得到最佳k的结果(当索引设置为“全部”时,26个索引被视为索引,结果显示索引对k个数的多数投票)。 所以问题是为什么运行上面将索引设置为“all”的代码会遇到前面提到的错误?

任何一点帮助将不胜感激。

Ano*_*sse 2

您对 NbClust 的调用是错误的。

\n

请参阅有关如何使用距离矩阵而不是数据矩阵的文档:

\n
\n

数据

\n

矩阵或数据集。

\n

指责

\n

要使用的相异矩阵。默认情况下,\xc2\xa0diss=NULL,但如果用相异矩阵替换,则距离应为“NULL”。

\n

距离

\n

用于计算相异矩阵的距离度量。这必须是以下之一:“euclidean”、“maximum”、“manhattan”、“canberra”、“binary”、“minkowski”或“NULL”。默认情况下,距离=“欧几里德”。如果距离为“NULL”,则相异矩阵(diss)应由用户给出。如果距离不为“NULL”,则相异矩阵应为“NULL”。

\n
\n

使用 data=NULL、distance=NULL 并设置 diss 代替。

\n