Occupancy model

Description: This program uses a Bayesian occupancy model to analyze occupancy of each route and year for each species of owl.


Write model

model.occ <- function(){
  # Priors for determining the probability of detection based on broadcast species
  beta.prebroad ~ dt(0, pow(2.5, -2), 1) #p(detection) before any broadcast
  beta.pacific ~  dt(0, pow(2.5, -2), 1)
  beta.mottled ~ dt(0, pow(2.5, -2), 1)
  beta.crested ~ dt(0, pow(2.5, -2), 1)
  beta.bw ~ dt(0, pow(2.5, -2), 1)
  beta.spectacled ~ dt(0, pow(2.5, -2), 1)
  beta.whiskered ~ dt(0, pow(2.5, -2), 1)
  beta.gbarred ~ dt(0, pow(2.5, -2), 1)
  beta.stygian ~ dt(0, pow(2.5, -2), 1)
  beta.ghorned ~ dt(0, pow(2.5, -2), 1)



  for(hh in 1:n.route){
    for(tt in 1:n.year){
      #Hyperpriors for Psi ensure a flexible and uninformed prior
      logit.mu.psi[hh,tt] ~ dnorm(0, 0.2)
      mu.psi[hh,tt] <- exp(logit.mu.psi[hh,tt])/(1+exp(logit.mu.psi[hh,tt]))
      lnrho.psi[hh,tt] ~ dnorm(5,1)%_%T(0.01,10)
      rho.psi[hh,tt] <- exp(lnrho.psi[hh,tt])
      a.psi[hh,tt] <- mu.psi[hh,tt]*rho.psi[hh,tt]
      b.psi[hh,tt] <- rho.psi[hh,tt]-(mu.psi[hh,tt]*rho.psi[hh,tt])


      # Prior for Psi, which will vary by route (hh) and year (tt)
      psi[hh,tt] ~ dbeta(a.psi[hh,tt], b.psi[hh,tt])%_%T(0.0001,0.99)


      for(ii in 1:n.survey){ # 1 to 3 surveys per year
        for(jj in 1:10){ # 10 stations per route
          for(kk in 1:n.broadcast){ # before or after broadcast

            # Function that creates logistic equation for p(detection)

            # p = p(detection), which varies by route, year, survey, station, and 
            #       broadcast period (pre- or post-broadcast)
            p[hh,tt,ii,jj,kk] <- exp(logit.p[hh,tt,ii,jj,kk])/
              (1+exp(logit.p[hh,tt,ii,jj,kk]))

            # Logistic regression equation
            logit.p[hh,tt,ii,jj,kk] <- 
              beta.prebroad*ks.prebroad[hh,jj,kk]+
              beta.pacific*ks.pacific[hh,jj,kk]+
              beta.mottled*ks.mottled[hh,jj,kk]+
              beta.crested*ks.crested[hh,jj,kk]+
              beta.bw*ks.bw[hh,jj,kk]+
              beta.spectacled*ks.spectacled[hh,jj,kk]+
              beta.whiskered*ks.whiskered[hh,jj,kk]+
              beta.gbarred*ks.gbarred[hh,jj,kk]+
              beta.stygian*ks.stygian[hh,jj,kk]+
              beta.ghorned*ks.ghorned[hh,jj,kk]

          }
        }
      }
    }
  }



  # Likelihood
  for(hh in 1:n.route){ # 6 routes
    for(tt in 1:n.year){ # all years



      for(ii in 1:n.survey){ # 1 to 3 surveys per year

        # Occupancy by route and year based on 
        #     psi, probability of occupancy for each route/year
        z[hh,tt,ii] ~ dbern(psi[hh,tt]) 



        for(jj in 1:n.station){ # 10 stations per route


          for(kk in 1:n.broadcast){ # before or after broadcast
            # Detection by route, year, survey station, and broadcast period

            # Binary observations by route, year, survey, station, pre/post broadcast
            y[hh,tt,ii,jj,kk] ~ 
              dbern(eff.p[hh,tt,ii,jj,kk])

            # Effective p(detection), which depends on occupany (z) = 1 for 
            #    that route/year/survey/station
            eff.p[hh,tt,ii,jj,kk] <- p[hh,tt,ii,jj,kk]*z[hh,tt,ii]

          }
        }
      }
    }
  }
}

Footer

Session Info

