Avaliação 1 - Mata Atlântica

A Mata Atlântica, localizada no litoral brasileiro, é considerada um hotspot mundial, ou seja, um dos biomas mais ricos em biodiversidade, mas também um dos mais ameaçados e degradados. A Mata atlântica do Nordeste do Brasil infelizmente é a porção mais degradada deste bioma devido ao longo histórico de uso de solo dessa região, tipicamente a monocultura da cana-de-açúcar. Este histórico gerou paisagens altamente fragmentadas, com o que restou da Mata Atlântica dividida em vários pequenos fragmentos, rodeados por uma monocultura de cana-de-açúcar. Diante deste cenário, foi realizado um estudo sobre a estrutura da comunidade de abelhas em paisagens fragmentadas. Para isso, foram amostrados 10 fragmentos de Mata Atlântica em uma paisagem (figura 1). Foram amostradas e tabuladas todas as espécies de abelhas e suas abundâncias (dados em anexo).

Agora, analise esta comunidade e descreva-a, explicando quais métodos usaram para analisar e o porquê.

Descrição do observado:

Ao total de 10 fragmentos observados, foram coletadas 15 espécies de abelhas e 882 indivíduos no total. Em relação a composição das espécies, foram observadas: Xylocopa suspecta, Centris analis, Paratrigona subnuda, Melipona quadrifasciata,Apis mellifera, Plebeia droryana, Trigona barueri, Hypanthidium sp.,Hypanthidium sp1, Tetrapedia diversipes, Euglossa nanomelanotricha, Trigona spinipes, Xylocopa grisescens, Megachile rotundata e Eufriesea nordestina.

Estimador de Riqueza

Importar dados:

abelhas_frag <- read.table("C:/Users/vitto/OneDrive/Área de Trabalho/Eco numerica/dados_avaliacao1.txt")
abelhas_frag
##     Xylocopa_suspecta Centris_analis Paratrigona_subnuda
## f1                  1              2                  14
## f2                  5             12                   7
## f3                  1             10                   0
## f4                  0              9                  12
## f5                  5              7                   7
## f6                  6              0                   0
## f7                  5              0                  10
## f8                 12             14                   1
## f9                  1              0                   0
## f10                 2              0                   0
##     Melipona_quadrifasciata Apis_mellifera Plebeia_droryana Trigona_barueri
## f1                        2              8                9               6
## f2                        6              5                0               0
## f3                        0             11                9              10
## f4                        7              8               11               5
## f5                       14              0                0              12
## f6                       15             15                7               0
## f7                        9             15                9               0
## f8                        0              0                2              10
## f9                        8             15                0               2
## f10                       9              7                0               0
##     Hypanthidium_sp2 Hypanthidium_sp2.1 Tetrapedia_diversipes
## f1                12                 12                     7
## f2                 0                  1                     9
## f3                 1                  5                    15
## f4                10                  5                     7
## f5                 5                  2                    15
## f6                11                  5                     9
## f7                 0                  8                     1
## f8                15                 14                    10
## f9                12                 10                     8
## f10                8                  7                     1
##     Euglossa_nanomelanotricha Trigona_spinipes Xylocopa_grisescens
## f1                         14                5                   0
## f2                          6                2                   5
## f3                          0               10                   0
## f4                          0               15                   7
## f5                          5               14                   0
## f6                          6                1                   2
## f7                          0               12                   2
## f8                          0               11                   1
## f9                         15                1                  11
## f10                         0               12                   8
##     Megachile_rotundata Eufriesea_nordestina
## f1                    8                    6
## f2                    0                    8
## f3                    2                    8
## f4                    8                    6
## f5                   15                    5
## f6                    6                    8
## f7                    0                    0
## f8                    0                    5
## f9                    2                    1
## f10                  15                    0

Ativar pacotes:

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(vegan)
## Carregando pacotes exigidos: permute
## Carregando pacotes exigidos: lattice
## This is vegan 2.6-4
library(lmtest)
## Carregando pacotes exigidos: zoo
## 
## Attaching package: 'zoo'
## 
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(betareg)
library(ggtext)
library(iNEXT)
library(goeveg)
## This is GoeVeg 0.6.5 - build: 2023-06-06
library(DT)

Indice de riqueza de Jacknife 1

o Índice de Riqueza de Jacknife é baseado no número de espécies raras que ocorre um uma amostra. Aqui usaremos ele para observar se o esforço amostral dessa coleta foi o suficiente para coletar o máximo de espécies possíveis.

