Índices de diversidade biológica - Ecologia Numérica

Leonardo Souza

07 de março de 2023

Capítulo 12

library(devtools) 
library(devtools)
library(ecodados)
library(vegan)
library(ggplot2)
library(BiodiversityR)
library(hillR)
library(betapart)
composicao_especies <- ecodados::composicao_anuros_div_taxonomica
precipitacao        <- ecodados::precipitacao_div_taxonomica

Ver os dados das comunidades

head(composicao_especies)
##       sp1 sp2 sp3 sp4 sp5 sp6 sp7 sp8 sp9 sp10
## Com_1  10  10  10  10  10  10  10  10  10   10
## Com_2  91   1   1   1   1   1   1   1   1    1
## Com_3   1   3   6  25   1   0   0   0   0    0
## Com_4   0   0   0   0   0  15  15  18  17   16
## Com_5   0   9   0   6   0  11   0   2  12    0
## Com_6   3   0   5   0  12   1   0  13  12    0

Calculando a riqueza observada de espécies para cada comunidade

riqueza_sp <- specnumber(composicao_especies)
riqueza_sp
##  Com_1  Com_2  Com_3  Com_4  Com_5  Com_6  Com_7  Com_8  Com_9 Com_10 
##     10     10      5      5      5      6      2      4      6      4

Calculamos a abundância total para cada comunidade

abundancia <- apply(composicao_especies, 1, sum)
abundancia
##  Com_1  Com_2  Com_3  Com_4  Com_5  Com_6  Com_7  Com_8  Com_9 Com_10 
##    100    100     36     81     40     46      4     20     15     11

Índice de Margalef

Margalef <- round((riqueza_sp - 1)/log(abundancia), 2)
Margalef
##  Com_1  Com_2  Com_3  Com_4  Com_5  Com_6  Com_7  Com_8  Com_9 Com_10 
##   1.95   1.95   1.12   0.91   1.08   1.31   0.72   1.00   1.85   1.25

Índice de Menhinick

Menhinick <- round(riqueza_sp/sqrt(abundancia), 2)
Menhinick
##  Com_1  Com_2  Com_3  Com_4  Com_5  Com_6  Com_7  Com_8  Com_9 Com_10 
##   1.00   1.00   0.83   0.56   0.79   0.88   1.00   0.89   1.55   1.21

Relação entre a riqueza de espécies e a precipitação anual.

dados <- data.frame(precipitacao$prec, riqueza_sp, Margalef, Menhinick)

colnames(dados) <- c("Precipitacao", "Riqueza", "Margalef", "Menhinick")

anova_riq <- lm(Riqueza ~ Precipitacao, data = dados)
anova(anova_riq)
## Analysis of Variance Table
## 
## Response: Riqueza
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## Precipitacao  1 30.622 30.6224  8.9156 0.01744 *
## Residuals     8 27.478  3.4347                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Relação entre o Índice de Margalef e a precipitação anual.

anova_marg <- lm(Margalef ~ Precipitacao, data = dados)
anova(anova_marg)
## Analysis of Variance Table
## 
## Response: Margalef
##              Df  Sum Sq Mean Sq F value Pr(>F)
## Precipitacao  1 0.37865 0.37865  2.1201 0.1835
## Residuals     8 1.42879 0.17860

Relação entre o índice de Menhinick e a precipitação anual.

anova_menh <- lm(Menhinick ~ Precipitacao, data = dados)
anova(anova_menh)
## Analysis of Variance Table
## 
## Response: Menhinick
##              Df  Sum Sq  Mean Sq F value Pr(>F)
## Precipitacao  1 0.07626 0.076262  1.0992 0.3251
## Residuals     8 0.55503 0.069378

Resultados da riqueza de espécies ao longo do gradiente de precipitação anual

ggplot(data = dados, aes(x= Precipitacao, y= Riqueza)) + 
    labs(x = "Precipitação anual (mm)", y = "Riqueza de espécies") +
    geom_point(size = 4, shape = 21, fill = "darkorange", alpha = 0.7) +
    geom_smooth(method = lm, se = FALSE, color = "black") +
    tema_livro()
## `geom_smooth()` using formula = 'y ~ x'

Diversidade de espécies para cada comunidade a partir da planilha de composição de espécies.

# Índice de Shannon
shannon_res <- diversity(composicao_especies, index = "shannon", MARGIN = 1)
shannon_res
##     Com_1     Com_2     Com_3     Com_4     Com_5     Com_6     Com_7     Com_8 
## 2.3025851 0.5002880 0.9580109 1.6068659 1.4861894 1.5607038 0.6931472 1.1058899 
##     Com_9    Com_10 
## 1.7140875 1.2636544

índice Gini-Simpson

# Índice de Simpson
simpson_res <- diversity(composicao_especies, index = "simpson", MARGIN = 1) 
simpson_res
##     Com_1     Com_2     Com_3     Com_4     Com_5     Com_6     Com_7     Com_8 
## 0.9000000 0.1710000 0.4814815 0.7989636 0.7587500 0.7674858 0.5000000 0.5850000 
##     Com_9    Com_10 
## 0.8088889 0.6942149

