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ê.
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.
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
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)
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.
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.
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.
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.
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.
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.
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
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()
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.
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.