jack1 <- poolaccum(abelhas_frag, permutations = 100)
summary(jack1, display = "jack1")
## $jack1
##       N Jackknife 1 2.5%    97.5%   Std.Dev
## [1,]  3     16.2700   14 17.66667 1.0387498
## [2,]  4     15.4525   14 16.89375 0.6887397
## [3,]  5     15.2060   15 16.22000 0.4249349
## [4,]  6     15.0250   15 15.43750 0.1428722
## [5,]  7     15.0000   15 15.00000 0.0000000
## [6,]  8     15.0000   15 15.00000 0.0000000
## [7,]  9     15.0000   15 15.00000 0.0000000
## [8,] 10     15.0000   15 15.00000 0.0000000
## 
## attr(,"class")
## [1] "summary.poolaccum"
plot(jack1)

#Preparando dados
resultados_jack1 <- summary(jack1, display = c("S", "jack1"))
res_jack1 <- cbind(resultados_jack1$jack1[, 1:4],
                   resultados_jack1$S[, 2:4])
jack1_df <- as.data.frame(res_jack1)
colnames(jack1_df) <- c("Amostras", "JACK1", "JACK1_inferior",
                        "JACK1_superior", "Riqueza", "R_inferior",
                        "R_superior")
jack1_df
##   Amostras   JACK1 JACK1_inferior JACK1_superior Riqueza R_inferior R_superior
## 1        3 16.2700             14       17.66667   14.77         14         15
## 2        4 15.4525             14       16.89375   14.92         14         15
## 3        5 15.2060             15       16.22000   14.99         15         15
## 4        6 15.0250             15       15.43750   15.00         15         15
## 5        7 15.0000             15       15.00000   15.00         15         15
## 6        8 15.0000             15       15.00000   15.00         15         15
## 7        9 15.0000             15       15.00000   15.00         15         15
## 8       10 15.0000             15       15.00000   15.00         15         15
# Plotando Gráfico
ggplot(jack1_df, aes(y = Riqueza, x = Amostras)) +
  geom_point(y = 9.9, x = 9, size = 5, shape = 21, color = "black", fill = "#DB6BD6") +
  geom_point(y = 8.6, x = 9, size = 5, shape = 21, color = "black", fill = "#6BDB72") +
  geom_label(y = 9.9, x = 10.9, label = "Riqueza estimada") +
  geom_label(y = 8.6, x = 11, label = "Riqueza observada") +
  geom_line(aes(y = JACK1, x = Amostras), color = "#DB6BD6", size = 1) +
  geom_line(aes(y = Riqueza, x = Amostras), color = "#6BDB72", size = 1) +
  geom_linerange(aes(ymin = JACK1_inferior, ymax = JACK1_superior, x = Amostras + 0.1), color = "#DB6BD6", size = 1.5) +
  geom_linerange(aes(ymin = R_inferior, ymax = R_superior, x = Amostras), color = "#6BDB72", size = 1.5) +
  geom_point(aes(y = JACK1, x = Amostras + 0.1), size = 5, shape = 21, color = "black", fill = "#DB6BD6") +
  geom_point(aes(y = Riqueza, x = Amostras), size = 5, shape = 21, color = "black", fill = "#6BDB72") +
  scale_x_continuous(limits = c(1, 15), breaks = seq(1, 15, 1)) +
  labs(x = "Número de amostras", y = "Riqueza estimada") +
  theme(plot.title = ggtext::element_markdown(color = "black", size = 15, hjust = 0.5, ),
        axis.text = element_text(color = "black", size = 10),
        axis.title = element_text(color = "black", size = 10),
        panel.grid = element_line(color = "grey75", linetype = "dashed", linewidth = 0.7),
        panel.grid.minor = element_blank(),
        axis.line = element_blank(),
        plot.background = element_rect(fill = "white", color = "white"),
        panel.background = element_rect(fill ="white"),
        panel.border = element_rect(colour = "black", fill = NA, linewidth = 0.5),
        legend.key = element_rect(color = "white", fill = "white"),
        strip.background = element_rect(colour="black",fill="gray90"),
        strip.text.x = element_text(size = 13))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

A partir desse grafico, podemos observar que a a curva se estabilizou, indicicando que a área ja foi completamente amostrada, entretando, é possível ver que a riqueza estimada poderia chegar até 17 espécies.

Chao

Iremos aplicar o Chao apenas a nivel de comparação. Este é um estimador simples de riqueza, sendo o número absoluto de espécies em uma comunidade. Ele se baseia no número de espécies raras (poucos indivíduos) que ocorrem em uma amostra.

chao <- estaccumR(abelhas_frag, permutations = 100)

