5 votos

Inversiones en clustering jerárquico

Estoy usando heatmap.2 del clúster mis datos, utilizando el método del centroide para la agrupación y el máximo método para calcular la matriz de distancias:

library("gplots")
library("RColorBrewer")

test           <- matrix(c(0.96, 0.07, 0.97, 0.98, 
                           0.50, 0.28, 0.29, 0.77, 
                           0.08, 0.96, 0.51, 0.51, 
                           0.14, 0.19, 0.41, 0.51), ncol=4, byrow=TRUE)
colnames(test) <- c("Exp1","Exp2","Exp3","Exp4")
rownames(test) <- c("Gene1","Gene2","Gene3", "Gene4")
test           <- as.table(test)
mat            <- data.matrix(test)

heatmap.2(mat, dendrogram="row", Rowv=TRUE, Colv=FALSE, 
          distfun=function(x) dist(x, method='maximum'),
          hclustfun=function(x) hclust(x, method='centroid'),
          xlab=NULL, ylab=NULL, key=TRUE, keysize=1, trace="none", 
          density.info=c("none"), margins=c(6, 12), col=bluered)

Esto le da un mapa de calor con inversiones en el clúster de árbol, que es inherente al método del centroide. Una solución para evitar inversiones es utilizar la distancia Euclídea o la ciudad-bloque de distancia, y, de hecho, si usted cambia de un máximo a un Euclidiana en el ejemplo anterior, las inversiones se han ido (para la referencia, véase el capítulo 4.1.1 en este enlace).

Ahora, en cuanto a mi problema, cuando uso mis datos reales en lugar de esta tabla de ejemplo las inversiones están todavía allí cuando me cambio a la Euclídea. El R código es exactamente el mismo, como en este ejemplo, sólo los datos es diferente. Cuando utilizo cluster 3.0 y java treeview con la Euclidiana y el método del centroide no hay inversiones en mis datos, como se esperaba. Entonces, ¿por qué R dar las inversiones? La teoría y otro software dice que no debería.

Actualización: Este es un ejemplo fueron cambiando máximo para Euclidiana no soluciona inversiones (en contraposición al ejemplo de arriba se hizo solucionarlo)

library("gplots")
library("RColorBrewer")

test           <- matrix(c(0.96, 0.07, 0.97, 0.98, 0.99, 0.50, 
                           0.28, 0.29, 0.77, 0.78, 0.08, 0.96, 
                           0.51, 0.51, 0.55, 0.14, 0.19, 0.41, 
                           0.51, 0.40, 0.97, 0.98, 0.99, 0.50, 
                           0.28                               ), ncol=6, byrow=TRUE)
colnames(test) <- c("Exp1", "Exp2", "Exp3", "Exp4", "Exp5", "Exp6")
rownames(test) <- c("Gene1", "Gene2", "Gene3", "Gene4")
test           <- as.table(test)
mat            <- data.matrix(test)

heatmap.2(mat, dendrogram="row", Rowv=TRUE, Colv=FALSE, 
          distfun=function(x) dist(x, method='maximum'),
          hclustfun=function(x) hclust(x, method='centroid'),
          xlab=NULL, ylab=NULL, key=TRUE, keysize=1, trace="none", 
          density.info=c("none"), margins=c(6, 12), col=bluered)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X