Aula 5.18 a 5.19

NMDS de uma Matriz de Distância rankeada da composição de espécies pelo método Jaccard (Presença/Ausência)

Objetivo: Desenvolver uma NMDS através de uma matriz de distâncias rankeada da composição de espécies pelo método Jaccard para entender qual o grau de semelhança das unidades amostrais de acordo com a composição de espécies. Além disso, após essa análise de ordenação, se faz um teste de explicação das variáveis ambientais nos componentes NMDS1 e NMDS2, através da função env.fit().

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

NMDS da Matriz de Distância rankeada da composição de espécies pelo método Jaccard (Presença/Ausência) com os dados da composição de espécies (presença/ausência). Definição das variáveis espécies, criação da matriz de distâncias pelo método Jaccard, desenvolvimento da NMDS através da função metaMDS(), plotagem do NMDS com os agrupamentos destacados, plotagem dos dados ambientais na mesma figura do NMDS, análise de o quanto cada variável ambiental (dados ambientais) explicam os agrupamentos formados no NMDS através de teste estatístico (resultado.envfit).

library(permute)
library(lattice)
library(vegan)
## This is vegan 2.5-2
setwd("C:/R/Curso do R/MODULO_5.2")
#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]
#binary = TRUE, considerar dados presença e ausência
dist.jac <- vegdist(especies, method = "jaccard", binary = TRUE)
#o resultado do NMDS apresenta valor de stress, e deve ser < 0.2
resultado <- metaMDS(dist.jac, trymax = 100)
## Run 0 stress 0.1837046 
## Run 1 stress 0.1825413 
## ... New best solution
## ... Procrustes: rmse 0.08998433  max resid 0.2205426 
## Run 2 stress 0.2135807 
## Run 3 stress 0.1791298 
## ... New best solution
## ... Procrustes: rmse 0.06884598  max resid 0.2109636 
## Run 4 stress 0.1837047 
## Run 5 stress 0.2208013 
## Run 6 stress 0.2005841 
## Run 7 stress 0.2340415 
## Run 8 stress 0.2177312 
## Run 9 stress 0.2129772 
## Run 10 stress 0.1791313 
## ... Procrustes: rmse 0.0007597097  max resid 0.003021285 
## ... Similar to previous best
## Run 11 stress 0.232588 
## Run 12 stress 0.2035103 
## Run 13 stress 0.1790043 
## ... New best solution
## ... Procrustes: rmse 0.006289686  max resid 0.02544035 
## Run 14 stress 0.1790043 
## ... New best solution
## ... Procrustes: rmse 6.262973e-05  max resid 0.0002178059 
## ... Similar to previous best
## Run 15 stress 0.1830708 
## Run 16 stress 0.2147437 
## Run 17 stress 0.1790042 
## ... New best solution
## ... Procrustes: rmse 0.0001781325  max resid 0.0007002841 
## ... Similar to previous best
## Run 18 stress 0.2005816 
## Run 19 stress 0.1837046 
## Run 20 stress 0.2002224 
## *** Solution reached
#mostrar através do plot as diferenças da uA de acordo com o coef. de Jaccard
plot(resultado, type = "t")
## species scores not available
#adicionando polígonos na análise de ordenação
ordihull(resultado, groups = Ambiente, show = "Mata_Primária", col="green4")
ordihull(resultado, groups = Ambiente, show = "Mata_Secundária", col="blue")
#função envfit faz o teste de explicação das variáveis ambientais nos componentes NMDS (NMDS1 e NMDS2)
#envfit testa a significância da capacidade das variáveis ambientais em explicar a estrutura de ordenação vista no NMDS, através de lógica de permutação
#envfit testa as relações lineareas das variáveis ambientais com o resultado da ordenação da NMDS
resultado.envfit <- envfit(resultado, dados[,3:6])
plot(resultado.envfit)

resultado.envfit
## 
## ***VECTORS
## 
##                NMDS1    NMDS2     r2 Pr(>r)    
## Temperatura  0.63771  0.77028 0.7062  0.001 ***
## Cobertura   -0.69120 -0.72267 0.7182  0.001 ***
## Luz          0.63936  0.76890 0.6855  0.001 ***
## Flores       0.97300 -0.23080 0.5875  0.001 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Permutation: free
## Number of permutations: 999
#O quadro do resultado.envfit apresenta como cada variável ambiental explica os componentes principais (NMDS1 e NMDS2)