summary(chao, display = "chao")
## $chao
##      N  Chao   2.5% 97.5%   Std.Dev
## f9   1 11.63  9.000    14 1.6886729
## f8   2 14.12 12.000    15 0.9241977
## f7   3 14.82 14.000    15 0.4114522
## f3   4 14.97 14.475    15 0.1714466
## f6   5 15.00 15.000    15 0.0000000
## f2   6 15.00 15.000    15 0.0000000
## f1   7 15.00 15.000    15 0.0000000
## f4   8 15.00 15.000    15 0.0000000
## f10  9 15.00 15.000    15 0.0000000
## f5  10 15.00 15.000    15 0.0000000
## 
## attr(,"class")
## [1] "summary.poolaccum"
# Preparando os dados para fazer o gráfico
resultados_chao <- summary(chao, display = c("S", "chao"))

res_chao <- cbind(resultados_chao$chao[, 1:4], resultados_chao$S[, 2:4])

chao_df <- as.data.frame(res_chao)

#Plotando Gráfico
colnames(chao_df) <- c("Amostras", "Chao", "C_inferior", "C_superior",
 "Riqueza", "R_inferior", "R_superior")
ggplot(chao_df, aes(y = Riqueza, x = Amostras)) + 
  geom_point(y = 7.5, x = 9, size = 5, color = "black", fill = "#DB6BD6", shape = 21) +
  geom_point(y = 5.9, x = 9, size = 5, color = "black", fill = "#6BDB72", shape = 21) +
  geom_label(y = 7.5, x = 11.2, label = "Riqueza estimada") +
  geom_label(y = 5.9, x = 11.3, label = "Riqueza observada") +
  geom_line(aes(y = Chao, x = Amostras), color = "#DB6BD6", size = 1) +
  geom_line(aes(y = Riqueza, x = Amostras), color = "#6BDB72", size = 1) +
  geom_linerange(aes(ymin = C_inferior, ymax = C_superior, x = Amostras + 0.1), color = "#DB6BD6", size = 1.5) +
  geom_linerange(aes(ymin = R_inferior, ymax = R_superior, x = Amostras), color = "#6BDB72", size = 1.5) +
  geom_point(aes(y = Chao, x = Amostras + 0.1), size = 5, shape = 21, color = "black", fill = "#DB6BD6") +
  geom_point(aes(y = Riqueza, x = Amostras), size = 5, shape = 21, color = "black", fill = "#6BDB72") +
  scale_x_continuous(limits = c(1, 15), breaks = seq(1, 15, 1)) +
  labs (x = "Número de amostras", y = "Riqueza estimada") +
  theme(plot.title = ggtext::element_markdown(color = "black", size = 15, hjust = 0.5, ),
        axis.text = element_text(color = "black", size = 10),
        axis.title = element_text(color = "black", size = 10),
        panel.grid = element_line(color = "grey75", linetype = "dashed", linewidth = 0.7),
        panel.grid.minor = element_blank(),
        axis.line = element_blank(),
        plot.background = element_rect(fill = "white", color = "white"),
        panel.background = element_rect(fill ="white"),
        panel.border = element_rect(colour = "black", fill = NA, linewidth = 0.5),
        legend.key = element_rect(color = "white", fill = "white"),
        strip.background = element_rect(colour="black",fill="gray90"),
        strip.text.x = element_text(size = 13))

Podemos observar que com o Indice de Chao, a riqueza estimada seria de 14 espécies, porém ambas as curvas estão estabilizadas,indicando que não seria necessário o aumento amostral para observar mais espécies.

Bootstrap

O bootstrap será aplicado para observarmos se seria possível coletar mais indivduos nesses fragmentos, ele nos dá uma medida de extrapolação da abundância.

dados_individuos <- colSums(abelhas_frag)
dados_individuos
##         Xylocopa_suspecta            Centris_analis       Paratrigona_subnuda 
##                        38                        54                        51 
##   Melipona_quadrifasciata            Apis_mellifera          Plebeia_droryana 
##                        70                        84                        47 
##           Trigona_barueri          Hypanthidium_sp2        Hypanthidium_sp2.1 
##                        45                        74                        69 
##     Tetrapedia_diversipes Euglossa_nanomelanotricha          Trigona_spinipes 
##                        82                        46                        83 
##       Xylocopa_grisescens       Megachile_rotundata      Eufriesea_nordestina 
##                        36                        56                        47
resultados_individuos <- iNEXT(dados_individuos, q = 1, 
                               datatype = "abundance",
                               endpoint = 1000)

