Skip to contents
library(distanceMonitoraflorestal)

Fluxo 5 - Amostragem por distância com estratificação por Unidade de Conservação

A estratificação dos dados a partir do pacote Distance para o R só é possível através da variável Region.Label. Assim, apresentamos um fluxo de estratificação utilizando ainda os dados da cutia, Dasyprocta croconota, para mais de uma unidade de conservação.

Explorando os dados dentro de cada estrato espacial:

Na PARTE IV - Explorando e selecionando os dados para as análises, filtramos os dados de Dasyprocta croconota. A espécie foi observada em quatro Unidades de Conservação, com os respectivos números de ocorrência: Resex Tapajós-Arapiuns (n = 1395), Parna da Serra do Pardo (n = 257), Esec da Terra do Meio (n = 235), e Resex Riozinho do Anfrísio (n = 225). Em todas as UCs o número de observações é alto, de modo que incluímos todas as UCs na análise de dados.

Carregar Dados

# filtrar dados das cutias para as quatro UCS onde ocorre:
cutias <- filtrar_dados(
  nome_ucs %in% c(
    "resex_tapajos_arapiuns", 
    "parna_da_serra_do_pardo",
    "esec_da_terra_do_meio", 
    "resex_riozinho_do_anfrisio"
  ),
  nome_sps == "dasyprocta_croconota",
  validacao_obs = "especie"
)

cutias_distance <- transformar_dados_formato_Distance(
  cutias,
  amostras_repetidas = TRUE)

cutias_distance

Plotando o histograma das frequências de ocorrência pela distância

Dados Globais

Plotando o histograma para os dados globais.

cutias_distance |> 
  tidyr::drop_na(distance) |> 
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Por Estrato

Plotando o histograma para cada uma das UCS

Resex Tapajós-Arapiuns
cutias_tap_distance <- filtrar_dados(
  nome_ucs = "resex_tapajos_arapiuns",
  nome_sps = "dasyprocta_croconota",
  validacao_obs = "especie"
) |> 
  transformar_dados_formato_Distance(amostras_repetidas = TRUE)

cutias_tap_distance |> 
  tidyr::drop_na(distance) |> 
  plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Parna Serra do Pardo
cutias_par_distance <- filtrar_dados(
  nome_ucs = "parna_da_serra_do_pardo",
  nome_sps = "dasyprocta_croconota",
  validacao_obs = "especie"
)|> 
  transformar_dados_formato_Distance(amostras_repetidas = TRUE)

cutias_par_distance |> 
  plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Esec da Terra do Meio
cutias_ter_distance <- filtrar_dados(
  nome_ucs = "esec_da_terra_do_meio",
  nome_sps = "dasyprocta_croconota",
  validacao_obs = "especie"
) |> 
  transformar_dados_formato_Distance(amostras_repetidas = TRUE)

cutias_ter_distance |> 
  tidyr::drop_na(distance) |> 
  plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Resex Riozinho do Anfrísio
cutias_anf_distance <- filtrar_dados(
  nome_ucs = "resex_riozinho_do_anfrisio",
  nome_sps = "dasyprocta_croconota",
  validacao_obs = "especie"
) |> 
  transformar_dados_formato_Distance(amostras_repetidas = TRUE)

cutias_anf_distance |> 
  plotar_distribuicao_distancia_interativo(largura_caixa = 1)

Ajustando diferentes modelos para dados Globais

Para ajustar os modelos aos dados globais e estratificados, mantivemos a mesma distância de truncamento para os dados das cutias na Resex Tapajós-Arapiuns, de 10%, uma vez que a distrbuição dos dados é semelhante tanto nos dados globais como nas UCs analisadas.

Uniforme com termos de ajuste Cosseno e polinomial simples

# ajustando a função de detecção uniforme para um truncamento de 10% dos dados
cutias_distance_unif <- cutias_distance |> 
  ajustar_modelos_Distance(
    funcao_chave = "unif",
    truncamento = "10%")

Half-Normal sem termos de ajuste e com termos de ajuste Cosseno e Polinomial de Hermite

# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_distance_hn <- cutias_distance |> 
  ajustar_modelos_Distance(
    funcao_chave = "hn",
    truncamento = "10%")

Hazard-rate sem termos de ajuste e com termos de ajuste Cosseno e Polinomial de Hermite

# ajustando a função de detecção hazard-rate para um truncamento de 10% dos dados
cutias_distance_hr <- cutias_distance |> 
  ajustar_modelos_Distance(
    funcao_chave = "hr",
    truncamento = "10%")

Comparando os modelos

Tabela com o resumo comparativo dos modelos

melhor_modelo_cutias <- selecionar_funcao_deteccao_termo_ajuste(
  cutias_distance_unif$Cosseno,
  cutias_distance_unif$`Polinomial simples`,
  cutias_distance_hn$`Sem termo`,
  cutias_distance_hn$Cosseno,
  cutias_distance_hn$`Hermite polinomial`,
  cutias_distance_hr$`Sem termo`,
  cutias_distance_hr$Cosseno,
  cutias_distance_hr$`Polinomial simples`
)

melhor_modelo_cutias

Gráficos de ajuste das funções de deteção às probabilidades de deteção

modelos_cutias <- gerar_lista_modelos_selecionados(
  cutias_distance_hr$`Sem termo`,
  cutias_distance_hn$Cosseno,
  cutias_distance_unif$Cosseno,
  cutias_distance_unif$`Polinomial simples`,
  cutias_distance_hn$`Sem termo`,
  nome_modelos_selecionados = melhor_modelo_cutias
)

