As técnicas de agrupamento (cluster analysis) são muito úteis para organizar, ou classificar, dados observados em estruturas de fácil interpretação. Uma ótima referência é o livro Numerical Ecology with R (Boccard et al. 2011). O tuturial do pacote vegan (clique aqui) também trás explicações e exemplos interessantes.
Os dendrogramas são como mobiles, seus grupos são sempre os mesmos, mas podem mudar de posição. O grupo 1 não é necessariamente o primeiro à esquerda, nem o grupo 2 vem a seguir. Isto pode complicar na hora de interpretar os fatores relacionados na formação dos grupos. Um bom exemplo está na página 38 do tutorial do vegan. Temos a figura de um dendrograma seguida de um boxplot. Se não prestarmos atenção poderemos ser levados a crer, por exemplo, que o grupo 2, onde encontramos a maior mediada é formado pelos objetos 1, 2, 10, 5, 6 e 7. No entanto, este conjunto de objetos forma o grupo 1, como veremos a seguir, que tem a menor mediana. A interpretação do dendrograma poder ser facilitada se o número do grupo puder ser visualizado em conjunto. Vamos ao exemplo do tutorial
# carrega a biblioteca e os dados
library(vegan)
data(dune)
data(dune)
# calcula a matriz de distância, as ligações, plota o dendrograma e identifica os grupos
dis <- vegdist(dune)
cluc <- hclust(dis, "complete")
plot(cluc)
cluc <- hclust(dis, "complete")
plot(cluc)
rect.hclust(cluc, 3)
# verifica que objetos foram classificados em cada grupo
grp<-cutree(cluc, 3)
grp
grp
# substitui no dendrograma o nome do objeto pelo número do grupo
plot(cluc, labels = as.character(grp))
# desenha no dendrograma os retângulos de cada grupo e os numera
# agradeço a dica de Elias T. Krainski (lista R-Br)
plot(cluc)
r <- rect.hclust(cluc, 3)
text(cumsum(sapply(r,length)),
rep(mean(tail(unique(cluc$hei),2)), length(r)),
paste(unique(grp[cluc$ord])))
text(cumsum(sapply(r,length)),
rep(mean(tail(unique(cluc$hei),2)), length(r)),
paste(unique(grp[cluc$ord])))
Agora fica mais fácil relacionar o dendrograma ao boxplot no tutorial do vegan.
Olá Antônio Olinto, parabéns pelo excelente material disponibilizado, são pessoas como você que fazem o conhecimento científico crescer.
ResponderExcluirTenho uma dúvida, como faço para substituir os números 1 2 3 4 5 etc do dendrograma pelos nomes das respectivas amostras ?
Desde já agradeço.
Olá Leonardo, para mudar o nome das amostras você deve alterar na sua matriz o nome das linhas. Ou seja o nome de cada linha deve ser o nome da amostra. Procure no help do R por row.names
ExcluirAbraços
Olá Antonio. Sei que há complementos no comando para construção do gráfico que modificam suas características como tamanho de letra, por exemplo.Você sabe como faço para alinhar todos os objetos na base do dendrograma. Já vi isso uma vez e não consigo me lembrar.
ResponderExcluirMuito obrigado.
Este comentário foi removido pelo autor.
ResponderExcluirOlá, consigo fazer o dendrograma através desses comandos...
ResponderExcluiroutput_cluster<-hclust(dist(camarao),method= “ward.D”)
dendograma_output_cluster<-plot(output_cluster,labels=objetos,ylab=’altura’)
Mas quando vou fazer essa identificação aparece: Error in rowSums(x, na.rm = TRUE) : 'x' deve ser numérico
Olá! Qual o comando para obtenção do Coeficiente de Correlação Cofenética do dendrograma? Obrigado!
ResponderExcluir