Índice de Pielou

Pielou <- shannon_res/log(specnumber(composicao_especies))
dados_div <- data.frame(precipitacao$prec, shannon_res, 
                        simpson_res, Pielou)

colnames(dados_div) <- c("Precipitacao", "Shannon", "Simpson", "Pielou")

Relação entre o índice de Shannon-Wiener e a precipitação anual nas comunidades.

anova_shan <- lm(Shannon ~ Precipitacao, data = dados_div)
anova(anova_shan)
## Analysis of Variance Table
## 
## Response: Shannon
##              Df  Sum Sq Mean Sq F value Pr(>F)
## Precipitacao  1 0.10989 0.10989  0.3627 0.5637
## Residuals     8 2.42366 0.30296

Relação entre o índice de Simpson e a precipitação anual nas comunidades.

anova_simp <- lm(Simpson ~ Precipitacao, data = dados_div)
anova(anova_simp)
## Analysis of Variance Table
## 
## Response: Simpson
##              Df  Sum Sq  Mean Sq F value Pr(>F)
## Precipitacao  1 0.00132 0.001325  0.0252 0.8778
## Residuals     8 0.42064 0.052580

Relação entre o índice de Pielou e a precipitação anual nas comunidades.

anova_piel <- lm(Pielou ~ Precipitacao, data = dados_div)
anova(anova_piel)
## Analysis of Variance Table
## 
## Response: Pielou
##              Df  Sum Sq  Mean Sq F value Pr(>F)
## Precipitacao  1 0.09080 0.090798  1.5792 0.2443
## Residuals     8 0.45997 0.057496

Distribuição relativa das espécies por comunidade

rank_com2 <- rankabundance(composicao_especies[2, composicao_especies[2,] > 0])
## Warning in qt(0.975, df = n - 1): NaNs produzidos
rank_com3 <- rankabundance(composicao_especies[3, composicao_especies[3,] > 0])
## Warning in qt(0.975, df = n - 1): NaNs produzidos
rankabunplot(rank_com2, scale = "logabun", specnames = c(1), 
             pch = 19, col = "darkorange")
rankabunplot(rank_com3, scale = "logabun", specnames = c(1), pch = 19, 
             xlim = c(0,10), addit = TRUE, col = "cyan4" , legend = TRUE)
## Warning in plot.xy(xy.coords(x, y), type = type, ...): "legend" não é um
## parâmetro gráfico
legend(5, 40, legend = c("Comunidade 2", "Comunidade 3"),
       col = c("darkorange", "cyan4"), lty = 1, cex = 0.8, box.lty = 0)

Comunidade 2

curvas_dominancia_com2 <- radfit(composicao_especies[2,])
curvas_dominancia_com2
## 
## RAD models, family poisson 
## No. of species 10, total abundance 100
## 
##            par1     par2    par3       Deviance AIC     BIC    
## Null                                   175.242  199.592 199.592
## Preemption  0.68962                     79.560  105.910 106.213
## Lognormal  -0.65366  3.2485             47.350   75.701  76.306
## Zipf        0.83829 -3.0254             26.612   54.963  55.568
## Mandelbrot  0.83829 -3.0254  1.644e-07  26.612   56.963  57.871

Predições dos modelos

plot(curvas_dominancia_com2, 
     ylab = "Abundância", 
     xlab = "Ranqueamento das espécies")

Dados considerando todas as comunidades

curvas_dominancia_todas <- radfit(composicao_especies)
curvas_dominancia_todas
## 
## Deviance for RAD models:
## 
##                  Com_1       Com_2       Com_3       Com_4       Com_5
## Null        8.2193e+01  1.7524e+02  8.9085e+00  4.2265e+01  4.9719e+00
## Preemption  2.2878e+01  7.9560e+01  1.5423e+00  1.4332e+01  3.0438e+00
## Lognormal   1.7764e-15  4.7350e+01  1.0161e+00  2.9441e-02  1.9303e+00
## Zipf       -1.7764e-15  2.6612e+01  2.1659e-01  1.5846e-02  3.6094e+00
## Mandelbrot -1.7764e-15  2.6612e+01  2.0926e-01  1.1390e-02  1.8740e+00
##                  Com_6       Com_7       Com_8       Com_9 Com_10
## Null        4.7099e+00  1.1507e+00  1.8998e+00  2.7703e+00 1.1146
## Preemption  4.5536e+00  7.7259e-01  1.7847e+00  9.2518e-01 0.7428
## Lognormal   4.8898e+00 -2.2053e-25  1.4556e+00  2.0626e-01 0.5079
## Zipf        8.3245e+00 -2.2073e-25  6.6938e-01  4.7931e-01 0.8730
## Mandelbrot  4.1132e+00  0.0000e+00  6.6938e-01  2.3634e-01 0.4456
plot(curvas_dominancia_todas, log = "y")