resultados_individuos
## Compare 1 assemblages with Hill number order q = 1.
## $class: iNEXT
## 
## $DataInfo: basic data information
##   Assemblage   n S.obs SC f1 f2 f3 f4 f5 f6 f7 f8 f9 f10
## 1     site.1 882    15  1  0  0  0  0  0  0  0  0  0   0
## 
## $iNextEst: diversity estimates with rarefied and extrapolated samples.
## $size_based (LCL and UCL are obtained for fixed size.)
## 
##     Assemblage    m        Method Order.q       qD   qD.LCL   qD.UCL         SC
## 1  Assemblage1    1   Rarefaction       1  1.00000  1.00000  1.00000 0.07062167
## 10 Assemblage1  441   Rarefaction       1 14.33584 14.06125 14.61043 1.00000000
## 20 Assemblage1  882      Observed       1 14.45122 14.17447 14.72797 1.00000000
## 30 Assemblage1  938 Extrapolation       1 14.45833 14.18145 14.73521 1.00000000
## 40 Assemblage1 1000 Extrapolation       1 14.46569 14.18867 14.74271 1.00000000
##        SC.LCL     SC.UCL
## 1  0.06793826 0.07330507
## 10 1.00000000 1.00000000
## 20 1.00000000 1.00000000
## 30 1.00000000 1.00000000
## 40 1.00000000 1.00000000
## 
## NOTE: The above output only shows five estimates for each assemblage; call iNEXT.object$iNextEst$size_based to view complete output.
## 
## $coverage_based (LCL and UCL are obtained for fixed coverage; interval length is wider due to varying size in bootstraps.)
## 
##     Assemblage        SC   m      Method Order.q        qD   qD.LCL    qD.UCL
## 1  Assemblage1 0.0706221   1 Rarefaction       1  1.000006 0.000000  7.892356
## 3  Assemblage1 0.9976622  98 Rarefaction       1 13.526566 6.630224 20.422907
## 5  Assemblage1 0.9999899 196 Rarefaction       1 14.047741 7.152468 20.943013
## 8  Assemblage1 1.0000000 343 Rarefaction       1 14.269961 7.377398 21.162524
## 9  Assemblage1 1.0000000 545 Rarefaction       1 14.379899 7.484240 21.275557
## 13 Assemblage1 1.0000000 882    Observed       1 14.451223 7.559274 21.343171
## 
## NOTE: The above output only shows five estimates for each assemblage; call iNEXT.object$iNextEst$coverage_based to view complete output.
## 
## $AsyEst: asymptotic diversity estimates along with related statistics.
##                   Observed Estimator  Est_s.e. 95% Lower 95% Upper
## Species Richness  15.00000  15.00000 0.0000000  15.00000  15.00000
## Shannon diversity 14.45122  14.56675 0.1412637  14.28988  14.84362
## Simpson diversity 13.95179  14.15996 0.2570103  13.65623  14.66369
#construindo grafico 
ggiNEXT(resultados_individuos, type = 1) +
  scale_linetype_discrete(labels = c("Interpolado", "Extrapolado")) +
  scale_colour_manual(values = "purple") +
  scale_fill_manual(values = "blue") +
  scale_x_continuous(breaks = seq(0, 600, 100)) +
  labs(x = "Número de indivíduos", y = " Riqueza de espécies") +
  theme(plot.title = ggtext::element_markdown(color = "black", size = 15, hjust = 0.5, ),
        axis.text = element_text(color = "black", size = 10),
        axis.title = element_text(color = "black", size = 10),
        panel.grid = element_line(color = "grey75", linetype = "dashed", linewidth = 0.7),
        panel.grid.minor = element_blank(),
        axis.line = element_blank(),
        plot.background = element_rect(fill = "white", color = "white"),
        panel.background = element_rect(fill ="white"),
        panel.border = element_rect(colour = "black", fill = NA, linewidth = 0.5),
        legend.key = element_rect(color = "white", fill = "white"),
        strip.background = element_rect(colour="black",fill="gray90"),
        strip.text.x = element_text(size = 13))
## Warning in ggiNEXT.iNEXT(resultados_individuos, type = 1): invalid color.var
## setting, the iNEXT object do not consist multiple assemblages, change setting
## as Order.q
## Scale for colour is already present.
## Adding another scale for colour, which will replace the existing scale.
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.

Aqui podemos observar que assim como nos Últimos Índices, os indivÍduos desse fragmento foram amostrados o suficiente.

Diversidade

Aqui iremos aplicar o índice de Shannon-Wiener para medir a entropia, o índice de Simpson para calcular a probabilidade de 2 indivíduos quaisquer, retirados aleatoriamente de uma comunidade infinitamente grande, pertencerem à mesma espécie; e a equitabilidade de Pielou para observar a influência da abundância das espécies na diversidade.

