3

我试图将 250 个物种的行为特征归类为生活史策略。性状数据由数值变量和名义变量组成。我对 R 和聚类分析比较陌生,但我相信找到这些点的距离的最佳选择是在 daisy 函数中使用 gower 相似性方法。1)这是最好的方法吗?

一旦我有了这些距离,我想找到重要的集群。我研究了 pvclust 并喜欢它赋予我集群强度的能力。但是,我无法修改代码以接受之前使用 daisy 进行的距离测量。我没有成功地尝试遵循这里给出的建议https://stats.stackexchange.com/questions/10347/making-a-heatmap-with-a-precomputed-distance-matrix-and-data-matrix-in-r/ 10349#10349并使用此处获得的代码http://www.is.titech.ac.jp/~shimo/prog/pvclust/pvclust_unofficial_090824/pvclust.R

2)谁能帮我修改现有代码以接受我的距离测量?

3)或者,是否有另一种更好的方法来确定重要集群的数量?

我提前感谢大家的帮助。

4

2 回答 2

2

一些评论...

关于 1)

这是处理不同类型数据的好方法。

您还可以在数据集中创建尽可能多的标称值的新行,并将 1/0 放在需要的地方。例如,如果有 3 个标称值,例如“爬行动物”、“哺乳动物”和“鸟”,您可以将具有 2 列(数字、标称)的初始数据集更改为具有 4 列(数字、数字(代表爬行动物)的新数据集), numeric(代表哺乳动物), numeric(代表鸟)) 一个实例 (23.4,"mammal") 将被映射到 (23.4,0,1,0)。

使用此映射,您可以使用“正常”距离(确保标准化数据,以便没有一列由于它的大/小值而支配其他列)。

关于 2)

daisy 返回一个类型不同的元素,您可以在 cluster 包中的其他聚类算法中使用它(也许您不必实现更多东西)。例如函数 pam 可以直接获取 daisy 返回的对象。

关于 3)

集群确实是主观的,并且大多数集群算法都依赖于初始条件,因此“重要集群”并不是一些人不习惯使用的术语。Pam 在您的情况下可能很有用,因为集群使用 medoids 居中,这对名义数据有好处(因为它是可解释的)。例如,K-means 的缺点是质心不可解释(这意味着 1/2 爬行动物 1/2 哺乳动物是什么意思?) pam 构建以实例为中心的集群,这非常适合解释目的。

关于帕姆:

http://en.wikipedia.org/wiki/K-medoids

http://stat.ethz.ch/R-manual/R-devel/library/cluster/html/pam.html

于 2013-10-15T14:52:22.010 回答
0

您可以使用 Zahn 算法来查找集群。基本上它是一个最小生成树和一个删除最长边的函数。

于 2013-08-01T20:40:40.920 回答