Número de Hill para as comunidades

#q = 0
hill_res_q_0 <- hill_taxa(composicao_especies, q  = 0)
hill_res_q_0
##  Com_1  Com_2  Com_3  Com_4  Com_5  Com_6  Com_7  Com_8  Com_9 Com_10 
##     10     10      5      5      5      6      2      4      6      4
#q = 1
hill_res_q_1 <- hill_taxa(composicao_especies, q  = 1)
hill_res_q_1
##     Com_1     Com_2     Com_3     Com_4     Com_5     Com_6     Com_7     Com_8 
## 10.000000  1.649196  2.606507  4.987156  4.420220  4.762172  2.000000  3.021912 
##     Com_9    Com_10 
##  5.551608  3.538328
#q = 2
hill_res_q_2 <- hill_taxa(composicao_especies, q  = 2)
hill_res_q_2
##     Com_1     Com_2     Com_3     Com_4     Com_5     Com_6     Com_7     Com_8 
## 10.000000  1.206273  1.928571  4.974223  4.145078  4.300813  2.000000  2.409639 
##     Com_9    Com_10 
##  5.232558  3.270270

Resultados

res_hill <- data.frame(hill_res_q_0, hill_res_q_1, hill_res_q_2)
colnames(res_hill) <- c("q=0", "q=1", "q=2")
head(res_hill)
##       q=0       q=1       q=2
## Com_1  10 10.000000 10.000000
## Com_2  10  1.649196  1.206273
## Com_3   5  2.606507  1.928571
## Com_4   5  4.987156  4.974223
## Com_5   5  4.420220  4.145078
## Com_6   6  4.762172  4.300813

Dados de abundância em presença e ausência

composicao_PA <- decostand(composicao_especies, method = "pa")

Diversidade beta

resultado_PA <- beta.pair(composicao_PA, index.family = "sorensen")

Resultados da diversidade beta total.

resultado_PA$beta.sor
##            Com_1     Com_2     Com_3     Com_4     Com_5     Com_6     Com_7
## Com_2  0.0000000                                                            
## Com_3  0.3333333 0.3333333                                                  
## Com_4  0.3333333 0.3333333 1.0000000                                        
## Com_5  0.3333333 0.3333333 0.6000000 0.4000000                              
## Com_6  0.2500000 0.2500000 0.4545455 0.4545455 0.4545455                    
## Com_7  0.6666667 0.6666667 0.7142857 0.7142857 1.0000000 0.7500000          
## Com_8  0.4285714 0.4285714 0.7777778 0.3333333 0.3333333 0.2000000 1.0000000
## Com_9  0.2500000 0.2500000 0.4545455 0.4545455 0.2727273 0.5000000 0.7500000
## Com_10 0.4285714 0.4285714 0.3333333 0.7777778 0.5555556 0.4000000 0.6666667
##            Com_8     Com_9
## Com_2                     
## Com_3                     
## Com_4                     
## Com_5                     
## Com_6                     
## Com_7                     
## Com_8                     
## Com_9  0.4000000          
## Com_10 0.7500000 0.6000000
data.frame_PA <- data.frame(round(as.numeric(resultado_PA$beta.sor), 2),
                            round(as.numeric(resultado_PA$beta.sim), 2),
                            round(as.numeric(resultado_PA$beta.sne), 2))
colnames(data.frame_PA) <- c("Sorensen", "Simpson", "Aninhamento")
head(data.frame_PA)
##   Sorensen Simpson Aninhamento
## 1     0.00       0        0.00
## 2     0.33       0        0.33
## 3     0.33       0        0.33
## 4     0.33       0        0.33
## 5     0.25       0        0.25
## 6     0.67       0        0.67

Dissimilaridade

prec_dis <- vegdist(precipitacao, method = "euclidian")
dados_prec <- as.numeric(prec_dis) 
dados_dis <- data.frame(dados_prec, data.frame_PA)
head(dados_dis)
##   dados_prec Sorensen Simpson Aninhamento
## 1         88     0.00       0        0.00
## 2        400     0.33       0        0.33
## 3       1400     0.33       0        0.33
## 4        294     0.33       0        0.33
## 5        195     0.25       0        0.25
## 6       2270     0.67       0        0.67

Relação entre as diferenças na composição de espécies e precipitação nas comunidades.

