Using the same covariates for abundance and detection probability

636 views
Skip to first unread message

Kristen Kirkby

unread,
Jun 25, 2012, 6:11:05 PM6/25/12
to unma...@googlegroups.com
Hello,

I've looked around and haven't seen this addressed anywhere, but please let me know if it's already been covered.

I'm modeling the abundance and detection probability for fish in surveyed pools in a closed population within one season.  I have a few habitat covariates (pool depth, pool area, the amount of woody structure) that I think likely affect both the abundance of the fish, as well as my ability to detect them from survey to survey.  My repeated counts were conducted over the space of just a couple days, so habitat variables were only measured once, and I would just be repeating one value for all survey occasions within each pool.  Is there a problem with using the same covariates to model estimates of both detection probability and abundance?

Thanks very much for your thoughts and advice!

Kristen Kirkby

Jeffrey Royle

unread,
Jun 25, 2012, 9:19:30 PM6/25/12
to unma...@googlegroups.com
hi Kristen, I think this paper by Marc Kery addresses this issue:
 
@article{kery2008estimating,
  title={Estimating abundance from bird counts: binomial mixture models uncover complex covariate relationships},
  author={K{\'e}ry, M.},
  journal={The Auk},
  volume={125},
  number={2},
  pages={336--345},
  year={2008},
  publisher={BioOne}
}
link to published article:
 
 
regards,
andy

Kery Marc

unread,
Jun 26, 2012, 1:50:33 AM6/26/12
to unma...@googlegroups.com
hi Kristen,
 
as Andy says, it is not a problem, neither for a model for abundance, nor for one of occupancy. Indeed, this is one of the great benefits of a modeling framework that separately models the state and the observation processes, that effects of a single covariate on both model components can be teased apart.
 
BTW, it is easy to convince yourself of this by quickly simulating data and then analysing them. Below is a function to generate data from a particularly ugly system: where the effects of a single covariate partly cancel each other out in the observed counts.
 
Regards  --  Marc
 

# Define function for generating binomial-mix model data

data.fn <- function(R = 200, T = 3, xmin = -1, xmax = 1, alpha0 = 1, alpha1 = 3, beta0 = 0, beta1 = -5){

 

# R: number of sites at which counts were made (= number of spatial reps)

# T: number of times that counts were made at each site
# (= number of temporal reps)

# xmin, xmax: define range of the covariate X

# alpha0 and alpha1: intercept and slope of log-linear regression
# relating abundance to the site covariate A

# beta0 and beta1: intercept and slope of logistic-linear regression
# of detection probability on A

 

   y <- array(dim = c(R, T)) # Array for counts

 

   # Ecological process

   # Covariate values: sort for ease of presentation

   X <- sort(runif(n = R, min = xmin, max = xmax))

 

   # Relationship expected abundance – covariate

   lam <- exp(alpha0 + alpha1 * X)

 

   # Add Poisson noise: draw N from Poisson(lambda)

   N <- rpois(n = R, lambda = lam)

   table(N)                # Distribution of abundances across sites

   sum(N > 0) / R          # Empirical occupancy

   totalN <- sum(N)  ;  totalN

 

   # Observation process

   # Relationship detection prob – covariate

   p <- plogis(beta0 + beta1 * X)

 

   # Make a ‘census’ (i.e., go out and count things)

   for (i in 1:T){

      y[,i] <- rbinom(n = R, size = N, prob = p)

      }

 

   # Naïve regression

   naive.pred <- exp(predict(glm(apply(y, 1, max) ~ X + I(X^2), family =   poisson)))

 

   # Plot features of the simulated system

   par(mfrow = c(2, 2))

   plot(X, lam, main = "Expected abundance", xlab = "Covariate", ylab = "lambda", las = 1, type = "l", col = "red", lwd = 3, frame.plot = FALSE)

   plot(X, N, main = "Realised abundance", xlab = "Covariate", ylab = "N", las = 1, frame.plot = FALSE, col = "red", cex = 1.2)

   plot(X, p, ylim = c(0, 1), main = "Detection probability", xlab = "Covariate", ylab = "p", type = "l", col = "red", lwd = 3, las = 1, frame.plot = FALSE)

   plot(X, naive.pred, main = "Actual counts \n and naïve regression", xlab = "Covariate", ylab = "Relative abundance", ylim = c(min(y), max(y)), type = "l", lty = 2, lwd = 4, col = "blue", las = 1, frame.plot = FALSE)

points(rep(X, T), y, col = "black", cex = 1.2)

 

   # Return stuff

   return(list(R = R, T = T, X = X, alpha0 = alpha0, alpha1 = alpha1, beta0 = beta0, beta1 = beta1, lam = lam, N = N, totalN = totalN, p = p, y = y))

   }

 

To execute, do this:

data <- data.fn()

 
 
 

______________________________________________________________
 
Marc Kéry
Tel. ++41 41 462 97 93
marc...@vogelwarte.ch
www.vogelwarte.ch
 
Swiss Ornithological Institute | Seerose 1 | CH-6204 Sempach | Switzerland
______________________________________________________________
 
*** Introductory book on Bayesian statistical modeling: Kéry (2010), Introduction to WinBUGS for Ecologists, Academic Press; see www.mbr-pwrc.usgs.gov/pubanalysis/kerybook
*** New book on Bayesian statistical modeling: Kéry & Schaub (2012), Bayesian Population Analysis using WinBUGS, Academic Press; see www.vogelwarte.ch/bpa
 

From: unma...@googlegroups.com [unma...@googlegroups.com] on behalf of Jeffrey Royle [jar...@gmail.com]
Sent: 26 June 2012 03:19
To: unma...@googlegroups.com
Subject: Re: [unmarked] Using the same covariates for abundance and detection probability

Kristen Kirkby

unread,
Jun 26, 2012, 7:10:41 PM6/26/12
to unma...@googlegroups.com
Andy and Marc, 

Thanks very much for the reference and the code, that gets at just what I wanted to know!

Kristen 
Reply all
Reply to author
Forward
0 new messages