set.seed(123)
J.x <- 10
J.y <- 10
J <- J.x * J.y
# Number of distance bins from which to simulate data.
n.bins <- 5
# Length of each bin. This should be of length n.bins
bin.width <- c(.10, .10, .20, .3, .1)
# Abundance coefficients
beta <- c(1.0, 0.2, 0.3, -0.2)
p.abund <- length(beta)
# Detection coefficients
alpha <- c(-1.0, -0.3)
p.det <- length(alpha)
# Detection decay function
det.func <- 'halfnormal'
mu.RE <- list()
p.RE <- list()
sp <- TRUE
phi <- 3 / .5
sigma.sq <- 0.8
cov.model <- 'exponential'
family <- 'NB'
kappa <- 0.1
offset <- 1.8
transect <- 'point'
dat <- simDS(J.x = J.x, J.y = J.y, n.bins = n.bins, bin.width = bin.width,
beta = beta, alpha = alpha, det.func = det.func, kappa = kappa,
mu.RE = mu.RE, p.RE = p.RE, sp = sp,
offset = offset, transect = transect, phi = phi, sigma.sq = sigma.sq,
cov.model = cov.model)
y <- dat$y
X <- dat$X
X.re <- dat$X.re
X.p <- dat$X.p
X.p.re <- dat$X.p.re
dist.breaks <- dat$dist.breaks
coords <- dat$coords
covs <- cbind(X, X.p)
colnames(covs) <- c('int.abund', 'abund.cov.1', 'abund.cov.2', 'abund.cov.3',
'int.det', 'det.cov.1')
data.list <- list(y = y,
covs = covs,
dist.breaks = dist.breaks,
coords = coords,
offset = offset)
# Priors
prior.list <- list(beta.normal = list(mean = 0, var = 10),
alpha.normal = list(mean = 0,
var = 10),
kappa.unif = c(0, 100),
phi.unif = c(3 / 1, 3 / .1),
sigma.sq.ig = c(2, 1))
# Starting values
inits.list <- list(alpha = 0,
beta = 0,
kappa = 1,
phi = 3 / .5,
sigma.sq = 1)
# Tuning values
tuning <- list(beta = 0.1, alpha = 0.1, beta.star = 0.3, alpha.star = 0.1,
kappa = 0.2, phi = 1, w = 1)
out <- spDS(abund.formula = ~ abund.cov.1 + abund.cov.2 + abund.cov.3,
det.formula = ~ det.cov.1,
data = data.list,
n.batch = 10,
batch.length = 25,
inits = inits.list,
family = 'NB',
det.func = 'halfnormal',
transect = 'point',
cov.model = 'exponential',
NNGP = TRUE,
n.neighbors = 5,
tuning = tuning,
priors = prior.list,
accept.rate = 0.43,
n.omp.threads = 1,
verbose = TRUE,
n.report = 100,
n.burn = 100,
n.thin = 1,
n.chains = 1)
summary(out)
Run the code above in your browser using DataLab