2015-02-08 10 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? –

+0

Нет T1, T2 и т. Д., Являются уникальными людьми. Я хочу показать способ группировки по столбцу индекса, который представляет собой долю времени (0-1) каждого отдельного трата в определенной области. Я не уверен, что это правильный способ группировки/кластеризации для такого рода данных. – user1626688

+1

На одномерные данные большинство функций расстояния выполняют то же самое ... Я не понимаю ваш вопрос. –

ответ

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).

Надеюсь, это поможет.