Índice de Shannon-Wiener

O Índice de Shannon-Wiener mede a incerteza de identificar uma espécie dado o número de espécies e a distribuição de abundância para cada espécie. Este tipo índice é mais sensível às espécies raras.

composicao_shannon <- diversity(abelhas_frag, index = "shannon", MARGIN = 1)

composicao_shannon
##       f1       f2       f3       f4       f5       f6       f7       f8 
## 2.469857 2.267234 2.188193 2.513231 2.344837 2.320360 2.022053 2.172874 
##       f9      f10 
## 2.169385 2.029545
#Preparando os dados 
viz_shannon <- tibble(Fragmentos = paste0("Fragmento ", 1:10),
                      `Índice de Shannon-Wiener` = composicao_shannon %>% round(3)) %>% 
  mutate(Fragmentos = Fragmentos %>% factor(levels = paste0("Fragmento ", 1:10)))

viz_shannon
## # A tibble: 10 × 2
##    Fragmentos   `Índice de Shannon-Wiener`
##    <fct>                             <dbl>
##  1 Fragmento 1                        2.47
##  2 Fragmento 2                        2.27
##  3 Fragmento 3                        2.19
##  4 Fragmento 4                        2.51
##  5 Fragmento 5                        2.35
##  6 Fragmento 6                        2.32
##  7 Fragmento 7                        2.02
##  8 Fragmento 8                        2.17
##  9 Fragmento 9                        2.17
## 10 Fragmento 10                       2.03
#Plotando o Grafico
viz_shannon %>% 
  ggplot(aes(Fragmentos, `Índice de Shannon-Wiener`)) +
  geom_bar(stat = "identity", color = "black", fill = "blue") +
  geom_label(aes(Fragmentos, `Índice de Shannon-Wiener`, label = `Índice de Shannon-Wiener`), color = "black", fill = "blue") +
  theme(plot.title = ggtext::element_markdown(color = "black", size = 15, hjust = 0.5, ),
        axis.text = element_text(color = "black", size = 10),
        axis.text.x = element_text(color = "black", size = 10, angle = 90),
        axis.title = element_text(color = "black", size = 10),
        panel.grid = element_line(color = "grey75", linetype = "dashed", linewidth = 0.7),
        panel.grid.minor = element_blank(),
        axis.line = element_blank(),
        plot.background = element_rect(fill = "white", color = "white"),
        panel.background = element_rect(fill ="white"),
        panel.border = element_rect(colour = "black", fill = NA, linewidth = 0.5),
        legend.key = element_rect(color = "white", fill = "white"),
        strip.background = element_rect(colour="black",fill="gray90"),
        strip.text.x = element_text(size = 13))

Os fragmentos 1 e 4 possuem a maior diversidade de acordo com esse índice, e os menores índices seriam nos fragmentos 7 e 10.

Indice Simpson

O Índice de Simpson mede a probabilidade de dois indivíduos retirados ao acaso de uma comunidade serem da mesma espécie, variando de 0 a 1.

composicao_simpson <- diversity(abelhas_frag, index = "simpson", MARGIN = 1)

composicao_simpson
##        f1        f2        f3        f4        f5        f6        f7        f8 
## 0.9070844 0.8875115 0.8777513 0.9147107 0.8942684 0.8909552 0.8561793 0.8766759 
##        f9       f10 
## 0.8710114 0.8569628
#Preparando Dados
viz_simpson <- tibble(Fragmentos = paste0("Fragmento ", 1:10),
                      `Índice de Simpson` = composicao_simpson %>% round(3)) %>% 
  mutate(Fragmentos = Fragmentos %>% factor(levels = paste0("Fragmento ", 1:10)))

viz_simpson
## # A tibble: 10 × 2
##    Fragmentos   `Índice de Simpson`
##    <fct>                      <dbl>
##  1 Fragmento 1                0.907
##  2 Fragmento 2                0.888
##  3 Fragmento 3                0.878
##  4 Fragmento 4                0.915
##  5 Fragmento 5                0.894
##  6 Fragmento 6                0.891
##  7 Fragmento 7                0.856
##  8 Fragmento 8                0.877
##  9 Fragmento 9                0.871
## 10 Fragmento 10               0.857
#Plotando Gráfico

