1

距離行列 1609*1609 があり、距離範囲は 0 ~ 1 です。この行列を使用して自然なクラスター数を取得する方法は?

spss には、特定の数のクラスターを生成できる TwoStep クラスター関数があることは知っていますが、入力は変数リストである必要があります。私は距離行列しか持っていないので、SPSS で TwoStep クラスターを使用することはできないと思います。

で使用しようとしhclustましRたが、クラスターの数がわかりません。を使用しようとしていますNbClustが、「マトリックス」が何であるかわかりません。私は非類似度行列しか持っていません。

サンプルデータは以下の通りです。

diss_matrix<-matrix(
  c(0,0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,0.25,0.75,0.916666667,0.75,
            0.916666667,0,0.916666667,0.916666667,0.916666667,0.916666667,0.75,0.25,0.916666667,0.25,
            0.916666667,0.916666667,0,0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,
            0.916666667,0.916666667,0.916666667,0,0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,
            0.916666667,0.916666667,0.916666667,0.916666667,0,0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,
            0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,0,0.916666667,0.916666667,0.916666667,0.916666667,
            0.25,0.75,0.916666667,0.916666667,0.916666667,0.916666667,0,0.5,0.916666667,0.75,
            0.75,0.25,0.916666667,0.916666667,0.916666667,0.916666667,0.5,0,0.916666667,0.25,
            0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,0.916666667,0,0.916666667,
            0.75,0.25,0.916666667,0.916666667,0.916666667,0.916666667,0.75,0.25,0.916666667,0),
          nrow=10,
          ncol=10,              
          byrow = TRUE)

dimnames(diss_matrix) = list( 
    paste0("A", 1:10),# row names 
    paste0("A", 1:10)) # column names 
diss_matrix

hclustはプロットを描くために使用しますが、これは私が望むものではありません.

library(stats)#install.packages("hclust")
diss_matrix2<-as.dist(diss_matrix, diag = FALSE, upper = FALSE)
fit <- hclust(diss_matrix2, method="ward.D")
plot(fit)

グループ番号を自動生成したいので、やってみNbClustます。

library(NbClust)    
NbClust(data = "NULL", diss = diss_matrix, distance ="NULL", min.nc = 2, max.nc = 15,  method = "ward", index = "all", alphaBeale = 0.1)

しかし、それは示しています

Error in t(jeu) %*% jeu : 
  requires numeric/complex matrix/vector arguments

前もって感謝します。

4

1 に答える 1