Simulate community (multispecies) joint occupancy-cover data
Source:R/ms_occu_cover.R
simulate_ms_occu_cover.RdPer-species joint occupancy-detection + cover model with Gaussian community
hyperpriors on the per-species coefficients of all three arms:
beta_occ_s ~ N(mu_occ, diag(sd_occ^2)),
beta_p_s ~ N(mu_p, diag(sd_p^2)),
beta_pos_s ~ N(mu_pos, diag(sd_pos^2)), then per cell
z_{s,i} ~ Bernoulli(psi_{s,i}), per visit
y_{s,i,j} | z = 1 ~ Bernoulli(p_{s,i,j}), and per detected visit
c_{s,i,j} ~ f_pos(eta_pos_{s,i,j}, disp). The site and visit covariates are
shared across species (community covariates). The returned y / y_pos are
3D arrays [n_sites x J x n_species] suitable for tobs() with
ms_occu_cover() (y_pos is NA where not detected).
Usage
simulate_ms_occu_cover(
n_species = 12,
N = 120,
J = 5,
n_occ_covs = 1,
n_det_covs = 1,
n_pos_covs = 1,
mu_occ = NULL,
mu_p = NULL,
mu_pos = NULL,
sd_occ = 0.5,
sd_p = 0.4,
sd_pos = 0.4,
positive = c("lognormal", "beta", "gaussian"),
phi = 30,
sigma_pos = 0.4,
seed = NULL
)Arguments
- n_species
Number of species (default 12).
- N
Number of sites / cells (default 120).
- J
Number of replicate visits (default 5).
- n_occ_covs, n_det_covs, n_pos_covs
Number of covariates on each arm (drawn IID standard normal, shared across species).
- mu_occ, mu_p, mu_pos
Community-mean coefficient vectors
c(intercept, slopes...)on each arm's link scale. Defaults pick weakly-informative values.- sd_occ, sd_p, sd_pos
Per-coefficient community SD on each arm (length 1, recycled, or one per coefficient). Default 0.5 / 0.4 / 0.4.
- positive
"lognormal"(default) or"beta".- phi
Beta precision when
positive = "beta"(default 30).- sigma_pos
Lognormal residual SD when
positive = "lognormal"(default 0.4).- seed
Optional integer seed.
Value
A list with y (3D detection array), y_pos (3D cover array, NA
where not detected), data (per-cell covariate frame), visit_data
(per-visit covariate frame, N*J rows in site-major order), species
(species names), and truth (community means / SDs, per-species
coefficients, the dispersion, and the latent state).
Examples
sim <- simulate_ms_occu_cover(n_species = 4, N = 30, J = 3, seed = 1)
dim(sim$y)