viz_simpson %>% 
  ggplot(aes(Fragmentos, `Índice de Simpson`)) +
  geom_bar(stat = "identity", color = "black", fill = "darkgreen") +
  geom_label(aes(Fragmentos, `Índice de Simpson`, label = `Índice de Simpson`), color = "black", fill = "darkgreen") +
  theme(plot.title = ggtext::element_markdown(color = "black", size = 15, hjust = 0.5, ),
        axis.text = element_text(color = "black", size = 10),
        axis.text.x = element_text(color = "black", size = 10, angle = 90),
        axis.title = element_text(color = "black", size = 10),
        panel.grid = element_line(color = "grey75", linetype = "dashed", linewidth = 0.7),
        panel.grid.minor = element_blank(),
        axis.line = element_blank(),
        plot.background = element_rect(fill = "white", color = "white"),
        panel.background = element_rect(fill ="white"),
        panel.border = element_rect(colour = "black", fill = NA, linewidth = 0.5),
        legend.key = element_rect(color = "white", fill = "white"),
        strip.background = element_rect(colour="black",fill="gray90"),
        strip.text.x = element_text(size = 13))

Repetindo os padrões do Shannon- Wiener, os fragmentos 1 e 4 possuem a maior diversidade de acordo com esse índice, e os menores índices seriam nos fragmentos 7 e 10. Entretando a diferença entre os valores de Simpson entre os fragmentos está muito menor em relação ao outro índice.

Indice de Equitabilidade de Pielou

O Índice de Equitabilidade de Pielou varia de 0 a 1, onde 0 representa uma comunidade que todos os indivíduos estão em 1 espécie e 1 onde todas as espécies de uma comunidade possuem o mesmo número de indivíduos.

composicao_pielou <- composicao_shannon / abelhas_frag %>% specnumber() %>% log()
 
composicao_pielou
##        f1        f2        f3        f4        f5        f6        f7        f8 
## 0.9358860 0.9455099 0.9125472 0.9798364 0.9436320 0.9337817 0.9202758 0.9061589 
##        f9       f10 
## 0.8730248 0.9236857
#Preparando dados 
viz_pielou <- tibble(Fragmentos = paste0("Fragmento ", 1:10),
                     `Índice de Equitabilidade de Pielou` = composicao_pielou %>% round(3)) %>% 
  mutate(Fragmentos = Fragmentos %>% factor(levels = paste0("Fragmento ", 1:10)))

viz_pielou
## # A tibble: 10 × 2
##    Fragmentos   `Índice de Equitabilidade de Pielou`
##    <fct>                                       <dbl>
##  1 Fragmento 1                                 0.936
##  2 Fragmento 2                                 0.946
##  3 Fragmento 3                                 0.913
##  4 Fragmento 4                                 0.98 
##  5 Fragmento 5                                 0.944
##  6 Fragmento 6                                 0.934
##  7 Fragmento 7                                 0.92 
##  8 Fragmento 8                                 0.906
##  9 Fragmento 9                                 0.873
## 10 Fragmento 10                                0.924
#Plotando Gráfico 
viz_pielou %>% 
  ggplot(aes(Fragmentos, `Índice de Equitabilidade de Pielou`)) +
  geom_bar(stat = "identity", color = "black", fill = "turquoise") +
  geom_label(aes(Fragmentos, `Índice de Equitabilidade de Pielou`, label = `Índice de Equitabilidade de Pielou`), color = "black", fill = "turquoise") +
  theme(plot.title = ggtext::element_markdown(color = "black", size = 15, hjust = 0.5, ),
        axis.text = element_text(color = "black", size = 10),
        axis.text.x = element_text(color = "black", size = 10, angle = 90),
        axis.title = element_text(color = "black", size = 10),
        panel.grid = element_line(color = "grey75", linetype = "dashed", linewidth = 0.7),
        panel.grid.minor = element_blank(),
        axis.line = element_blank(),
        plot.background = element_rect(fill = "white", color = "white"),
        panel.background = element_rect(fill ="white"),
        panel.border = element_rect(colour = "black", fill = NA, linewidth = 0.5),
        legend.key = element_rect(color = "white", fill = "white"),
        strip.background = element_rect(colour="black",fill="gray90"),
        strip.text.x = element_text(size = 13))

Pelo fato do índice de pielou considerar a abundância das espécies, os fragmentos 2 e 4 obteram os maiores índices de diversidade, enquanto os menores valores ficaram para os fragmentos 3 e 9. De todos os fragmentos o 4 foi o único que se manteve com maior diversidade em todos os índices

Curva de Dominância

O Diagrama de Whitakker ou Curva de Dominância, vai ser utilizado para avaliar como está a equitabilidade da comunidade através de curvas. O eixo X é um rank das espécies em relação à sua abundância, que varia de 1 (espécie mais abundante) ao número de espécies do dataset. O eixo Y representa a abundância, podendo ser a abundância absoluta ou relativa.

#Criando uma função

