-1

我一直在尝试使用 R 作为 MVSP 的替代品进行聚类分析和 PCA。但是,R 使用我发现的所有函数(包括 dist、bcdist、hclust 和 daisy 函数)给出了与 MVSP 截然不同的输出。我还使用了 MVSP 的距离表输出作为 R 中的距离矩阵,它产生了进一步不同的输出。它需要使用欧几里得距离、索伦森骰子系数和平均/UPGMA 聚类的聚类/树状图。第二个人/输入以及我自己在多台计算机和两个版本上都重复了这些问题。SAS 给出了与 MVSP 相同的结果。

是否有另一个我可以使用的包(替代 dist 或 hclust)或在 R 中查看/测试算法的方法?有什么东西会导致这种情况,并且可以将 R 的版本回溯到更早的作品吗?

编辑; 发现了问题,我尝试的所有函数中使用的算法都没有使用 Sorenson 系数,所以我使用了 Proxy 包,带有 dist 函数(以及内置方法 =“Dice”)。

4

1 回答 1

2

相信我,hclust()已经dist()被使用了无数次,也被很多人关注过。与同行推荐的包类似,其cluster功能agnes()daisy(). 实践中的层次聚类算法必须决定如何对树状图分支进行排序(在每个拆分处:什么向左,什么向右?),例如agnes()hclust()它们的左右分配策略不同,但如果选择相同的方法,则在其他方面明显一致。您是否仔细阅读了帮助页面?例如 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()from package相同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

> 

我使用前三个内部组件的非常规印刷来说明它们的数字含义(如果您研究绘图和输出,您可能会开始猜测它们的含义......)。

现在你告诉 use 什么是正确的。

于 2013-11-25T21:06:24.780 回答