#Avaliar a relação entre os valores de diversidade beta total (Sørensen) e precipitação.
anova_sore <-lm(Sorensen ~ dados_prec, data = dados_dis)
anova(anova_sore)
## Analysis of Variance Table
## 
## Response: Sorensen
##            Df  Sum Sq  Mean Sq F value Pr(>F)
## dados_prec  1 0.00188 0.001877  0.0358 0.8508
## Residuals  43 2.25264 0.052387
# Avaliar a relação entre os valores do componente substituição (Simpson) e precipitação
anova_simp <-lm(Simpson ~ dados_prec, data = dados_dis)
anova(anova_simp)
## Analysis of Variance Table
## 
## Response: Simpson
##            Df Sum Sq  Mean Sq F value Pr(>F)
## dados_prec  1 0.1403 0.140342  1.4905 0.2288
## Residuals  43 4.0488 0.094157
# Avaliar a relação entre os valores do componente aninhamento e precipitação
anova_anin <-lm(Aninhamento ~ dados_prec, data = dados_dis)
anova(anova_anin)
## Analysis of Variance Table
## 
## Response: Aninhamento
##            Df  Sum Sq Mean Sq F value  Pr(>F)  
## dados_prec  1 0.17467 0.17467  6.4006 0.01515 *
## Residuals  43 1.17349 0.02729                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Componente aninhamento da diversidade beta

ggplot(data = dados_dis, aes(x = dados_prec, y = Aninhamento)) + 
    geom_point(size = 4, shape = 21, fill = "darkorange") +
    geom_smooth(method = lm, se = FALSE, color = "black") +
    labs(x = "Diferença precipitação (mm)", 
         y = "Componente aninhamento da\n diversidade beta") +
    tema_livro()
## `geom_smooth()` using formula = 'y ~ x'

Diversidade beta para abundância

resultado_AB <- beta.pair.abund(composicao_especies, index.family = "bray")
data.frame_AB <- data.frame(round(as.numeric(resultado_AB$beta.bray), 2),
                            round(as.numeric(resultado_AB$beta.bray.bal), 2),
                            round(as.numeric(resultado_AB$beta.bray.gra), 2))
colnames(data.frame_AB) <- c("Bray", "Balanceada", "Gradiente")
head(data.frame_AB)
##   Bray Balanceada Gradiente
## 1 0.81       0.81      0.00
## 2 0.69       0.42      0.27
## 3 0.45       0.38      0.06
## 4 0.47       0.07      0.40
## 5 0.47       0.15      0.31
## 6 0.92       0.00      0.92
dados_dis_AB <- data.frame(dados_prec, data.frame_AB)

Relação da dissimilaridade considerando a abundância com a diferença na precipitação entre as comunidades

# Avaliar a relação entre os valores de diversidade beta total e precipitação
anova_dis_AB <- lm(Bray ~ dados_prec, data = dados_dis_AB)
anova(anova_dis_AB)
## Analysis of Variance Table
## 
## Response: Bray
##            Df  Sum Sq  Mean Sq F value Pr(>F)
## dados_prec  1 0.01782 0.017815  0.8441 0.3634
## Residuals  43 0.90755 0.021106
# Avaliar a relação entre os valores do componente balanceada e precipitação
anova_balan <- lm(Balanceada ~ dados_prec, data = dados_dis_AB)
anova(anova_balan)
## Analysis of Variance Table
## 
## Response: Balanceada
##            Df  Sum Sq Mean Sq F value  Pr(>F)  
## dados_prec  1 0.48761 0.48761  7.0742 0.01094 *
## Residuals  43 2.96391 0.06893                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Avaliar a relação entre os valores do componente gradiente e precipitação
anova_grad <- lm(Gradiente ~ dados_prec, data = dados_dis_AB)
anova(anova_grad)
## Analysis of Variance Table
## 
## Response: Gradiente
##            Df  Sum Sq Mean Sq F value    Pr(>F)    
## dados_prec  1 0.68981 0.68981  18.705 8.903e-05 ***
## Residuals  43 1.58575 0.03688                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Variação balanceada da diversidade beta

ggplot(data = dados_dis_AB, aes(x = dados_prec, y = Balanceada)) + 
    geom_point(size = 4, shape = 21, fill = "darkorange") +
    geom_smooth(method = lm, se = FALSE, color = "black") +
    labs(x = "Diferença precipitação (mm)",
         y = "Componente variação balanceada\n da diversidade beta") +
    tema_livro() 
## `geom_smooth()` using formula = 'y ~ x'

Variação gradiente da diversidade beta

ggplot(data = dados_dis_AB, aes(x = dados_prec, y = Gradiente)) + 
    geom_point(size = 4, shape = 21, fill = "darkorange") +
    geom_smooth(method = lm, se = FALSE, color = "black") +
    labs(x = "Diferença precipitação anual (mm)", 
         y = "Componente gradiente de abundância\n da diversidade beta") +
    tema_livro()
## `geom_smooth()` using formula = 'y ~ x'

Comunidades Culinárias

Nesta atividade foi realizada uma simulação da sucessão primária (primeira colonização de um ambiente) em uma recém formada ilha oceânica, sendo esta comunidade biológica representada por grãos e massa de diferentes tipos (cada espécie possuia uma forma de distribuição diferente).

O estudo de descrição da comunidade biológica da ilha foi realizada por dois grupos, com métodos de amostragem distintos. O primeiro grupo usou a técnica de escolha aleatória das áreas de amostragem, enquanto o segundo grupo usou a tecnica das áreas de amostragem formarem dois transectos localizados de maneira planejada para contemplar os diversos ambientes da ilha.