whittaker_curve <- function(data, intervalos_x, ordem = NULL) {
  
  if (require("tidyverse") != TRUE) {
    
    install.packages("tidyverse")
    
    library(tidyverse)
    
  } else {
    
    library(tidyverse)
    
  }
  
  integer_breaks <- function(n = 5, ...) {
    
    fxn <- function(x) {
      
      breaks <- floor(pretty(x, n, ...))
      names(breaks) <- attr(breaks, "labels")
      breaks
    }
    
  return(fxn)
    
    }
  
  if (!is.null(rownames(data))) {
    
    dataset <- data %>%
    mutate(Fragmento = rownames(data),
           Fragmento = Fragmento %>% as.factor()) %>%
    pivot_longer(cols = 1:ncol(data),
                 values_to = "Abundância",
                 names_to = "Espécies") %>%
    group_by(Fragmento) %>%
    arrange(Abundância %>% desc(), .by_group = TRUE) %>%
    group_by(Fragmento) %>%
    mutate(Rank = 1:ncol(data)) 
    
    if (!is.null(ordem)) {
    
    dataset <- dataset %>%
      mutate(Fragmento = factor(Fragmento, levels = ordem))
    
  }
    maximo <- dataset %>%
    summarise(max = Abundância %>% max()) %>%
    select(max) %>%
    summarise(max %>% max()) %>%
    as.numeric()
  
  minimo <- dataset %>%
    summarise(min = Abundância %>% min()) %>%
    select(min) %>%
    summarise(min %>% min()) %>%
    as.numeric()
  
  especies <- dataset %>%
    group_by(Fragmento) %>%
    slice_min(Rank, n = 3) %>%
    mutate(Rank = Rank + 0.325)
  
  dataset %>%
    filter(Abundância > 0) %>%
    ggplot(aes(Rank, Abundância, fill = Fragmento, color = Fragmento)) +
    geom_line(size = 1) +
    geom_label(aes(Rank, Abundância, label = Espécies), color = "black", size = 3) +
    scale_x_continuous(breaks = seq(0, ncol(data), intervalos_x)) +
    scale_y_continuous(breaks = integer_breaks()) +
    theme(plot.title = ggtext::element_markdown(color = "black", size = 15, hjust = 0.5),
          axis.text = element_text(color = "black", size = 10),
          axis.title = element_text(color = "black", size = 10),
          panel.grid = element_line(color = "grey75", linetype = "dashed", linewidth = 0.7),
          panel.grid.minor = element_blank(),
          axis.line = element_blank(),
          plot.background = element_rect(fill = "white", color = "white"),
          panel.background = element_rect(fill = "white"),
          panel.border = element_rect(colour = "black", fill = NA, linewidth = 0.5),
          legend.key = element_rect(color = "white", fill = "white"),
          legend.position = "bottom",
          strip.background = element_rect(colour = "black", fill = "gray90"),
          strip.text.x = element_text(size = 13))
    
  } else {
    
    dataset <- data %>%
    mutate(Fragmento = paste0("Fragmento ", 1:nrow(data)),
           Fragmento = Fragmento %>% as.factor()) %>%
    pivot_longer(cols = 1:ncol(data),
                 values_to = "Abundância",
                 names_to = "Espécies") %>%
    group_by(Fragmento) %>%
    arrange(Abundância %>% desc(), .by_group = TRUE) %>%
    group_by(Fragmento) %>%
    mutate(Rank = 1:ncol(data),
           Fragmento = factor(Fragmento, levels = paste0("Fragmento "), i:nrow(data))) 
    
    maximo <- dataset %>%
    summarise(max = Abundância %>% max()) %>%
    select(max) %>%
    summarise(max %>% max()) %>%
    as.numeric()
  
  minimo <- dataset %>%
    summarise(min = Abundância %>% min()) %>%
    select(min) %>%
    summarise(min %>% min()) %>%
    as.numeric()
  
  especies <- dataset %>%
    group_by(Fragmento) %>%
    slice_min(Rank, n = 3) %>%
    mutate(Rank = Rank + 0.325)
  
  dataset %>%
    filter(Abundância > 0) %>%
    ggplot(aes(Rank, Abundância, fill = Fragmento, color = Fragmento)) +
    geom_line(size = 1) +
    geom_label(aes(Rank, Abundância, label = Espécies), color = "black", size = 3) +
    scale_x_continuous(breaks = seq(0, ncol(data), intervalos_x)) +
    scale_y_continuous(breaks = integer_breaks()) +
    theme(plot.title = ggtext::element_markdown(color = "black", size = 15, hjust = 0.5),
          axis.text = element_text(color = "black", size = 10),
          axis.title = element_text(color = "black", size = 10),
          panel.grid = element_line(color = "grey75", linetype = "dashed", linewidth = 0.7),
          panel.grid.minor = element_blank(),
          axis.line = element_blank(),
          plot.background = element_rect(fill = "white", color = "white"),
          panel.background = element_rect(fill = "white"),
          panel.border = element_rect(colour = "black", fill = NA, linewidth = 0.5),
          legend.key = element_rect(color = "white", fill = "white"),
          legend.position = "bottom",
          strip.background = element_rect(colour = "black", fill = "gray90"),
          strip.text.x = element_text(size = 13))
    
  }
    
    
}

