我试图将250种物种的行为特征聚集到生活史策略中。特征数据包括数值和名义变量。我对R和聚类分析相对较新,但我认为找到这些点的距离的最佳选择是在菊花函数中使用gower相似性方法。 1)这是最好的方法吗?
一旦我有这些距离,我想找到重要的集群。我已经研究过pvclust并且喜欢它能够给我集群的力量。但是,我无法修改代码以接受先前使用菊花进行的距离测量。我未能成功地按照此处提供的建议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)或者,还有另一种更好的方法来确定重要集群的数量吗?
我事先感谢你的帮助。
答案 0 :(得分:1)
一些评论......
关于1)
这是处理不同类型数据的好方法。
您还可以在数据集中创建尽可能多的新行,并将1/0放在需要的位置。例如,如果有3个名义值,例如“爬行动物”,“哺乳动物”和“鸟”,您可以更改具有2列的初始数据集(数字,标称值) 对于一个有4列的新人(数字,数字(代表爬行动物),数字(代表哺乳动物),数字(代表鸟))一个实例(23.4,“哺乳动物”)将被映射到(23.4,0,1,0)
使用此映射,您可以使用“正常”距离(确保标准化数据,以便由于它的大/小值而没有列支配其他列。)
关于2)
daisy返回类型不相似的元素,您可以在集群包中的其他聚类算法中使用它(也许您不必实现更多的东西)。例如,函数pam可以直接获取daisy返回的对象。
关于3)
群集确实是主观的,大多数群集算法都依赖于初始条件,因此“重要群集”实际上并不是某些人不习惯使用的术语。 Pam在你的情况下可能是有用的,因为簇使用medoids来居中,这对于名义数据是有益的(因为它是可解释的)。例如K-means的缺点是质心不可解释(它是什么意思1/2爬行动物1/2哺乳动物?)pam构建了以实例为中心的聚类,这对于解释目的来说很好。
关于pam:
http://en.wikipedia.org/wiki/K-medoids
http://stat.ethz.ch/R-manual/R-devel/library/cluster/html/pam.html
答案 1 :(得分:0)
您可以使用Zahn算法查找群集。基本上它是最小生成树和删除最长边的功能。