A área total das áreas de amostragem (quadrados) correspondiam a 10% da área da ilha, de forma que cada uma das 10 dessas áreas correspondiam a 1% da área total da ilha.

Com base nos dados coletados, foi montado uma tabela (matriz) onde as espécies foram representadas nas linhas e as áreas de amostragem (amostras) foram organizadas nas colunas.

Tabela

base<-read.csv("https://raw.githubusercontent.com/fplmelo/ecoaplic/main/content/collection/eco_num/com_cul.csv", row.names = 1) # atenção, use o caminho onde você guardou a base que baixou anteriormente
base
##              q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
## arroz_c       0  1  7  6  1  4  4  1  1   5  3  8  5  6  3  0  0  0  0   3
## arroz_e       1  0  0  1  0  0  8  4  0   3  0  1  8  1  1  0  0  0  1   0
## milho         0  0  0  0  0  0  0  0  0   0  0  0  0  0  0  0  0  0  0   0
## ervilha       0  0  1  0  0  0  1  0  0   0  0  0  1  0  0  0  0  0  0   0
## feijao_preto  0  0  0  0  0  0  0  0  0   0  0  0  6  0  0  0  0  0  0   0
## carioca_c     0  0  1  1  0  0  0  0  0   0  0  0  0  0  0  2  0  0  0   1
## carioca_e     0  0  0  2  2  0  0  0  0   8  0  0  0  0  0  0  0  0  0   0
## mac_paraf     0  0  0  0  0  0  0  0  0   0  0  0  0  0  0  0  1  0  0   0
## mac_tubo      0  0  0  0  0  0  0  0  0   0  0  0  0  0  0  0  0  0  0   0
## mac_espag     0  0  0  3  1  0  0  0  6   4 16  9  0  0  0  0  2  2  1   0
library (vegan)  #Comando que permite utilizar funções de análise de dados voltadas a ecologia.
library(BiodiversityR) #Comando que permite utilizar funções que auxiliam na análise de dados.

Tabela do Método Quadrado (q)

base_q<-base[,1:10] #Separando os dados obtidos a partir do método q.
base_q #Esse comando mostra a tabela de q.
##              q1 q2 q3 q4 q5 q6 q7 q8 q9 q10
## arroz_c       0  1  7  6  1  4  4  1  1   5
## arroz_e       1  0  0  1  0  0  8  4  0   3
## milho         0  0  0  0  0  0  0  0  0   0
## ervilha       0  0  1  0  0  0  1  0  0   0
## feijao_preto  0  0  0  0  0  0  0  0  0   0
## carioca_c     0  0  1  1  0  0  0  0  0   0
## carioca_e     0  0  0  2  2  0  0  0  0   8
## mac_paraf     0  0  0  0  0  0  0  0  0   0
## mac_tubo      0  0  0  0  0  0  0  0  0   0
## mac_espag     0  0  0  3  1  0  0  0  6   4

Quantas Espécies em Cada Amostra do Método q?

specnumber(base_q) 
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##            9            5            0            2            0            2 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##            3            0            0            4

Quantos Indivíduos em Cada Amostra do Método q?

rowSums(base_q)
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##           30           17            0            2            0            2 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##           12            0            0           14

Qual a Abundância de Cada Espécie do Método q?

colSums(base_q)
##  q1  q2  q3  q4  q5  q6  q7  q8  q9 q10 
##   1   1   9  13   4   4  13   5   7  20

Tabela do Método Transecto (t)

base_t<-base[,11:20] #Separando os dados obtidos a partir do método t.
base_t #Esse comando mostra a tabela de t.
##              t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
## arroz_c       3  8  5  6  3  0  0  0  0   3
## arroz_e       0  1  8  1  1  0  0  0  1   0
## milho         0  0  0  0  0  0  0  0  0   0
## ervilha       0  0  1  0  0  0  0  0  0   0
## feijao_preto  0  0  6  0  0  0  0  0  0   0
## carioca_c     0  0  0  0  0  2  0  0  0   1
## carioca_e     0  0  0  0  0  0  0  0  0   0
## mac_paraf     0  0  0  0  0  0  1  0  0   0
## mac_tubo      0  0  0  0  0  0  0  0  0   0
## mac_espag    16  9  0  0  0  0  2  2  1   0

Quantas Espécies em Cada Amostra do Método t?

specnumber(base_t) 
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##            6            5            0            1            1            2 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##            0            1            0            5

Quantos Indivíduos em Cada Amostra do Método t?

rowSums(base_t)
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##           28           12            0            1            6            3 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##            0            1            0           30

Qual a Abundância de Cada Espécie do Método t?

colSums(base_t)
##  t1  t2  t3  t4  t5  t6  t7  t8  t9 t10 
##  19  18  20   7   4   2   3   2   2   4

Curva de Acumulação de Espécies

