Description: This program uses a Bayesian occupancy model to analyze occupancy of each route and year for each species of owl.
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]
}
}
}
}
}
}
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)