devtools::session_info()
## ─ Session info ─────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 4.0.3 (2020-10-10)
##  os       macOS Big Sur 10.16         
##  system   x86_64, darwin17.0          
##  ui       RStudio                     
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/Chicago             
##  date     2021-01-14                  
## 
## ─ Packages ─────────────────────────────────────────────────────────────────────
##  package      * version date       lib source        
##  abind          1.4-5   2016-07-21 [1] CRAN (R 4.0.2)
##  assertthat     0.2.1   2019-03-21 [1] CRAN (R 4.0.2)
##  backports      1.2.1   2020-12-09 [1] CRAN (R 4.0.2)
##  base64enc      0.1-3   2015-07-28 [1] CRAN (R 4.0.2)
##  boot           1.3-25  2020-04-26 [1] CRAN (R 4.0.3)
##  callr          3.5.1   2020-10-13 [1] CRAN (R 4.0.2)
##  cellranger     1.1.0   2016-07-27 [1] CRAN (R 4.0.2)
##  checkmate      2.0.0   2020-02-06 [1] CRAN (R 4.0.2)
##  chron        * 2.3-56  2020-08-18 [1] CRAN (R 4.0.2)
##  cli            2.2.0   2020-11-20 [1] CRAN (R 4.0.2)
##  cluster        2.1.0   2019-06-19 [1] CRAN (R 4.0.3)
##  coda         * 0.19-4  2020-09-30 [1] CRAN (R 4.0.2)
##  colorspace     2.0-0   2020-11-11 [1] CRAN (R 4.0.2)
##  crayon         1.3.4   2017-09-16 [1] CRAN (R 4.0.2)
##  data.table     1.13.6  2020-12-30 [1] CRAN (R 4.0.2)
##  desc           1.2.0   2018-05-01 [1] CRAN (R 4.0.2)
##  devtools     * 2.3.2   2020-09-18 [1] CRAN (R 4.0.2)
##  digest         0.6.27  2020-10-24 [1] CRAN (R 4.0.2)
##  dplyr        * 1.0.2   2020-08-18 [1] CRAN (R 4.0.2)
##  ellipsis       0.3.1   2020-05-15 [1] CRAN (R 4.0.2)
##  evaluate       0.14    2019-05-28 [1] CRAN (R 4.0.1)
##  ezknitr      * 0.6     2016-09-16 [1] CRAN (R 4.0.2)
##  fansi          0.4.1   2020-01-08 [1] CRAN (R 4.0.2)
##  farver         2.0.3   2020-01-16 [1] CRAN (R 4.0.2)
##  forcats        0.5.0   2020-03-01 [1] CRAN (R 4.0.2)
##  foreign        0.8-80  2020-05-24 [1] CRAN (R 4.0.3)
##  Formula      * 1.2-4   2020-10-16 [1] CRAN (R 4.0.2)
##  fs             1.5.0   2020-07-31 [1] CRAN (R 4.0.2)
##  gdata        * 2.18.0  2017-06-06 [1] CRAN (R 4.0.2)
##  generics       0.1.0   2020-10-31 [1] CRAN (R 4.0.2)
##  ggplot2      * 3.3.2   2020-06-19 [1] CRAN (R 4.0.2)
##  ggthemes     * 4.2.0   2019-05-13 [1] CRAN (R 4.0.2)
##  glue           1.4.2   2020-08-27 [1] CRAN (R 4.0.2)
##  gridExtra      2.3     2017-09-09 [1] CRAN (R 4.0.2)
##  gtable         0.3.0   2019-03-25 [1] CRAN (R 4.0.2)
##  gtools         3.8.2   2020-03-31 [1] CRAN (R 4.0.2)
##  haven          2.3.1   2020-06-01 [1] CRAN (R 4.0.2)
##  highr          0.8     2019-03-20 [1] CRAN (R 4.0.2)
##  Hmisc        * 4.4-2   2020-11-29 [1] CRAN (R 4.0.2)
##  hms            0.5.3   2020-01-08 [1] CRAN (R 4.0.2)
##  htmlTable      2.1.0   2020-09-16 [1] CRAN (R 4.0.2)
##  htmltools      0.5.0   2020-06-16 [1] CRAN (R 4.0.2)
##  htmlwidgets    1.5.3   2020-12-10 [1] CRAN (R 4.0.2)
##  ImportExport * 1.3     2020-09-21 [1] CRAN (R 4.0.2)
##  jpeg           0.1-8.1 2019-10-24 [1] CRAN (R 4.0.2)
##  knitr        * 1.30    2020-09-22 [1] CRAN (R 4.0.2)
##  labeling       0.4.2   2020-10-20 [1] CRAN (R 4.0.2)
##  lattice      * 0.20-41 2020-04-02 [1] CRAN (R 4.0.3)
##  latticeExtra   0.6-29  2019-12-19 [1] CRAN (R 4.0.2)
##  lifecycle      0.2.0   2020-03-06 [1] CRAN (R 4.0.2)
##  lubridate    * 1.7.9.2 2020-11-13 [1] CRAN (R 4.0.2)
##  magrittr       2.0.1   2020-11-17 [1] CRAN (R 4.0.2)
##  markdown       1.1     2019-08-07 [1] CRAN (R 4.0.2)
##  Matrix         1.2-18  2019-11-27 [1] CRAN (R 4.0.3)
##  MCMCvis      * 0.14.0  2020-03-25 [1] CRAN (R 4.0.2)
##  memoise        1.1.0   2017-04-21 [1] CRAN (R 4.0.2)
##  munsell        0.5.0   2018-06-12 [1] CRAN (R 4.0.2)
##  nnet           7.3-14  2020-04-26 [1] CRAN (R 4.0.3)
##  pillar         1.4.7   2020-11-20 [1] CRAN (R 4.0.2)
##  pkgbuild       1.2.0   2020-12-15 [1] CRAN (R 4.0.2)
##  pkgconfig      2.0.3   2019-09-22 [1] CRAN (R 4.0.2)
##  pkgload        1.1.0   2020-05-29 [1] CRAN (R 4.0.2)
##  png            0.1-7   2013-12-03 [1] CRAN (R 4.0.2)
##  prettyunits    1.1.1   2020-01-24 [1] CRAN (R 4.0.2)
##  processx       3.4.5   2020-11-30 [1] CRAN (R 4.0.2)
##  ps             1.5.0   2020-12-05 [1] CRAN (R 4.0.2)
##  purrr          0.3.4   2020-04-17 [1] CRAN (R 4.0.2)
##  R.methodsS3    1.8.1   2020-08-26 [1] CRAN (R 4.0.2)
##  R.oo           1.24.0  2020-08-26 [1] CRAN (R 4.0.2)
##  R.utils        2.10.1  2020-08-26 [1] CRAN (R 4.0.2)
##  R2jags       * 0.6-1   2020-04-27 [1] CRAN (R 4.0.2)
##  R2WinBUGS      2.1-21  2015-07-30 [1] CRAN (R 4.0.2)
##  R6             2.5.0   2020-10-28 [1] CRAN (R 4.0.2)
##  RColorBrewer   1.1-2   2014-12-07 [1] CRAN (R 4.0.2)
##  Rcpp           1.0.5   2020-07-06 [1] CRAN (R 4.0.2)
##  readxl       * 1.3.1   2019-03-13 [1] CRAN (R 4.0.2)
##  remotes        2.2.0   2020-07-21 [1] CRAN (R 4.0.2)
##  rjags        * 4-10    2019-11-06 [1] CRAN (R 4.0.2)
##  rlang          0.4.9   2020-11-26 [1] CRAN (R 4.0.2)
##  rmarkdown      2.6     2020-12-14 [1] CRAN (R 4.0.2)
##  RODBC        * 1.3-17  2020-05-11 [1] CRAN (R 4.0.2)
##  rpart          4.1-15  2019-04-12 [1] CRAN (R 4.0.3)
##  rprojroot      2.0.2   2020-11-15 [1] CRAN (R 4.0.2)
##  rstudioapi     0.13    2020-11-12 [1] CRAN (R 4.0.2)
##  scales         1.1.1   2020-05-11 [1] CRAN (R 4.0.2)
##  sessioninfo    1.1.1   2018-11-05 [1] CRAN (R 4.0.2)
##  stringi        1.5.3   2020-09-09 [1] CRAN (R 4.0.2)
##  stringr        1.4.0   2019-02-10 [1] CRAN (R 4.0.2)
##  survival     * 3.2-7   2020-09-28 [1] CRAN (R 4.0.3)
##  testthat       3.0.1   2020-12-17 [1] CRAN (R 4.0.2)
##  tibble         3.0.4   2020-10-12 [1] CRAN (R 4.0.2)
##  tidyr        * 1.1.2   2020-08-27 [1] CRAN (R 4.0.2)
##  tidyselect     1.1.0   2020-05-11 [1] CRAN (R 4.0.2)
##  usethis      * 2.0.0   2020-12-10 [1] CRAN (R 4.0.2)
##  utf8           1.1.4   2018-05-24 [1] CRAN (R 4.0.2)
##  vctrs          0.3.6   2020-12-17 [1] CRAN (R 4.0.2)
##  withr          2.3.0   2020-09-22 [1] CRAN (R 4.0.2)
##  writexl        1.3.1   2020-08-26 [1] CRAN (R 4.0.2)
##  xfun           0.19    2020-10-30 [1] CRAN (R 4.0.2)
##  yaml           2.2.1   2020-02-01 [1] CRAN (R 4.0.2)
## 
## [1] /Library/Frameworks/R.framework/Versions/4.0/Resources/library

This document was “spun” with:

ezspin(file = “programs/b_occupancy_model_global.R”, out_dir = “output”, fig_dir = “figures”, keep_md = F)