2015-02-08 73 views
0

我想使用将显示相似聚类的索引(比例数据)创建树状图。我正在尝试确定我必须使用什么距离/相似性度量,以便它们代表原始索引值。使用索引(比例数据)作为分组变量创建树状图,R

我有一个数据帧,看起来像这样:

data<-read.table(text="ind index 
T1 0.10 
T2 0.11 
       T3 0.01 
       T4 0.64 
       T5 0.03 
       T6 0.15 
       T7 0.26 
       T8 0.06 
       T9 0.01 
       T10 0.004 
       T11 0.01 
       T12 0.19 
       T13 0.04 
       T14 0.69 
       T15 0.06 
       T16 0.51 
       T17 0.15 
       T18 0.26 
       T19 0.26 
       T20 0.01 
       ",header=T) 

head(data) 

data2<-as.matrix(data[,2]) 

d<-dist(data2) 

# prepare hierarchical cluster 
hc = hclust(d) 
# very simple dendrogram 
plot(hc) 

这将产生一个简单的树状图。但是,我实际上想使用索引列中的值作为“我的距离”。欢迎任何建议。提前致谢!

+0

什么是T1? obj 1到obj 2的距离? – 2015-02-08 13:18:36

+0

没有T1,T2等是独特的个体。我想通过索引列来展示一种分组方式,这是每个人在特定区域花费的时间比例(0-1)。我不确定这种数据的分组/聚类的正确方式是什么。 – user1626688 2015-02-08 13:27:30

+1

在一维数据上,大多数距离函数完全一样......我不明白你的问题。 – 2015-02-08 13:29:49

回答

1

也许这会有所帮助?你的值在y轴上。

hc <- hclust(d = d, method="single", members=NULL) 
library(ggdendro) 
ggdendrogram(hc, theme_dendro=FALSE) 

enter image description here

1

可以使用cophenetic函数抽取hclust物体的距离矩阵。由此,您可以检查树状图表示原始距离函数的程度(通过检查您的原始距离与树状图的复合距离之间的相关性)。例如:

> hc <- hclust(d, method="single") 
> cor(d, cophenetic(hc)) 
[1] 0.9270891 
> hc <- hclust(d, method="complete") 
> cor(d, cophenetic(hc)) 
[1] 0.9249611 

这会告诉你,“单”的方法是一点点不是“完成”更好,但是这两个都不是能够完全捕捉的原始距离矩阵(因为他们的关系不是1 )。

我希望这会有所帮助。