plotar_funcao_deteccao_modelos_selecionados(modelos_cutias)

Teste de bondade de ajuste dos modelos e Q-Q plots

#criar uma lista com os modelos selecionados, na ordem de seleção
testar_bondade_ajuste(
  modelos_cutias,
  plot = TRUE,
  chisq = FALSE,
)
  

Aqui são gerados Q-Q plots que permitem avaliar a qualidade do ajuste dos modelos. E também uma tabela com os resultados do Carmér-von Mises, onde W é o valor do teste e p seu valor de significância. Nesse caso, quanto maior o valor de p, melhor o ajuste do modelo.

Avaliando as estimativas de Abundância e Densidade

Aqui, são resumidos os dados de taxa de encontro, abundância e densidade em três tabelas.

Área coberta pela Amostragem

gerar_resultados_Distance(
  dados = modelos_cutias,
  resultado_selecao_modelos = melhor_modelo_cutias,
  tipo_de_resultado = "area_estudo", 
  estratificacao = TRUE
)

Ábundância


gerar_resultados_Distance(
  dados = modelos_cutias,
  resultado_selecao_modelos = melhor_modelo_cutias,
  tipo_de_resultado = "abundancia", 
  estratificacao = TRUE
)

Densidade


gerar_resultados_Distance(
  dados = modelos_cutias,
  resultado_selecao_modelos = melhor_modelo_cutias,
  tipo_de_resultado = "densidade", 
  estratificacao = TRUE
)

Ajustando modelos para cada estrato espacial (Unidade de Conservação)

A redução no tamanho amostral geralmente faz com que os modelos para os dados globais tenham um ajuste melhor que os modelos ajustados aos estratos. Entretanto, para os dados do Monitora, considerando alguns ruídos amostrais sobre a distribuição dos dados, o excesso de repetições, resultados melhores de ajuste têm sido obtidos para conjutnos de dados menores.

Nas análises anteriores, os parâmetros de ajuste dos modelos e valores de AIC foram gerados somente para os dados globais. Porém, as estimativas relacionadas a área de estudo, abundância e densidade, foram geradas para cada estrato.

Um critério para avaliar se o ajuste das funções para os dados estratificados foi melhor que para os dados globais é a comparação do somatório dos valores de AIC para cada estrato com o valor de AIC do modelo global. Se a soma dos valores de AIC dos estratos for menor que o AIC global, significa que o ajuste foi melhor para os dados estratificados.

Assim, escolhemos um dos modelos testados anteriormente para os dados globais, que foi o Half-normal. Escolhemos o segundo melhor modelo porque consideramos que o ajuste do Hazard-rate, apesar de apresentar os melhores valores de AIC e teste de ajuste de bondade, foi sensível ao pico de observações próximo a zero, substimando as estimativas de probabilidade de detecção. Assim, vamos comparar o AIC global para o modelo do tipo Half-normal com os AICs das funções ajustadas para os dados de cada Unidade de Conservação.

Half-Normal

Dados Globais
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_distance_hn <- cutias_distance |> 
  ajustar_modelos_Distance(
    funcao_chave = "hn",
    termos_ajuste = "cos",
    truncamento = "10%")
Resex Tapajós-Arapiuns
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_tap_distance_hn <- cutias_tap_distance |> 
  ajustar_modelos_Distance(
    funcao_chave = "hn",
    termos_ajuste = "cos",
    truncamento = "10%")
Resex Tapajós-Arapiuns
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_tap_distance_hn <- cutias_tap_distance |> 
  ajustar_modelos_Distance(
    funcao_chave = "hn",
    termos_ajuste = "cos",
    truncamento = "10%")
Parna Serra do Pardo
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_par_distance_hn <- cutias_par_distance |> 
  ajustar_modelos_Distance(
    funcao_chave = "hn",
    termos_ajuste = "cos",
    truncamento = "10%")
Esec da Terra do Meio
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_ter_distance_hn <- cutias_ter_distance |> 
  ajustar_modelos_Distance(
    funcao_chave = "hn",
    termos_ajuste = "cos",
    truncamento = "10%")
Resex Riozinho do Anfrísio
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_anf_distance_hn <- cutias_anf_distance |> 
  ajustar_modelos_Distance(
    funcao_chave = "hn",
    termos_ajuste = "cos",
    truncamento = "10%")

Comparando os modelos

Tabela com o resumo comparativo dos modelos
modelo_cutias_estrat <- comparar_aic_modelo_estratificado(
  cutias_distance_hn$Cosseno,
  cutias_tap_distance_hn,
  cutias_par_distance_hn,
  cutias_ter_distance_hn,
  cutias_anf_distance_hn, 
  nome_modelos = c(
 "Global",
 "Resex Tapajós-Arapiuns",
 "Parna Serra do Prado",
 "Esec da Terra do Meio",
 "Resex do Riozinho do Anfrísio"
  )
)


modelo_cutias_estrat
Gráficos de ajuste das funções de deteção às probabilidades de deteção
modelos_cutias_estrat <- gerar_lista_modelos_selecionados(
  cutias_distance_hn$Cosseno,
  cutias_tap_distance_hn,
  cutias_par_distance_hn,
  cutias_ter_distance_hn,
  cutias_anf_distance_hn,
  nome_modelos_selecionados = modelo_cutias_estrat
)

plotar_funcao_deteccao_modelos_selecionados(modelos_cutias_estrat)