Objetivo: Criar uma matriz de distâncias no método Jaccard (Presença/Ausência) de espécies nas UA para entender qual o grau de semelhança das unidades amostrais de acordo com composição de especies 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 Jaccard com os dados de composição de espécies. Definição das variáveis espécie, criação da matriz de distâncias através do método Jaccard, 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
#os dados estão em abundância, portanto, vamos utilizar argumento binary = TRUE
dist.jac <- vegdist(especies, method = "jaccard", binary = TRUE)
cluster.jac <- hclust(dist.jac, 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.jac$labels <- novos.nomes
cluster2.jac <- as.dendrogram(cluster.jac)
par(mar=c(2,2,2,5))
plot(cluster2.jac, horiz = TRUE)
#criação da matriz cofenética
matriz.cof <- cophenetic(cluster.jac)
#correlacionando matriz cofenética com matriz de distâncias, coef. cofenético
cor(matriz.cof, dist.jac)
## [1] 0.7875459
#geralmente > 0.70 o cluster representa bem a matriz de distâncias