whittaker_dataset <- function(data, ordem = NULL){
  
  if(require("tidyverse") != TRUE){
    
    install.packages("tidyverse")
    
    library(tidyverse)
    
  } else {
    
    library(tidyverse)
    
  }
  
  if(!is.null(rownames(data))){
    
    if(!is.null(ordem)){
      
      data %>%
        mutate(Fragmento = rownames(data),
              Fragmento = Fragmento %>% as.factor()) %>%
        pivot_longer(cols = 1:ncol(data),
                    values_to = "Abundância",
                    names_to = "Espécies") %>%
        group_by(Fragmento) %>%
        arrange(Abundância %>% desc(), .by_group = TRUE) %>%
        arrange(Fragmento %>%  factor(levels = ordem)) %>%
        group_by(Fragmento) %>%
        mutate(Rank = 1:ncol(data)) %>% 
        return()
      
    } else {
      
      data %>% 
        mutate(Fragmento = rownames(data),
              Fragmento = Fragmento %>% as.factor()) %>%
        pivot_longer(cols = 1:ncol(data),
                    values_to = "Abundância",
                    names_to = "Espécies") %>%
        group_by(Fragmento) %>%
        arrange(Abundância %>% desc(), .by_group = TRUE) %>%
        group_by(Fragmento) %>%
        mutate(Rank = 1:ncol(data)) %>% 
        return()
    
    }
    
  } else {
    
    data %>%
      mutate(Fragmento = paste0("Fragmento ", 1:nrow(data)),
            Fragmento = Fragmento %>% as.factor()) %>%
      pivot_longer(cols = 1:ncol(data),
                   values_to = "Abundância",
                   names_to = "Espécies") %>%
      group_by(Fragmento) %>%
      arrange(Abundância %>% desc(), .by_group = TRUE) %>%
      arrange(Fragmento %>%  factor(levels = ordem)) %>%
      group_by(Fragmento) %>%
      mutate(Rank = 1:ncol(data),
             Fragmento = factor(Fragmento, levels = paste0("Fragmento "), i:nrow(data))) %>% 
      return()
    
  }
    
}
 #Executando a função 
abelhas_frag %>% whittaker_curve(intervalos_x = 1, ordem = abelhas_frag %>% rownames())

abelhas_frag %>% whittaker_dataset(ordem = abelhas_frag %>% rownames()) %>% datatable()

Visualizando cada fragmento:

for(i in 1:nrow(abelhas_frag)){
  
  abelhas_frag[i, ] %>% 
    whittaker_curve() %>% 
    print()
  
}

A partir da curva de Dominância, podemos observar que a espécie Paratrigona subnuda foi dominante no fragmento 1, Centris analis no fragmento 2, Tetrapedia diversipes no fragmento 3 e 5, Trigona spinipes no fragmento 4, Melipona quadrifasciata no fragmento 6, Apis mellifera no fragmento 7 e 9, Hypanthidium sp. no fragmento 8, e Megachile rotundata no fragmento 10.

Distribuição de Abundância de Espécies

Aqui iremos aplicar a função radfit para observar quais modelos de distribuição de abundância de espécies explica melhor a interação dessa comunidade. O objetivo desses modelos é observar qual o modelo que melhor descreve a comunidade, já que diferentes modelos implicam diferentes interpretações ecológicas.

radfit(abelhas_frag) %>% plot()
## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

## Warning: glm.fit: algoritmo não convergiu

Os fragmentos 1, 3, 5, 6, 7, 8 e 10 seguem uma distribuição de preemption/série geométrica, mostrando que a abundância das espécies é decrescente em relação ao rank, demonstrando um modelo de distribuições desiguais;

Os fragmentos 2 e 4 seguem uma distribuição de lognormal, assumindo que as abundâncias logarítmicas são distribuídas normalmente.

O fragmento 9 foi o único que apresentou uma distribuição de Null/broken-stick ou vara quebrada presumindo que essa comunidade segue uma distribuição aleatória, então as espécies terão abundâncias igualitárias.