意外的群集错误在中间分区

问题描述

我正在使用fpc软件包来确定最佳群集数。 pamk()函数采用相异度矩阵作为参数,不需要用户指定k。根据{{​​3}}:

pamk()这将调用pam和clara进行围绕类固醇的分区 聚类方法(Kaufman和Rouseeuw,1990),包括两个 估算簇数的不同方法

但是当我输入两个非常相似的矩阵foobar(下面的数据)时,函数在第二个矩阵上出现错误(条形图)

Error in pam(sdata,k,diss = diss,...) : 
  Number of clusters 'k' must be in {1,2,..,n-1}; hence n >= 2 

鉴于输入矩阵基本相同,是什么导致此错误?例如:

foo有效!

hc <- hclust(as.dist(foo))
plot(hc)
pamk.best <- fpc::pamk(foo)
pamk.best$nc
[1] 2

documentation

酒吧没有

hc <- hclust(as.dist(bar))
plot(hc,main = 'bar dendogram')
pamk.best <- fpc::pamk(bar)
Error in pam(sdata,n-1}; hence n >= 2

enter image description here

任何建议都会有所帮助!

dput(foo)
structure(c(0,9,0),.Dim = c(14L,14L),.Dimnames = list(
    c("etc","etc","similares","similares"),NULL))

dput(bar)
structure(c(0,6,.Dim = c(5L,5L),.Dimnames = list(c("ramírez",NULL))

解决方法

bar具有n=5列,因此max(krange)必须为krange;尝试:

pamk.best <- fpc::pamk(bar,krange=c(2:(dim(bar)[2]-1)))