A curva de acumulação de espécies permite identificar se o esforço amostral foi suficiente para registrar praticamente todas as espécies (para chegar no platô). Em ambos os métodos não foi possível atingir o platô, logo não conseguiram amostar todas as espécies da ilha.

Método q

spc1<-specaccum(base_q, "random")
spc1
## Species Accumulation Curve
## Accumulation method: random, with 100 permutations
## Call: specaccum(comm = base_q, method = "random") 
## 
##                                                                                
## Sites    1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.00000 8.000000
## Richness 2.880000 4.670000 5.830000 6.750000 7.710000 8.250000 8.74000 9.140000
## sd       2.797113 3.025331 2.785442 2.656705 2.031544 1.731322 1.37525 1.163589
##                     
## Sites    9.000000 10
## Richness 9.650000 10
## sd       0.672324  0
plot(spc1, ci.type="poly", col="blue", lwd=2, ci.lty=0, ci.col="lightblue")
boxplot(spc1, col="yellow", add=TRUE, pch="+")

Método t

spc2<-specaccum(base_t, "random")
spc2
## Species Accumulation Curve
## Accumulation method: random, with 100 permutations
## Call: specaccum(comm = base_t, method = "random") 
## 
##                                                                        
## Sites    1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000
## Richness 2.180000 4.230000 5.650000 6.730000 7.850000 8.600000 9.110000
## sd       2.244544 2.549926 2.244522 2.150194 1.684001 1.263313 0.930895
##                              
## Sites    8.000000 9.000000 10
## Richness 9.450000 9.840000 10
## sd       0.715979 0.368453  0
plot(spc2, ci.type="poly", col="blue", lwd=2, ci.lty=0, ci.col="lightblue")
boxplot(spc1, col="yellow", add=TRUE, pch="+")

Curvas de Rank-abundância

A curva de rank-abundância possibilita a identificar espécies dominantes e raras, respectivamente, as com maior e menor abundância. Sob este prisma, podemos constatar que há uma espécie muito abundante e cerca de metade são espécies com baixíssimas abundância em ambos os métodos. Tal característica corresponde ao modelo de rank-abundância, uma vez que são poucas espécies dominantes e muitas espécies raras.

Método q

modc <- rad.lognormal(base_q[1,])
modc
## 
## RAD model: Log-Normal 
## Family: poisson 
## No. of species:  9 
## Total abundance: 30 
## 
##     log.mu  log.sigma   Deviance        AIC        BIC 
##  0.9851007  0.7615235  2.4254582 31.9025376 32.2969867

Gráfico de LogNormal

plot(modc)

Direfentes Modelos

modc2 <- radfit(base_q[1,]) #Comando que ajusta os modelos de distribuição.
modc2
## 
## RAD models, family poisson 
## No. of species 9, total abundance 30
## 
##            par1     par2        par3        Deviance AIC     BIC    
## Null                                         2.9495  28.4266 28.4266
## Preemption  0.24885                          1.8948  29.3718 29.5691
## Lognormal   0.9851   0.76152                 2.4255  31.9025 32.2970
## Zipf        0.29345 -0.79967                 3.9292  33.4063 33.8007
## Mandelbrot    Inf   -2.9475e+06  1.0727e+07  1.6922  33.1693 33.7609

Gráficos de Vários Modelos

As linhas de tendência representam a análise da curva de rank-abundância por diferentes modelos de distribuição, cada qual considera que um parâmetro dispõe de maior relevância que outro.

plot(modc2)

Método t

modc1 <- rad.lognormal(base_t[1,])
modc1
## 
## RAD model: Log-Normal 
## Family: poisson 
## No. of species:  6 
## Total abundance: 28 
## 
##     log.mu  log.sigma   Deviance        AIC        BIC 
##  1.4680788  0.4578867  0.4238579 24.4755278 24.0590468

Gráfico de LogNormal

plot(modc1)

Direfentes Modelos

As linhas de tendência representam a análise da curva de rank-abundância por diferentes modelos de distribuição, cada qual considera que um parâmetro dispõe de maior relevância que outro.

modc3 <- radfit(base_t[1,])
modc3
## 
## RAD models, family poisson 
## No. of species 6, total abundance 28
## 
##            par1     par2     par3    Deviance AIC      BIC     
## Null                                  5.76435 25.81602 25.81602
## Preemption  0.26056                   1.59354 23.64521 23.43697
## Lognormal   1.4681   0.45789          0.42386 24.47553 24.05905
## Zipf        0.29875 -0.59546          0.29425 24.34592 23.92943
## Mandelbrot  0.92497 -1.0978   1.8808  0.23261 26.28428 25.65956

Gráficos de Varios Modelos

As linhas de tendência representam a análise da curva de rank-abundância por diferentes modelos de distribuição, cada qual considera que um parâmetro dispõe de maior relevância que outro.

plot(modc3)

Gráficos alternativos

Dispersão

O método dos quadrantes apresenta distribuição mais uniforme em comparação ao método dos transectos, indicando uma abndância mais bem distribuida.

