2013-10-01 221 views
1

我有一個關於在Stata中使用cluster kmeans命令的問題。我正在使用該軟件的第13版。在Stata中使用羣集kmeans命令

我知道在使用cluster命令時要獲得一致的分組,必須在命令之前設置種子。我的問題是,爲什麼當我設置不同的種子並運行相同的命令時,生成的分組在組成上與其他分組完全不同?我通過在另一個上運行一個交叉表來收集這個信息,例如tab _clus_1 _clus_2,其中每個集羣都是在不同的集合種子之後生成的,並且看到許多不同的集合。

由於我對cluster命令正在使用的算法知之甚少,這使我擔心正在創建的分組變量的健壯性。我正在使用一個包含616個觀察值的數據集,並給出了41個變量,其中很多變量是虛擬變量(0/1),或者在0到1之間的範圍內,所以我想知道這種變化的缺乏是否會影響每次將種子設置爲不同的編號時都會生成非常不同的分組。

+1

這是關於統計而不是關於編程的更多內容,但是如果你不能獲得(幾乎)可重複的聚類,聚類分析可能是沒有意義的。另一方面,使用0-1變量應該使得聚類更容易,而不是更困難。在相關說明中,沒有代碼的問題在本論壇中被廣泛認爲是偏離主題,並且更好地針對交叉驗證。 –

+0

因爲你提到了你對算法的陌生性,所以我想說明這些集羣標籤是完全隨意的。多次運行kmeans並且每次爲一個案例獲取不同的標籤並不意味着該聚類不同,而是指定了不同的任意標籤。唯一能夠提供信息的是每個標籤中的一組案例。如果這太明顯,我很抱歉 –

回答

0

如果您正在聚類的變量都是二元或因子變量,您可能會發現使用潛類聚類的更穩定的解決方案。

的Stata可以在http://methodology.psu.edu/downloads/lcastata執行通過(1)通過索菲亞拉貝-的Hesketh的gllamm程序和可在SSC從內的Stata,或(2)LCAplugin爲Stata的潛類分析,這是僅適用於Windows平臺。

儘管由於最大矩陣尺寸限制(即800),LCAplugin沒有設計爲與Stata/IC一起工作,但它應該適用於您的問題,因爲如果您的set matsize 800只有616個案例和41個變量。如果您的Stata味道更高(例如SE或MP),LCAplugin不應該受到這些最大矩陣大小限制的困擾。