Generator class for creating new instances of the SBC
R6 class.
SBC
An R6 object of type SBC
See vignette('intro-to-sbc', package = 'sbcrs') for an accessible introduction to simulation-based calibration.
$new(data, params, modeled_data, sampling)
Create a new SBC object, passing in functions to generate data and parameters, and draw samples.
data = function(seed) {}
A function with signature function(seed)
that returns a named list.
params = function(seed, data) {}
A function with signature function(seed, data)
that returns a named list.
modeled_data = function(seed, data, params) {}
A function with signature function(seed, data, params)
that returns a named list.
sampling = function(seed, data, params, modeled_data, iters) {}
A function with signature function(seed, data, params, modeled_data, iters)
that returns a stanfit
object run for iters
sampling iterations.
$calibrate(N, L, keep_stan_fit = TRUE)
Run the calibration procedure.
N
The number of times to simulate parameters and recover via MCMC.
L
The number of MCMC samples to retain when calculating rank statistics.
keep_stan_fit = TRUE
If TRUE
(the default), then the stan_fit
objects returned by the sampling
function are retained.
$summary(var = NULL)
Summarize results of a previous calibration. Optionally specify a parameter var
.
$plot(var = NULL)
Plot a histogram of ranks from a previous calibration. Optionally specify a parameter var
.
$calibrations
A list of N
calibrations created by calling $calibrate
. Each item is list with the following named elements:
Output from call to the data
function.
Output from call to the params
function.
Output from call to the modeled_data
function.
A stanfit object returned from call to the sampling
function if keep_stan_fit = TRUE
, otherwise NULL.
A named list matching items in params
. Values express the number of samples out of a maximum L
with sampled$var < param$var
, where sampled$var
indicates a vector of L
samples of parameter var
.
The smallest effective sample size for any parameter in any of the stan_fit
objects.
The number of MCMC iterations (before thinning) in the stan_fit
object.
The value of seed
passed to the data, parameter, and sampling functions.
if (FALSE) { sbc <- SBC$new( data = function(seed) { list(n = 10) }, params = function(seed, data) { list(mu = rnorm(1)) }, modeled_data = function(seed, data, params) { list(y = rnorm(data$n, mu, 1)) }, sampling = function(seed, data, params, modeled_data) { stan_object <- NULL # usually a call to rstan::sampling() stan_object } ) }