The as.shinystan
function creates shinystan
objects that can be used with launch_shinystan
and various
other functions in the shinystan package. as.shinystan
is a
generic for which the shinystan package provides several methods.
Currently methods are provided for creating shinystan
objects from
arrays, lists of matrices, stanfit
objects (rstan),
stanreg
objects (rstanarm), and mcmc.list
objects
(coda).
is.shinystan
tests if an object is a shinystan
object.
as.shinystan(X, ...)
is.shinystan(X)
# S4 method for array
as.shinystan(
X,
model_name = "unnamed model",
warmup = 0,
burnin = 0,
param_dims = list(),
model_code = NULL,
note = NULL,
sampler_params = NULL,
algorithm = NULL,
max_treedepth = NULL,
...
)
# S4 method for list
as.shinystan(
X,
model_name = "unnamed model",
warmup = 0,
burnin = 0,
param_dims = list(),
model_code = NULL,
note = NULL,
sampler_params = NULL,
algorithm = NULL,
max_treedepth = NULL,
...
)
# S4 method for mcmc.list
as.shinystan(
X,
model_name = "unnamed model",
warmup = 0,
burnin = 0,
param_dims = list(),
model_code = NULL,
note = NULL,
...
)
# S4 method for stanfit
as.shinystan(X, pars, model_name = X@model_name, note = NULL, ...)
# S4 method for stanreg
as.shinystan(X, ppd = TRUE, seed = 1234, model_name = NULL, note = NULL, ...)
# S4 method for CmdStanMCMC
as.shinystan(X, pars = NULL, model_name = NULL, note = NULL, ...)
For as.shinystan
, an object to be converted to a
shinystan
object. See the Methods section below. For
is.shinystan
, an object to check.
Arguments passed to the individual methods.
A string giving a name for the model.
The number of iterations to treat as warmup. Should be
0
if warmup iterations are not included in X
.
Deprecated. Use warmup
instead. The burnin
argument will be removed in a future release.
Rarely used and never necessary. A named list giving the
dimensions for all parameters. For scalar parameters use 0
as the
dimension. See Examples.
Optionally, a character string with the code used to run
the model. This can also be added to your shinystan
object later
using the model_code
function. See
model_code
for additional formatting instructions.
After launching the app the code will be viewable in the Model
Code tab. For stanfit
(rstan) and stanreg
(rstanarm) objects the model code is automatically retrieved from the
object.
Optionally, text to display on the Notepad page in the
'ShinyStan' GUI (stored in user_model_info
slot of the
shinystan
object).
Rarely used and never
necessary. If using the as.shinystan
method for arrays or lists,
these arguments can be used to manually provide information that is
automatically retrieved from a stanfit object when using the
as.shinystan
method for stanfit objects. If specified,
sampler_params
must have the same structure as an object returned by
get_sampler_params
(rstan), which is a list of
matrices, with one matrix per chain. algorithm
, if specified, must
be either "NUTS"
or "HMC"
(static HMC). If algorithm
is "NUTS"
then max_treedepth
(an integer indicating the
maximum allowed treedepth when the model was fit) must also be provided.
For stanfit objects (rstan), an optional character vector
specifying which parameters should be included in the shinystan
object.
For stanreg
objects (rstanarm), ppd
(logical) indicates whether to draw from the posterior predictive
distribution before launching the app. The default is TRUE
,
although for very large objects it can be convenient to set it to
FALSE
as drawing from the posterior predictive distribution can be
time consuming. If ppd
is TRUE
then graphical posterior
predictive checks are available when 'ShinyStan' is launched.
Passed to pp_check
(rstanarm) if
ppd
is TRUE
.
as.shinystan
returns a shinystan
object, which is an
instance of S4 class "shinystan"
.
is.shinystan
returns TRUE
if the tested object is a
shinystan
object and FALSE
otherwise.
as.shinystan,array-method
: Create a shinystan
object from a 3-D
array
of simulations. The array should have dimensions
corresponding to iterations, chains, and parameters, in that order.
as.shinystan,list-method
: Create a shinystan
object from a
list
of matrices. Each matrix
(or 2-D array)
should contain the simulations for an individual chain and all of the
matrices should have the same number of iterations (rows) and parameters
(columns). Parameters should have the same names and be in the same order.
as.shinystan,mcmc.list-method
: Create a shinystan
object from an
mcmc.list
object (coda).
as.shinystan,stanfit-method
: Create a shinystan
object from a
stanfit
object (rstan). Fewer optional arguments
are available for this method because all important information can be
taken automatically from the stanfit
object.
as.shinystan,stanreg-method
: Create a shinystan
object from a
stanreg
object (rstanarm).
as.shinystan,CmdStanMCMC-method
: Create a shinystan
object from a
CmdStanMCMC
object (cmdstanr).
launch_shinystan
to launch the 'ShinyStan' interface
using a particular shinystan
object.
drop_parameters
to remove parameters from a
shinystan
object.
generate_quantity
to add a new quantity to a
shinystan
object.
if (FALSE) {
sso <- as.shinystan(X, ...) # replace ... with optional arguments or omit it
launch_shinystan(sso)
}
if (FALSE) {
########################
### list of matrices ###
########################
# Generate some fake data
chain1 <- cbind(beta1 = rnorm(100), beta2 = rnorm(100), sigma = rexp(100))
chain2 <- cbind(beta1 = rnorm(100), beta2 = rnorm(100), sigma = rexp(100))
sso <- as.shinystan(list(chain1, chain2))
launch_shinystan(sso)
# We can also specify some or all of the optional arguments
# note: in order to use param_dims we need to rename 'beta1' and 'beta2'
# to 'beta[1]' and 'beta[2]'
colnames(chain1) <- colnames(chain2) <- c(paste0("beta[",1:2,"]"), "sigma")
sso2 <- as.shinystan(list(chain1, chain2),
model_name = "Example", warmup = 0,
param_dims = list(beta = 2, sigma = 0))
launch_shinystan(sso2)
}
if (FALSE) {
######################
### stanfit object ###
######################
library("rstan")
fit <- stan_demo("eight_schools")
sso <- as.shinystan(fit, model_name = "example")
}
if (FALSE) {
######################
### stanreg object ###
######################
library("rstanarm")
example("example_model")
sso <- as.shinystan(example_model)
launch_shinystan(sso)
}