Cap. 11 - Estimadores de riqueza

# Pacotes necessários
library(iNEXT)
library(ecodados)
library(ggplot2)
library(vegan)
library(nlme)
library(dplyr)

11.1 Carregue os dados - Cap11_exercicio1 - que está no pacote ecodados. Este conjunto de dados representa a abundância de 50 espécies de besouros coletados em 30 amostras. Calcule os estimadores de riqueza - Chao1 e ACE - e faça um gráfico contendo a riqueza observada e os dois estimadores de riqueza. Qual a sua interpretação sobre o esforço amostral?

Solução:

# Carregar a planilha com os dados
exercicio_1 <- ecodados::Cap11_exercicio1

# estimadores abundância
est_abun <- estaccumR(exercicio_1, permutations = 100)

## Preparando os dados para fazer o gráfico
resultados_abun <- summary(est_abun 
                          , display = c("S", "chao", "ace"))
res_abun <- cbind(resultados_abun$chao[, 1:4], resultados_abun$ace[, 2:4], 
                 resultados_abun$S[, 2:4])
res_abun <- as.data.frame(res_abun)
colnames(res_abun) <- c("Amostras", "Chao", "C_inferior", "C_superior", 
                       "ace", "A_inferior", "A_superior",
                        "Riqueza", "R_inferior", "R_superior")


## Gráfico
ggplot(res_abun, aes(y = Riqueza, x = Amostras)) +
    geom_point(aes(y = Chao, x = Amostras + 0.1), size = 4, 
               color = "darkorange", alpha = 1) +
    geom_point(aes(y = ace, x = Amostras + 0.2), size = 4, 
               color = "cyan4", alpha = 1) +
    geom_point(aes(y = Riqueza, x = Amostras), size = 4, 
               color = "black", alpha = 1) +
    geom_point(y = 150, x = 1, size = 4, color = "darkorange", alpha = 1) + 
    geom_point(y = 135, x = 1, size = 4, color = "cyan4", alpha = 1) + 
    geom_point(y = 120, x = 1, size = 4, color = "black", alpha = 1) +
    geom_label(y = 150, x = 4.4, label = "Chao 1", size = 5) +
    geom_label(y = 135, x = 3.9, label = "ACE", size = 5) +
    geom_label(y = 120, x = 7.3, label = "Riqueza observada", size = 5) + 
    geom_line(aes(y = Chao, x = Amostras), color = "darkorange") +
    geom_line(aes(y = ace, x = Amostras), color = "cyan4") +
    geom_line(aes(y = Riqueza, x = Amostras), color = "black") +
    geom_linerange(aes(ymin = C_inferior, ymax = C_superior,
                       x = Amostras + 0.1), color = "darkorange") +
    geom_linerange(aes(ymin = A_inferior, ymax = A_superior,
                       x = Amostras + 0.2), color = "cyan4") +
    geom_linerange(aes(ymin = R_inferior, ymax = R_superior,
                       x = Amostras), color = "black") +
    scale_x_continuous(limits = c(1, 31), breaks = seq(1, 31, 1)) +
    labs (x = "Número de amostras", y = "Riqueza de espécies de besouros") +
    theme_bw(base_size = 12) +
    theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())

11.2

Utilize o mesmo conjunto de dados do exercício anterior. Calcule os estimadores de riqueza - Jackknife 1 e bootstrap. Faça um gráfico contendo a riqueza observada e os dois estimadores de riqueza. Qual a sua interpretação sobre o esforço amostral? Compare com os resultados do exercício anterior que utilizam estimadores baseados na abundância das espécies.

Solução:

# Carregar a planilha com os dados
exercicio_1 <- ecodados::Cap11_exercicio1

# estimadores incidencia
est_inc <- poolaccum(exercicio_1, permutations = 100)

## Preparando os dados para fazer o gráfico
resultados_inc <- summary(est_inc 
                          , display = c("S", "jack1", "boot"))
res_inc <- cbind(resultados_inc$jack1[, 1:4], resultados_inc$boot[, 2:4], 
                 resultados_inc$S[, 2:4])
res_inc <- as.data.frame(res_inc)
colnames(res_inc) <- c("Amostras", "jack1", "j_inferior", "j_superior", 
                       "boot", "B_inferior", "B_superior",
                        "Riqueza", "R_inferior", "R_superior")


## Gráfico
ggplot(res_inc, aes(y = Riqueza, x = Amostras)) +
    geom_point(aes(y = jack1, x = Amostras + 0.1), size = 4, 
               color = "darkorange", alpha = 1) +
    geom_point(aes(y = boot, x = Amostras + 0.2), size = 4, 
               color = "cyan4", alpha = 1) +
    geom_point(aes(y = Riqueza, x = Amostras), size = 4, 
               color = "black", alpha = 1) +
    geom_point(y = 70, x = 1, size = 4, color = "darkorange", alpha = 1) + 
    geom_point(y = 65, x = 1, size = 4, color = "cyan4", alpha = 1) + 
    geom_point(y = 60, x = 1, size = 4, color = "black", alpha = 1) +
    geom_label(y = 70, x = 4.9, label = "Jackknife 1", size = 5) +
    geom_label(y = 65, x = 4.6, label = "Bootstrap", size = 5) +
    geom_label(y = 60, x = 6.7, label = "Riqueza observada", size = 5) + 
    geom_line(aes(y = jack1, x = Amostras), color = "darkorange") +
    geom_line(aes(y = boot, x = Amostras), color = "cyan4") +
    geom_line(aes(y = Riqueza, x = Amostras), color = "black") +
    geom_linerange(aes(ymin = j_inferior, ymax = j_superior,
                       x = Amostras + 0.1), color = "darkorange") +
    geom_linerange(aes(ymin = B_inferior, ymax = B_superior,
                       x = Amostras + 0.2), color = "cyan4") +
    geom_linerange(aes(ymin = R_inferior, ymax = R_superior,
                       x = Amostras), color = "black") +
    scale_x_continuous(limits = c(1, 31), breaks = seq(1, 31, 1)) +
    labs (x = "Número de amostras", y = "Riqueza de espécies de besouros") +
    theme_bw(base_size = 12) +
    theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())

