| toad | R Documentation |
This example estimates the parameter for the toad example. The model simulates the movement of an amphibian called Fowler's toad. The model is proposed by \insertCiteMarchand2017;textualBSL. This example includes both simulated and real data. The real data is obtained from the supplementary material of \insertCiteMarchand2017;textualBSL. The journal article \insertCiteAn2022;textualBSL provides a full description of how to use this package for the toad example.
data(toad) toad_sim( theta, ntoads, ndays, model = 1, d0 = 100, na = matrix(FALSE, ndays, ntoads) ) toad_sum(X, lag = c(1, 2, 4, 8), p = seq(0, 1, 0.1)) toad_prior(theta)
theta |
A vector of proposed model parameters, α, γ and p_0. |
ntoads |
The number of toads to simulate in the observation. |
ndays |
The number of days observed. |
model |
Which model to be used: 1 for the random return model, 2 for the nearest return model, and 3 for the distance-based return probability model. The default is 1. |
d0 |
Characteristic distance for model 3. Only used if |
na |
Logical. This is the index matrix for missing observations. By
default, |
X |
The data matrix. |
lag |
The lag of days to compute the summary statistics, default as 1, 2, 4 and 8. |
p |
The numeric vector of probabilities to compute the quantiles. |
The example includes the three different returning models of \insertCiteMarchand2017;textualBSL. Please see \insertCiteMarchand2017;textualBSL for a full description of the toad model, and also \insertCiteAn2018;textualBSL for Bayesian inference with the semi-BSL method.
toad_sim: Simulates data from the model, using C++ in the backend.
toad_sum: Computes the summary statistics for this example. The summary
statistics are the log differences between adjacent quantiles and also the median.
toad_prior: Evaluates the log prior at the chosen parameters.
A simulated dataset and a real dataset are provided in this example. Both datasets contain observations from 66 toads for 63 days. The simulated dataset is simulated with parameter θ = (1.7, 35, 0.6). This is the data used in \insertCiteAn2018;textualBSL. The real dataset is obtained from the supplementary data of \insertCiteMarchand2017;textualBSL.
data_simulated: A 63
\times 66 matrix of the observed
toad locations (simulated data).
data_real: A 63
\times 66 matrix of the observed
toad locations (real data).
cov: The covariance matrix of a multivariate normal random
walk proposal distribution used in the MCMC, in the form of a 3
\times 3 matrix.
theta0: A vector of suitable initial values of the parameters
for MCMC.
sim_args_simulated and sim_args_real: A list of the
arguments to pass into the simulation function.
ndays: The number of days observed.
ntoads: The total number of toads being observed.
model: Indicator of which model to be used.
na: Indicator matrix for missingness.
Ziwen An, Leah F. South and Christopher Drovandi
()
## Not run:
require(doParallel) # You can use a different package to set up the parallel backend
data(toad)
## run standard BSL for the simulated dataset
model1 <- newModel(fnSim = toad_sim, fnSum = toad_sum, theta0 = toad$theta0,
fnLogPrior = toad_prior, simArgs = toad$sim_args_simulated,
thetaNames = expression(alpha,gamma,p[0]))
paraBound <- matrix(c(1,2,0,100,0,0.9), 3, 2, byrow = TRUE)
# Performing BSL (reduce the number of iterations M if desired)
# Opening up the parallel pools using doParallel
cl <- makeCluster(min(detectCores() - 1,2))
registerDoParallel(cl)
resultToadSimulated <- bsl(toad$data_simulated, n = 1000, M = 10000, model = model1,
covRandWalk = toad$cov, logitTransformBound = paraBound,
parallel = TRUE, verbose = 1L, plotOnTheFly = 100)
stopCluster(cl)
registerDoSEQ()
show(resultToadSimulated)
summary(resultToadSimulated)
plot(resultToadSimulated, thetaTrue = toad$theta0, thin = 20)
## run standard BSL for the real dataset
model2 <- newModel(fnSim = toad_sim, fnSum = toad_sum, theta0 = toad$theta0,
fnLogPrior = toad_prior, simArgs = toad$sim_args_real,
thetaNames = expression(alpha,gamma,p[0]))
paraBound <- matrix(c(1,2,0,100,0,0.9), 3, 2, byrow = TRUE)
# Performing BSL (reduce the number of iterations M if desired)
# Opening up the parallel pools using doParallel
cl <- makeCluster(min(detectCores() - 1,2))
registerDoParallel(cl)
resultToadReal <- bsl(toad$data_real, n = 1000, M = 10000, model = model2,
covRandWalk = toad$cov, logitTransformBound = paraBound,
parallel = TRUE, verbose = 1L, plotOnTheFly = 100)
stopCluster(cl)
registerDoSEQ()
show(resultToadReal)
summary(resultToadReal)
plot(resultToadReal, thetaTrue = toad$theta0, thin = 20)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.