Draw samples from the model defined by class stanmodel
.
# S4 method for stanmodel
sampling(object, data = list(), pars = NA,
chains = 4, iter = 2000, warmup = floor(iter/2), thin = 1,
seed = sample.int(.Machine$integer.max, 1),
init = 'random', check_data = TRUE,
sample_file = NULL, diagnostic_file = NULL, verbose = FALSE,
algorithm = c("NUTS", "HMC", "Fixed_param"),
control = NULL, include = TRUE,
cores = getOption("mc.cores", 1L),
open_progress = interactive() && !isatty(stdout()) &&
!identical(Sys.getenv("RSTUDIO"), "1"),
show_messages = TRUE, ...)
An object of S4 class stanfit
representing
the fitted results. Slot mode
for this object
indicates if the sampling is done or not.
sampling
signature(object = "stanmodel")
Call a sampler (NUTS, HMC, or Fixed_param depending on parameters)
to draw samples from the model defined by S4 class stanmodel
given the data, initial values, etc.
An object of class stanmodel
.
A named list
or environment
providing the data for the model or a character vector
for all the names of objects used as data.
See the Passing data to Stan section in stan
.
A vector of character strings specifying parameters of interest.
The default is NA
indicating all parameters in the model.
If include = TRUE
, only samples for parameters named in pars
are stored in the fitted results. Conversely, if include = FALSE
,
samples for all parameters except those named in pars
are
stored in the fitted results.
A positive integer specifying the number of Markov chains. The default is 4.
A positive integer specifying the number of iterations for each chain (including warmup). The default is 2000.
A positive integer specifying the number of warmup (aka burnin)
iterations per chain. If step-size adaptation is on (which it is by default),
this also controls the number of iterations for which adaptation is run (and
hence these warmup samples should not be used for inference). The number of
warmup iterations should be smaller than iter
and the default is
iter/2
.
A positive integer specifying the period for saving samples. The default is 1, which is usually the recommended value.
The seed for random number generation. The default is generated
from 1 to the maximum integer supported by R on the machine. Even if
multiple chains are used, only one seed is needed, with other chains having
seeds derived from that of the first chain to avoid dependent samples.
When a seed is specified by a number, as.integer
will be applied to it.
If as.integer
produces NA
, the seed is generated randomly.
The seed can also be specified as a character string of digits, such as
"12345"
, which is converted to integer.
Initial values specification. See the detailed documentation for
the init argument in stan
.
Logical, defaulting to TRUE
. If TRUE
the data will be preprocessed; otherwise not.
See the Passing data to Stan section in stan
.
An optional character string providing the name of a file.
If specified the draws for all parameters and other saved quantities
will be written to the file. If not provided, files are not created.
When the folder specified is not writable, tempdir()
is used.
When there are multiple chains, an underscore and chain number are appended
to the file name prior to the .csv
extension.
An optional character string providing the name of a file.
If specified the diagnostics data for all parameters will be written
to the file. If not provided, files are not created. When the folder specified
is not writable, tempdir()
is used. When there are multiple chains,
an underscore and chain number are appended to the file name prior to the
.csv
extension.
TRUE
or FALSE
: flag indicating whether
to print intermediate output from Stan on the console, which might
be helpful for model debugging.
One of sampling algorithms that are implemented in Stan.
Current options are "NUTS"
(No-U-Turn sampler, Hoffman and Gelman 2011, Betancourt 2017),
"HMC"
(static HMC), or "Fixed_param"
. The default and
preferred algorithm is "NUTS"
.
A named list
of parameters to control the sampler's
behavior. See the details in the documentation for the control
argument
in stan
.
Logical scalar defaulting to TRUE
indicating
whether to include or exclude the parameters given by the
pars
argument. If FALSE
, only entire multidimensional
parameters can be excluded, rather than particular elements of them.
Number of cores to use when executing the chains in parallel,
which defaults to 1 but we recommend setting the mc.cores
option
to be as many processors as the hardware and RAM allow (up to the
number of chains).
Logical scalar that only takes effect if
cores > 1
but is recommended to be TRUE
in interactive
use so that the progress of the chains will be redirected to a file
that is automatically opened for inspection. For very short runs, the
user might prefer FALSE
.
Either a logical scalar (defaulting to TRUE
)
indicating whether to print the summary of Informational Messages to
the screen after a chain is finished or a character string naming a path
where the summary is stored. Setting to FALSE
is not recommended
unless you are very sure that the model is correct up to numerical
error.
Additional arguments can be chain_id
, init_r
,
test_grad
, append_samples
, refresh
,
enable_random_init
. See the documentation in stan
.
stanmodel
, stanfit
, stan
if (FALSE) {
m <- stan_model(model_code = 'parameters {real y;} model {y ~ normal(0,1);}')
f <- sampling(m, iter = 100)
}
Run the code above in your browser using DataLab