-1

我一直在嘗試使用R作爲MVSP的替代方案來進行聚類分析和PCA。然而,R使用我發現的所有功能(包括dist,bcdist,hclust和菊花功能)給MVSP提供了截然不同的輸出。我還使用MVSP的距離表輸出作爲R中的距離矩陣,從而產生更多不同的輸出。它需要使用歐氏距離,sorenson-dice係數和平均/ UPGMA聚類的聚類/樹形圖。第二人稱/輸入以及我自己在多臺計算機和兩個版本中都會重複出現這些問題。 SAS與MVSP具有相同的結果。Dist和hclust函數輸出意外/不正確的輸出

是否有另一個我可以使用的軟件包(替代dist或hclust)或在R中查看/測試算法的方法?有什麼可能導致這種情況,並可能將R的版本回溯到更早的一項工作?

編輯;發現這個問題,我嘗試過的所有函數中使用的算法都沒有使用Sorenson係數,所以我使用了代理軟件包,使用dist函數(以及內置方法=「Dice」)。

+0

編寫一個簡單的'dist'函數來獲取數據集的行或列的距離矩陣並不是很困難。然後,您可以將其與SAS/MVSP/R輸出進行比較,以嘗試確定距離的位置。 –

+0

你可以添加你自己的答案。它最好包括代碼和示例數據對象 –

回答

2

相信我,hclust()dist()已使用gazillion的次數,也看過許多。與其推薦包cluster中的同行相似,功能agnes()daisy()。實際上,分層聚類算法必須決定如何對樹形圖分支(在每個分割處:左邊的是什麼,右邊的是什麼?)和例如agnes()hclust()在它們的左右分配策略上有所不同,但明顯重合iff選擇相同的方法。 您是否仔細閱讀了幫助頁面?例如。 hclust默認爲「完成」,而agnes()默認爲更明智的「平均值」。

但是,如果您已經看到dist()的「問題」,那麼您一定還沒有掌握如何將數據正確地轉換爲R ..或類似的東西!

讓我們用簡單的一個維數據,(所以有與 dist()沒有問題),即前5張素數,並顯示什麼 - [R做,然後 試圖證明爲什麼這不應該是100%正確的

> (D <- dist(setNames(, c(2,3,5,7,11)))) 
    2 3 5 7 
3 1  
5 3 2  
7 5 4 2 
11 9 8 6 4 
> hc <- hclust(D) 
> plot(hc) ## --- see the attached image [1] 

現在用agnes()從包cluster,小心確保 所使用的相同的方法相同:

> library(cluster) 
> ag <- agnes(D, method="complete") 
> print.default(hc[1:3]) 
$merge 
[,1] [,2] 
[1,] -1 -2 
[2,] -3 -4 
[3,] 1 2 
[4,] -5 3 

$height 
[1] 1 2 5 9 

$order 
[1] 5 1 2 3 4 

> 

我用前三個內部組件的非常規印刷來說明它們的數值(如果你研究圖和輸出,你可能會開始猜測它們是什麼意思......)。

現在你告訴使用什麼而不是在這裏是正確的。

+0

嗯,該圖像某種程度上沒有「工作」......好吧,它不難在屏幕上顯示,因爲你有R! –

+0

我一直在輸入12行5列的小表,如果這仍然有效?不知道這可能是什麼拋出它。謝謝。 – user3033127