11.3 Vamos refazer o exercício 10 do Capítulo 7 que usa Generalized Least Squares (GLS) para testar a relação da riqueza de anuros em 44 localidades na Mata Atlântica com a precipitação anual. Contudo, ao invés de considerar a riqueza de espécies de anuros observada como variável resposta, iremos utilizar a riqueza extrapolada. Utilize os dados “anuros_composicao” para estimar a riqueza extrapolada e o dados “anuros_ambientais” para acessar os dados de precipitação anual e coordenadas geográficas. Qual a sua interpretação dos resultados utilizando a riqueza observada e extrapolada?

Solução:

# Carregar a planilha com os dados
exercicio_3 <- ecodados::anuros_composicao

# Verificar a comunidade com maior abundãncia. 
abund_max <- max(colSums(exercicio_3))

# Calcular a riqueza extrapolada de espécies para todas as comunidades 
# considerando a maior abundância. 
resultados_extrapolacao <- iNEXT(exercicio_3, q = 0, 
                                 datatype = "abundance", 
                                 endpoint = abund_max)

# Loop para determinar a riqueza extrapolada para as 44 localidades
resultados_comunidades_ext <- data.frame()
riqueza_extrapolada <- c()

for (i in 1:44){
    resultados_comunidades_ext <- data.frame(resultados_extrapolacao$iNextEst[i])
    riqueza_extrapolada[i] <- resultados_comunidades_ext[40, 4] 
}


# carregando o data frame com todas as variáveis
exercicio_3_1 <- ecodados::anuros_ambientais

# Criando um data frame com a riqueza extrapolada, precipitação anual,
# latitude e longitude
dados_combinado_ext <- data.frame(riqueza_extrapolada, exercicio_3_1[,c(3,5,6)])


## Modelo gls sem estrutura espacial
no_spat_gls <- gls(riqueza_extrapolada ~ Prec_anual, dados_combinado_ext, method = "REML")

## Covariância esférica
espher_model <- gls(riqueza_extrapolada ~ Prec_anual, dados_combinado_ext, 
                    corSpher(form = ~Latitude + Longitude, nugget = TRUE))

## Covariância exponencial
expon_model <- gls(riqueza_extrapolada ~ Prec_anual, dados_combinado_ext, 
                   corExp(form = ~Latitude + Longitude, nugget = TRUE))

## Covariância Gaussiana
gauss_model <- gls(riqueza_extrapolada ~ Prec_anual, dados_combinado_ext, 
                   corGaus(form = ~Latitude + Longitude, nugget = TRUE))

## Covariância linear
cor_linear_model <- gls(riqueza_extrapolada ~ Prec_anual, dados_combinado_ext, 
                        corLin(form = ~Latitude + Longitude, nugget = TRUE),
                        control = glsControl(opt='optim',  msVerbose = F))

## Covariância razão quadrática
ratio_model <- gls(riqueza_extrapolada ~ Prec_anual, dados_combinado_ext, 
                   corRatio(form = ~Latitude + Longitude, nugget = TRUE))

## Seleção de modelos
aic_fit <- AIC(no_spat_gls, espher_model, cor_linear_model, expon_model, 
               gauss_model,ratio_model)
aic_fit %>% arrange(AIC)
#>                  df      AIC
#> no_spat_gls       3 338.8380
#> gauss_model       5 339.6672
#> ratio_model       5 339.6853
#> expon_model       5 340.3431
#> espher_model      5 342.8380
#> cor_linear_model  5 342.8489


## Gráfico
plot(residuals(espher_model, type = "normalized") ~ fitted(espher_model))

## Varigrama
espher_model_variog <- Variogram(espher_model, form = ~Latitude + Longitude,
                               resType = "normalized")

plot(espher_model_variog, main = "Variograma com o modelo de Covariância Esférica")

## Resumo dos modelos
summary(espher_model)$tTable 
#>                 Value   Std.Error   t-value     p-value
#> (Intercept) 3.7004741 8.319750795 0.4447818 0.658761200
#> Prec_anual  0.0173344 0.005831002 2.9727995 0.004869827
summary(no_spat_gls)$tTable
#>                 Value   Std.Error   t-value     p-value
#> (Intercept) 3.7004741 8.319750757 0.4447818 0.658761200
#> Prec_anual  0.0173344 0.005831002 2.9727995 0.004869827