Dans ce cours/tutoriel, nous allons traiter :
Les modèles d’occupation permettent d’estimer la présence des espèces (un processus biologique) tout en tenant compte de la détection imparfaite (un processus d’observation).
La probabilité de détecter une espèce au cours d’une enquête étant presque toujours largement inférieure à 1, ne pas en tenir compte dans les estimations de distribution les rendraient considérablement biaisées.
Les modèles d’occupation sont utiles pour estimer la distribution des espèces, mais aussipour étudier les relations entre la présence des espèces et les variables de l’habitat ou du paysage (parmi beaucoup d’autres choses !).
Un modèle d’occupation de base estime deux paramètres :
Le modèle single-season occupancy suppose que le statut d’occupation (présence ou absence) ne change pas au cours de l’étude. En d’autres termes, une espèce est soit toujours présente, soit toujours absente sur chaque site, même si elle n’est pas toujours détectée. Il exite des modèles d’occupation dynamique qui permettent de modifier le statut d’occupation d’un site par le biais de la colonisation et de l’extinction.
Nous allons utiliser un package R dédié : unmarked
Le jeu de données “birds”, inclus directement dans unmarked, contient les relevés de suivi pour deux espèces d’oiseaux, en presence absence et en abondance. Nous allons travailler sur l’espèce woodthrush, suivie suivant le protocole BBS (Breading Bird Survey).
Le North American Breeding Bird Survey (BBS) est la principale source de données à long terme et à grande échelle sur les populations de plus de 400 espèces d’oiseaux nicheurs. Menée depuis 1966, cette enquête routière standardisée repose sur la participation de bénévoles. Il est coordonné au Canada par le Service canadien de la faune d’Environnement et Changement climatique Canada, aux États-Unis par l’U.S. Geological Survey (USGS, Patuxent Wildlife Research Center) et au Mexique par la Commission nationale pour la connaissance et l’utilisation de la biodiversité (CONABIO). Un jour par an, au plus fort de la saison de reproduction et pendant autant d’années que possible, des observateurs qualifiés du BBS parcourent les routes qui leur sont assignées. Les itinéraires consistent en 50 arrêts espacés de 0,8 km le long d’un itinéraire de 39,4 km. Les participants enregistrent le nombre total d’espèces d’oiseaux individuelles entendues à n’importe quelle distance ou vues dans un rayon de 0,4 km autour de chaque arrêt pendant une observation de trois minutes. Ces données sont soigneusement analysées chaque année pour fournir des informations sur les tendances des populations d’oiseaux, l’abondance relative et la composition et la richesse des espèces à l’échelle locale, régionale et continentale. Les données du BBS sont disponibles gratuitement et sont utilisées par les scientifiques, les gestionnaires de la faune, les éducateurs et les étudiants, ainsi que par le grand public (source : canada.ca).
## woodthrush woodthrush woodthrush woodthrush woodthrush
## 1 1 1 0 1 1
## 2 1 1 1 1 1
## 3 0 1 1 1 0
## 4 1 1 1 1 1
## 5 1 1 1 1 0
On doit commencer par créer un objet de format
unmarkedFrameOccu qui contient nos données et qui sera
lisible par unmarked. Pour un modèle simple, cette fonction a besoin
d’un seul argument “y” qui doit contenir une matrice binaire dont les
colonnes sont les visites et les lignes sont les sites.
sample.unmarkedFrame_simple <- unmarkedFrameOccu(y = as.matrix(woodthrush.bin))
# afficher l'objet
summary(sample.unmarkedFrame_simple)## unmarkedFrame Object
##
## 50 sites
## Maximum number of observations per site: 11
## Mean number of observations per site: 11
## Sites with at least one detection: 45
##
## Tabulation of y observations:
## 0 1
## 344 206
Rappelez-vous qu’il y a deux paramètres (détection et occupation). Chaque paramètre est estimé à l’aide d’un modèle linéaire avec un lien logit, qui limite les estimations réelles à une valeur comprise entre 0 et 1. Nous devons limiter les estimations parce que les probabilités doivent être comprises entre 0 et 1.
Pour construire notre modèle d’occupation, nous commencerons par un modèle à ordonnée à l’origine où il n’y a qu’une seule estimation de la probabilité de détection (\(p\)) et une seule estimation de la probabilité d’occupation (\(\Psi\). Dans ce cas, un modèle qui ne contient qu’une ordonnée à l’origine signifie que la probabilité de présence d’une espèce est la même sur chaque site et que la probabilité de détection d’une espèce est la même au cours de chaque étude.
On utilise la fonction occu() qui a besoin de 2 arguments :
formula : il faut écrire 2 formules mathématiques qui indiquent respectivement l’équation de la détection, puis cette de l’occupation. une formule commence pas un signe tilde “~” qui signifie “en fonction”. Vous pouvez paramétrer \(\Psi\) et \(p\) en fonction d’une variable (en écrivant “~var”), ou juste demander de les calculer (en écrivant “~1”).
data : l’objet de format unmarkedFrameOccu que vous
venez de créer.
occu.m1 <- occu(formula = ~1 # detection en premier
~1, # occupation en second,
data = sample.unmarkedFrame_simple)
summary(occu.m1) ##
## Call:
## occu(formula = ~1 ~ 1, data = sample.unmarkedFrame_simple)
##
## Occupancy (logit-scale):
## Estimate SE z P(>|z|)
## 2.23 0.484 4.6 4.19e-06
##
## Detection (logit-scale):
## Estimate SE z P(>|z|)
## -0.343 0.0921 -3.73 0.000193
##
## AIC: 708.4961
## Number of sites: 50
## optim convergence code: 0
## optim iterations: 24
## Bootstrap iterations: 0
Pour avoir une valeur réelle de la probabilité d’occupation (\(\Psi\)) :
Pour avoir une valeur réelle de la probabilité de détection (\(p\)) :
Ainsi, nous avons construit un modèle d’occupation très simple pour une seule saison et extrait les véritables paramètres prédisant la probabilité d’occupation (~0,9) et la probabilité de détection (~0,41). En d’autres termes, nous prévoyons que l’espèce sera présente dans environ 90 % des sites et qu’elle sera détectée (lorsqu’elle est présente) environ 41 % du temps.
Avant de prendre en compte ces résultats, il faut vérifier l’adéquation du modèle aux données. Si l’adéquation nous permettra de vérifier que modèle single-season occupancy peut-être utilisé pour estimer \(\Psi\) et \(p\) de ce suivi.
La qualité d’ajustement du modèle aux données (goodness-of-fit), est utilisé pour tester le degré d’ajustement du modèle aux données observées. Dans le cadre des modèles single-season occupancy, la méthode la plus courante pour tester la qualité de l’ajustement consiste à utiliser un test de MacKenzie-Bailey. Cette approche consiste à simuler des ensembles d’historiques de détection, en supposant que le modèle de détection s’ajuste correctement, puis à comparer la distribution binomiale des données simulées aux données réelles.
On va pouvoir tester, à l’aide d’une statistique du \(\chi{²}\), si les données de détection utilisées pour ajuster le modèle contiennent plus de bruit extra-binomial que prévu.
library(AICcmodavg)
# Do Mackenzie-Bailey goodness of fit test for single-season occupancy model
m1_mb.gof.boot <- mb.gof.test(occu.m1, nsim = 1000)Le test du \(\chi²\) teste si le modèle est adapté aux données. (H0 –> la distribution du attendue est différente de la distribution observée). Ici, la p-valeur est très faible (< 0,001), donc on conclu que le modèle que l’on à crée n’est pas ajusté à nos données.
Nous avons vu que nous ne pouvons pas utiliser ce modèle car il n’est pas bien ajusté aux données. Il est raisonnable de penser que certains sites sont plus susceptibles d’abriter l’espèce cible que d’autres. De même, il est raisonnable de penser que certaines enquêtes sont plus susceptibles de détecter l’espèce cible que d’autres. Certainement que notre modèle pourrait être amélioré si nous avions des covariables pour faire varier \(\Psi\) et \(p\).