2013-04-10 33 views
2

当你在R中的以下集群:R中的层次聚类默认行为?

> d <- dist(as.matrix(mtcars)) 
> hc <- hclust(d) 
> plot(hc) 

你得到与具有不相等的分支长度节点树。在普通的分层聚类(upgma)中,所有长度必须相等。有人可以解释hclust的默认行为,以及它如何产生不等长度?谢谢。

+0

你能解释一下“不等分枝长度”是什么意思吗?杜你是指从树状图根到叶子的长度或两个分支点之间的长度? – Beasterfield 2013-04-11 08:09:04

+0

@Beasterfield:从根到叶子的长度,它在所有叶子上总是相等的 – user248237dfsf 2013-04-11 13:14:15

回答

2

我也觉得这是一种奇怪的行为。但它不是由hclust而是plot.hclust引起的。如果您帮忙看一下(? plot.hclust),你会发现hang参数被设置为0.1的默认:

情节高度的比例由标签应挂情节其余下方。负值将导致标签从0

因此下垂,从UPGMA知的行为可以实现

plot(hc, hang = -1) 

我猜,这两个不同的行为是结果不同的定义应将高度分配给仅包含一个观察值的群集,即不与另一个观测值合并。显然这里的定义是:他们根本没有身高。形式上,用hang = 0来绘制它们是正确的。但由于这看起来很丑,我猜hang = 0.1被设置为默认值。

无论如何,你会得到不等长度的分支hang >= 0

+0

我想我理解“挂起”,但我仍然不明白为什么它会差异地应用于某些叶子而不是其他叶子......你是对的,'hang = -1'修复了这个问题 – user248237dfsf 2013-04-13 16:52:18

+0

@ user248237dfsf它是如何差异化应用的?你能给个例子吗?它将叶子置于聚类内部的高度处 - 合并 - “挂起”*树状图的总高度。 – Beasterfield 2013-04-15 06:52:17