Statistik kesenjangan adalah cara yang bagus untuk melakukan ini; Tibshirani, Hastie & Walther (2001).
http://stat.ethz.ch/R-manual/R-devel/library/cluster/html/clusGap.html - Paket R yang relevan.
Idenya adalah bahwa ia melakukan tes hipotesis sekuensial mengelompokkan data Anda untuk K = 1,2,3, ... vs hipotesis nol kebisingan acak, yang setara dengan satu cluster. Kekuatan khususnya adalah memberi Anda indikasi yang dapat diandalkan apakah K = 1, yaitu apakah tidak ada kluster.
Berikut ini contohnya, saya sedang memeriksa beberapa data astronomi beberapa hari yang lalu saat itu terjadi - yaitu dari survei planet ekstrasurya transit. Saya ingin tahu bukti apa yang ada untuk kluster (cembung). Data saya 'transit'
library(cluster)
cgap <- clusGap(transit, FUN=kmeans, K.max=kmax, B=100)
for(k in 1:(kmax-1)) {
if(cgap$Tab[k,3]>cgap$Tab[(k+1),3]-cgap$Tab[(k+1),4]) {print(k)};
break;
}
Dengan statistik gap Anda mencari nilai pertama K di mana tes 'gagal' yaitu statistik gap secara signifikan menurun. Lingkaran di atas akan mencetak ak tersebut, namun hanya dengan memplot cgap memberi Anda gambar berikut:
Lihat bagaimana ada kemiringan yang signifikan pada Gap dari k = 1 hingga k = 2, yang menandakan bahwa sebenarnya tidak ada cluster (yaitu 1 cluster).