colSums(base_q)
##  q1  q2  q3  q4  q5  q6  q7  q8  q9 q10 
##   1   1   9  13   4   4  13   5   7  20
colSums(base_t)
##  t1  t2  t3  t4  t5  t6  t7  t8  t9 t10 
##  19  18  20   7   4   2   3   2   2   4
par(mfrow=c(1,2))
plot(colSums(base_q), ci.type="poly", col="lightgreen", lwd=2, ci.lty=0, ci.col="lightgreen", main = "Abundância dos quadrantes", xlab = "Amostras", ylab = "Abundância")
## Warning in plot.window(...): "ci.type" não é um parâmetro gráfico
## Warning in plot.window(...): "ci.lty" não é um parâmetro gráfico
## Warning in plot.window(...): "ci.col" não é um parâmetro gráfico
## Warning in plot.xy(xy, type, ...): "ci.type" não é um parâmetro gráfico
## Warning in plot.xy(xy, type, ...): "ci.lty" não é um parâmetro gráfico
## Warning in plot.xy(xy, type, ...): "ci.col" não é um parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.type" não é um
## parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.lty" não é um
## parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.col" não é um
## parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.type" não é um
## parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.lty" não é um
## parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.col" não é um
## parâmetro gráfico
## Warning in box(...): "ci.type" não é um parâmetro gráfico
## Warning in box(...): "ci.lty" não é um parâmetro gráfico
## Warning in box(...): "ci.col" não é um parâmetro gráfico
## Warning in title(...): "ci.type" não é um parâmetro gráfico
## Warning in title(...): "ci.lty" não é um parâmetro gráfico
## Warning in title(...): "ci.col" não é um parâmetro gráfico

plot(colSums(base_t), ci.type="poly", col="lightblue", lwd=2, ci.lty=0, ci.col="lightgreen", main = "Abundância dos transectos", xlab = "Amostras", ylab = "Abundância")
## Warning in plot.window(...): "ci.type" não é um parâmetro gráfico
## Warning in plot.window(...): "ci.lty" não é um parâmetro gráfico
## Warning in plot.window(...): "ci.col" não é um parâmetro gráfico
## Warning in plot.xy(xy, type, ...): "ci.type" não é um parâmetro gráfico
## Warning in plot.xy(xy, type, ...): "ci.lty" não é um parâmetro gráfico
## Warning in plot.xy(xy, type, ...): "ci.col" não é um parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.type" não é um
## parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.lty" não é um
## parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.col" não é um
## parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.type" não é um
## parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.lty" não é um
## parâmetro gráfico
## Warning in axis(side = side, at = at, labels = labels, ...): "ci.col" não é um
## parâmetro gráfico
## Warning in box(...): "ci.type" não é um parâmetro gráfico
## Warning in box(...): "ci.lty" não é um parâmetro gráfico
## Warning in box(...): "ci.col" não é um parâmetro gráfico
## Warning in title(...): "ci.type" não é um parâmetro gráfico
## Warning in title(...): "ci.lty" não é um parâmetro gráfico
## Warning in title(...): "ci.col" não é um parâmetro gráfico

Curva de Rarefação

rare <- specaccum(base_q, method = "rarefaction")
rare1 <- specaccum(base_t, method = "rarefaction")
par(mfrow=c(1,2))
plot(rare, ci.type="poly", col="lightgreen", lwd=2, ci.lty=0, main = "Rarefação dos quadrantes", xlab = "Número de Amostras", ylab = "Número de Espécies")
plot(rare1, ci.type="poly", col="lightblue", lwd=2, ci.lty=0, main = "Rarefação dos transectos", xlab = "Número de Amostras", ylab = "Número de Espécies")

Índices de Diversidade

library(ecodados) #Comando que permite utilizar funções que auxiliam na análise de dados voltadas a ecologia.
library(devtools) #Comando que permite utilizar funções que auxiliam na análise de dados.
library (vegan) #Comando que permite utilizar funções de análise de dados voltadas a ecologia.
library(ggplot2) #Comando que permite utilizar funções que auxiliam na visualização dos dados na forma de gráficos.
library(BiodiversityR) #Comando que permite utilizar funções que auxiliam na análise de dados.

Riqueza

Foi obtido maior riqueza com o método T (7 espécies), contudo as espécies tiveram suas abundâcias muito altas ou muito baixas. O método Q teve menos espécies (6), todavia houve maior equilíbrio, em geral, quanto a abundância de cada espécie. Em ambos os métodos as espécies com maior abundância foram, em ordem decrescente, arroz_c, arroz_e e mac_espag.

Método Q

riqueza_resq <- specnumber(base_q)
riqueza_resq
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##            9            5            0            2            0            2 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##            3            0            0            4
plot(riqueza_resq)

Método T

riqueza_rest <- specnumber(base_t)
riqueza_rest
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##            6            5            0            1            1            2 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##            0            1            0            5
plot(riqueza_rest)

