Aula 5.9

Cluster UPGMA através da Matriz de Distâncias de quantidade de espécies pelo método Bray-Curtis (Abundância)

Objetivo: Criar uma matriz de distâncias no método Bray-Curtis (abundância) de espécies nas UA para entender qual o grau de semelhança das unidades amostrais de acordo com as quantidades de espécies por meio da visualização em um Cluster.

Este material está disponível em: http://rpubs.com/leonardoreffatti.

Cluster da Matriz de Distâncias através do método Bray-Curtis com os dados de quantidades de espécies. Definição das variáveis espécie, criação da matriz de distâncias através do método Bray-Curtis, definição de novos nomes para as unidades amostrais, plotagem do cluster com as novas unidades amostrais, verificação de o quanto o Cluster representa a Matriz de Distâncias através do coeficiente cofenético (matriz cofenética).

library(permute)
library(lattice)
library(vegan)
## This is vegan 2.5-2
setwd("C:/R/Curso do R/MODULO_5.1")
#inserindo os nomes das UAs no Cluster, argumento row.names
dados<-read.table("insetos.txt", h=T, row.names = 1)
attach(dados)
str(dados)
## 'data.frame':    30 obs. of  40 variables:
##  $ Ambiente   : Factor w/ 2 levels "Mata_Primária",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ Gado       : Factor w/ 2 levels "Ausente","Presente": 2 1 2 2 2 1 1 1 2 2 ...
##  $ Temperatura: num  21.8 21.3 23.8 23.2 21.5 21.7 20.3 19.7 24.7 20.2 ...
##  $ Cobertura  : int  73 62 57 49 59 78 64 74 48 75 ...
##  $ Luz        : num  53.5 61 71.5 69.5 61.5 53 58 56 71 60.5 ...
##  $ Flores     : int  14 28 17 29 15 24 21 29 20 5 ...
##  $ sp.1       : int  4 5 1 3 5 1 1 0 6 3 ...
##  $ sp.2       : int  0 0 0 0 0 0 3 1 4 0 ...
##  $ sp.3       : int  7 3 2 6 7 2 2 1 8 3 ...
##  $ sp.4       : int  2 7 0 4 2 4 5 3 3 1 ...
##  $ sp.5       : int  0 2 2 1 1 0 3 4 0 0 ...
##  $ sp.6       : int  0 5 2 14 4 3 3 9 8 0 ...
##  $ sp.7       : int  3 2 3 2 1 4 3 2 1 3 ...
##  $ sp.8       : int  2 4 3 5 2 3 0 0 1 0 ...
##  $ sp.9       : int  1 2 0 0 0 0 2 0 1 0 ...
##  $ sp.10      : int  1 3 5 2 1 1 0 0 1 1 ...
##  $ sp.11      : int  0 0 0 4 0 2 0 2 0 0 ...
##  $ sp.12      : int  1 5 0 2 0 2 4 5 0 0 ...
##  $ sp.13      : int  3 6 0 3 3 2 3 1 4 2 ...
##  $ sp.14      : int  3 4 2 10 5 2 2 5 8 0 ...
##  $ sp.15      : int  0 0 0 0 1 0 0 0 1 0 ...
##  $ sp.16      : int  3 3 0 2 0 0 3 0 1 0 ...
##  $ sp.17      : int  0 0 0 1 0 0 0 0 0 0 ...
##  $ sp.18      : int  0 1 2 3 1 3 0 0 2 0 ...
##  $ sp.19      : int  0 0 2 2 3 0 0 2 0 1 ...
##  $ sp.20      : int  0 3 0 0 0 4 0 2 0 0 ...
##  $ sp.21      : int  0 1 3 4 2 1 3 3 3 2 ...
##  $ sp.22      : int  1 2 1 2 2 2 1 2 2 2 ...
##  $ sp.23      : int  1 0 1 2 1 1 2 1 2 1 ...
##  $ sp.24      : int  1 1 0 2 1 2 0 1 1 1 ...
##  $ sp.25      : int  0 1 0 2 0 1 1 0 0 1 ...
##  $ sp.26      : int  2 2 1 0 1 1 2 1 1 1 ...
##  $ sp.27      : int  0 0 0 0 0 0 3 0 0 0 ...
##  $ sp.28      : int  1 0 0 0 0 0 0 0 0 2 ...
##  $ sp.29      : int  0 0 0 0 1 0 0 0 0 0 ...
##  $ sp.30      : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ sp.31      : int  0 5 0 0 0 0 1 0 0 0 ...
##  $ sp.32      : int  1 1 1 0 1 1 1 0 1 1 ...
##  $ sp.33      : int  0 0 0 0 1 0 0 0 1 0 ...
##  $ sp.34      : int  0 0 0 0 1 0 0 0 0 0 ...
especies <- dados[ ,7:40]
#não é necessário padronização, pois a abundância de espécies esta em mesma escala
dist.bray <- vegdist(especies, method = "bray")
cluster.bray <- hclust(dist.bray, method = "average")
codigos <- ifelse(Ambiente=="Mata_Primária", "MP", "MS")
codigos
##  [1] "MP" "MP" "MP" "MP" "MP" "MP" "MP" "MP" "MP" "MP" "MP" "MP" "MP" "MP"
## [15] "MP" "MP" "MP" "MS" "MS" "MS" "MS" "MS" "MS" "MS" "MS" "MS" "MS" "MS"
## [29] "MS" "MS"
novos.nomes <- paste(row.names(dados), codigos, sep = "-")
novos.nomes
##  [1] "área1-MP"  "área2-MP"  "área3-MP"  "área4-MP"  "área5-MP" 
##  [6] "área6-MP"  "área7-MP"  "área8-MP"  "área9-MP"  "área10-MP"
## [11] "área11-MP" "área12-MP" "área13-MP" "área14-MP" "área15-MP"
## [16] "área16-MP" "área17-MP" "área18-MS" "área19-MS" "área20-MS"
## [21] "área21-MS" "área22-MS" "área23-MS" "área24-MS" "área25-MS"
## [26] "área26-MS" "área27-MS" "área28-MS" "área29-MS" "área30-MS"
cluster.bray$labels <- novos.nomes
cluster2.bray <- as.dendrogram(cluster.bray)
par(mar=c(2,2,2,5))
plot(cluster2.bray, horiz = TRUE)

#criação da matriz cofenética
matriz.cof <- cophenetic(cluster.bray)
#correlacionando matriz cofenética com matriz de distâncias, coef. cofenético
cor(matriz.cof, dist.bray)
## [1] 0.7749665
#geralmente > 0.70 o cluster representa bem a matriz de distâncias