chkpt_stan {chkptstanr}  R Documentation 
Checkpoint Sampling: Stan
Description
Fit Bayesian models using Stan with checkpointing.
Usage
chkpt_stan(
model_code,
data,
iter_warmup = 1000,
iter_sampling = 1000,
iter_per_chkpt = 100,
iter_typical = 150,
parallel_chains = 2,
threads_per = 1,
chkpt_progress = TRUE,
control = NULL,
seed = 1,
path,
...
)
Arguments
model_code 
Character string corresponding to the Stan model. 
data 
A named list of R objects (like for RStan).
Further details can be found in 
iter_warmup 
(positive integer) The number of warmup iterations to run per chain (defaults to 1000). 
iter_sampling 
(positive integer) The number of postwarmup iterations to run per chain (defaults to 1000). 
iter_per_chkpt 
(positive integer). The number of iterations per
checkpoint. Note that 
iter_typical 
(positive integer) The number of iterations in the
initial warmup, which finds the socalled typical set.
This is an initial phase, and not included in

parallel_chains 
(positive integer) The maximum number of MCMC
chains to run in parallel. If parallel_chains is not
specified then the default is to look for the option

threads_per 
(positive integer) Number of threads to use in withinchain
parallelization (defaults to 
chkpt_progress 
logical. Should the 
control 
A named list of parameters to control the sampler's behavior.
It defaults to NULL so all the default values are used.
For a comprehensive overview see 
seed 
(positive integer). The seed for random number generation to make results reproducible. 
path 
Character string. The path to the folder, that is used for saving the checkpoints. 
... 
Currently ignored. 
Value
An objet of class chkpt_stan
Examples
## Not run:
# path for storing checkpoint info
path < create_folder(folder_name = "chkpt_folder_fit1")
stan_code < make_stancode(bf(formula = count ~ zAge + zBase * Trt + (1patient),
family = poisson()),
data = epilepsy)
stan_data < make_standata(bf(formula = count ~ zAge + zBase * Trt + (1patient),
family = poisson()),
data = epilepsy)
# "random" intercept
fit1 < chkpt_stan(model_code = stan_code,
data = stan_data,
iter_warmup = 1000,
iter_sampling = 1000,
iter_per_chkpt = 250,
path = path)
draws < combine_chkpt_draws(object = fit1)
posterior::summarise_draws(draws)
# eight schools example
# path for storing checkpoint info
path < create_folder(parent_folder = "chkpt_folder_fit2")
stan_code < "
data {
int<lower=0> n;
real y[n];
real<lower=0> sigma[n];
}
parameters {
real mu;
real<lower=0> tau;
vector[n] eta;
}
transformed parameters {
vector[n] theta;
theta = mu + tau * eta;
}
model {
target += normal_lpdf(eta  0, 1);
target += normal_lpdf(y  theta, sigma);
}
"
stan_data < schools.data < list(
n = 8,
y = c(28, 8, 3, 7, 1, 1, 18, 12),
sigma = c(15, 10, 16, 11, 9, 11, 10, 18)
)
fit2 < chkpt_stan(model_code = stan_code,
data = stan_data,
iter_warmup = 1000,
iter_sampling = 1000,
iter_per_chkpt = 250,
path = path)
draws < combine_chkpt_draws(object = fit2)
posterior::summarise_draws(draws)
## End(Not run)