Shannon

Por conta do índice de Shannon ser mais sensível para a presença das espécies comuns, o método Q demonstrou índices mais elevados.

Método Q

shannon_resq <- diversity(base_q, index = "shannon", MARGIN = 1)
shannon_resq
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##    1.9508816    1.3345930    0.0000000    0.6931472    0.0000000    0.6931472 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##    0.8675632    0.0000000    0.0000000    1.2396594
plot(shannon_resq)

Método T

shannon_rest <- diversity(base_t, index = "shannon", MARGIN = 1)
shannon_rest
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##    1.7136049    1.0986123    0.0000000    0.0000000    0.0000000    0.6365142 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##    0.0000000    0.0000000    0.0000000    1.1708964
plot(shannon_rest)

Simpson

Devido ao índice de Simpson favorecer mais a presença de espécies dominantes, os resultados do método T foram mais baixos. Isto se deve justamente ao fato de ter mais espécies raras e menos abundância de espécies dominantes.

Método Q

simpson_resq <- diversity(base_q, index = "simpson", MARGIN = 1) 
simpson_resq
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##    0.8377778    0.6851211    1.0000000    0.5000000    1.0000000    0.5000000 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##    0.5000000    1.0000000    1.0000000    0.6836735
plot(simpson_resq)

Método T

simpson_rest <- diversity(base_t, index = "simpson", MARGIN = 1) 
simpson_rest
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##    0.8061224    0.5277778    1.0000000    0.0000000    0.0000000    0.4444444 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##    1.0000000    0.0000000    1.0000000    0.6155556
plot(simpson_rest)

Número de Hill

Em ambos os métodos o resultado caiu conforme a mudança do número de Hill (do 0 em direção ao 2), sendo as espécies mais comuns e dominantes as que tiveram maior queda. Isso ocorre devido a sensibilidade de cada número de Hill ser mais sensível a gruas diferentes de abundância (q=0: raras; q=1: comuns; q=2: abundantes). A maior diferença entre os métodos foi de 3 pontos.

Método Q

q = 0

hill_mq_q_0 <- hill_taxa(base_q, q  = 0)
hill_mq_q_0
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##            9            5            0            2            0            2 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##            3            0            0            4

q = 1

hill_mq_q_1 <- hill_taxa(base_q, q  = 1)
hill_mq_q_1
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##     7.034887     3.798449     1.000000     2.000000     1.000000     2.000000 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##     2.381102     1.000000     1.000000     3.454437

q = 2

hill_mq_q_2 <- hill_taxa(base_q, q  = 2)
hill_mq_q_2
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##     6.164384     3.175824          Inf     2.000000          Inf     2.000000 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##     2.000000          Inf          Inf     3.161290
resq_hill <- data.frame(hill_mq_q_0, hill_mq_q_1, hill_mq_q_2)
colnames(resq_hill) <- c("q=0", "q=1", "q=2")
resq_hill
##              q=0      q=1      q=2
## arroz_c        9 7.034887 6.164384
## arroz_e        5 3.798449 3.175824
## milho          0 1.000000      Inf
## ervilha        2 2.000000 2.000000
## feijao_preto   0 1.000000      Inf
## carioca_c      2 2.000000 2.000000
## carioca_e      3 2.381102 2.000000
## mac_paraf      0 1.000000      Inf
## mac_tubo       0 1.000000      Inf
## mac_espag      4 3.454437 3.161290

Método T

q = 0

hill_mt_q_0 <- hill_taxa(base_t, q  = 0)
hill_mt_q_0
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##            6            5            0            1            1            2 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##            0            1            0            5

q = 1

hill_mt_q_1 <- hill_taxa(base_t, q  = 1)
hill_mt_q_1
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##     5.548929     3.000000     1.000000     1.000000     1.000000     1.889882 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##     1.000000     1.000000     1.000000     3.224882

q = 2

hill_mt_q_2 <- hill_taxa(base_t, q  = 2)
hill_mt_q_2
##      arroz_c      arroz_e        milho      ervilha feijao_preto    carioca_c 
##     5.157895     2.117647          Inf     1.000000     1.000000     1.800000 
##    carioca_e    mac_paraf     mac_tubo    mac_espag 
##          Inf     1.000000          Inf     2.601156
rest_hill <- data.frame(hill_mt_q_0, hill_mt_q_1, hill_mt_q_2)
colnames(rest_hill) <- c("q=0", "q=1", "q=2")
rest_hill
##              q=0      q=1      q=2
## arroz_c        6 5.548929 5.157895
## arroz_e        5 3.000000 2.117647
## milho          0 1.000000      Inf
## ervilha        1 1.000000 1.000000
## feijao_preto   1 1.000000 1.000000
## carioca_c      2 1.889882 1.800000
## carioca_e      0 1.000000      Inf
## mac_paraf      1 1.000000 1.000000
## mac_tubo       0 1.000000      Inf
## mac_espag      5 3.224882 2.601156