Workshop análises de diversidade no R

Raquel Divieso

2023-07-10

Neste tutorial vamos ter uma introdução sobre análises básicas de diversidade em comunidades ecológicas utilizando o pacote vegan.

library(vegan)
## Carregando pacotes exigidos: permute
## Carregando pacotes exigidos: lattice
## This is vegan 2.6-4
library(ggplot2)
library(viridis) #pacote com opções de ótimas cores.
## Carregando pacotes exigidos: viridisLite
library(cowplot) #adições em estéticas do ggplot2

Diversidade Alfa: A diversidade de uma comunidade local (um único sitio ou amostra)

Beta diversidade: A diversidade entre comunidades locais. Pode ser descrita como a relação entre a diversidade alfa e gama (gama diversidade dividida pela diversidade alfa).

Diversidade Gama A diversidade total de um ecossistema (todos os locais ou amostras)

data(BCI, BCI.env)
BCI é um dataset de 225 espécies de árvores (nas colunas) e 50 locais diferentes (linhas) (plots de 1-hectare)

Este tipo de configuração dos dados é o mais usado para este tipo de análises

BCI.env é um dataset com dados ambientais com 9 variáveis dos 50 locais (linhas):
  • [,1]coordenadas E-W
  • [,2]coordenadas N-S
  • [,3]precipitação (mm por ano)
  • [,4]elevação (m)
  • [,5]idade da floresta (categoria)
  • [,6]geologia (formação geológica)
  • [,7]Tipo de habitat dominante
  • [,8]Rio (sim ou não)
  • [,9]Heterogeneidade ambiental

Estes são bons exemplos de variáveis que podem influenciar a diversidade de espécies de um local. As variáveis a serem coletadas sempre vão depender de uma hipótese prévia.

Diversidade Alfa

div <- diversity(BCI)

A métrica padrão desta função é o índice de shannon. Mas este argumento pode ser mudado para simpson” ou “invsimpson”:

div1 <- diversity(BCI, index = “simpsion”) div2 <- diversity(BCI, index = “invsimpson”,)

Ambas variantes do índice de Simpson são baseadas na Diversidade = soma (abundâncias proporcionais)²

simpson= 1-Diversidade invsimpson= 1/Diversidade

head(div) #um valor para cada localidade.
##        1        2        3        4        5        6 
## 4.018412 3.848471 3.814060 3.976563 3.969940 3.776575
Riqueza
riq<- specnumber(BCI) #também, uma riqueza para cada localidade
Índice de Equidade/Equitabilidade (Pielou’s Evenness)

Valor referente à distribuição dos indivíduos entre as espécies, sendo proporcional à diversidade e inversamente proporcional a dominância.

equi <- div/log(riq)
Criando dados de alfa-diversidade juntamente com os dados ambientais
alfa <- cbind(shannon = div, richness = riq, pielou = equi, BCI.env)
head(alpha)
##                                                                     
## 1 function (colour, alpha = NA)                                     
## 2 {                                                                 
## 3     if (length(colour) != length(alpha)) {                        
## 4         if (length(colour) > 1 && length(alpha) > 1) {            
## 5             stop("Only one of colour and alpha can be vectorised")
## 6         }

Temos agora um conjunto de dados com as (possíveis) variáveis resposta (diversidade, riqueza e equidade) e todas as possíveis variáveis preditoras para cada localidade

Temos a possibilidade de plotar e analisar estes dados, testando a diferença significativa entre as localidades e as variáveis que influenciam a diversidade.

Exemplos rápidos para testes de correlação entre as variáveis ambientaos e a diversidade:

  • Regressões - utilizando modelos lineares simples:
reg<-lm(shannon ~ Precipitation , alfa) #testando se a precipitação apresenta influencia na diversidade
summary(reg)
## 
## Call:
## lm(formula = shannon ~ Precipitation, data = alfa)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.17898 -0.07669  0.02919  0.14826  0.25649 
## 
## Coefficients: (1 not defined because of singularities)
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    3.82084    0.03311   115.4   <2e-16 ***
## Precipitation       NA         NA      NA       NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2341 on 49 degrees of freedom

O mesmo pode ser aplicado a outras variáveis contínuas.

  • Análise de variância (ANOVA) para variáveis categóricas
anova <- aov(shannon ~ Habitat, alfa)
summary(anova)
##             Df Sum Sq Mean Sq F value  Pr(>F)    
## Habitat      4  1.125  0.2812   8.105 5.2e-05 ***
## Residuals   45  1.561  0.0347                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Diversidade Beta

Calculando a dissimilaridade pareada
BCI_mat <- as.matrix.data.frame(BCI) #transformamos primeiro nossos dados em uma matriz
rownames(BCI_mat) <- rownames(BCI.env)
BCI.jac <- vegdist(BCI_mat, method = "jaccard")

A função vegdist calcula os índices de dissimilaridade entre todos as localidades. O resultado correspondem a uma matriz. O método (por ex. manhattan, euclidean, bray, etc) pode ser mudado (todas as opções estão em ?vegdist).

SIMPER (Bray-Curtis dissimilarity)

SIMPER é um método capaz de identificar quais espécies contribuem mais para a beta diversidade.

sim <- simper(BCI, permutations = 99) #mostra a importancia cumulativa de cada espécie.

Diversidade Gama

A forma mais simples de calcular a diversidade gama é somar todas as colunas (abundância total das espécies):

diversity(colSums(BCI)) 
## [1] 4.270409
diversity(BCI, groups = rep(1, nrow(BCI))) #o mesmo resultado do código acima.
##        1 
## 4.270409

Lembrando que o método de cálculo da diversidade pode ser mudado utilizando o parâmetro index.