jags.samples.RdFunction to extract random samples from the posterior distribution
of the parameters of a jags model.
jags.samples(model, variable.names, n.iter, thin = 1,
type="trace", force.list=FALSE, ...)a jags model object
a character vector giving the names of variables to be monitored
number of iterations to monitor
thinning interval for monitors
type of monitor (can be vectorised)
option to consistently return a named list of monitor types even if a single monitor type is requested
optional arguments passed to the update method for jags model objects
The jags.samples function creates monitors for the given
variables, runs the model for n.iter iterations and returns
the monitored samples.
A list of mcarray objects, with one element for each
element of the variable.names argument. If more than
one type of monitor is requested (or if force.list is TRUE)
then the return value will be a (named) list of lists of
mcarray objects, with one element for each monitor type.
data(LINE)
LINE$recompile()
#> Compiling model graph
#> Resolving undeclared variables
#> Allocating nodes
#> Graph information:
#> Observed stochastic nodes: 5
#> Unobserved stochastic nodes: 3
#> Total graph size: 36
#>
#> Initializing model
#>
LINE.samples <- jags.samples(LINE, c("alpha","beta","sigma"),
n.iter=1000)
LINE.samples
#> $alpha
#> mcarray:
#> [1] 3.006265
#>
#> Marginalizing over: iteration(1000),chain(2)
#>
#> $beta
#> mcarray:
#> [1] 0.7949662
#>
#> Marginalizing over: iteration(1000),chain(2)
#>
#> $sigma
#> mcarray:
#> [1] 1.006746
#>
#> Marginalizing over: iteration(1000),chain(2)
#>
LINE.samples <- jags.samples(LINE, c("alpha","beta","sigma"),
force.list=TRUE, n.iter=1000)
LINE.samples
#> $trace
#> $trace$alpha
#> mcarray:
#> [1] 2.994909
#>
#> Marginalizing over: iteration(1000),chain(2)
#>
#> $trace$beta
#> mcarray:
#> [1] 0.7942458
#>
#> Marginalizing over: iteration(1000),chain(2)
#>
#> $trace$sigma
#> mcarray:
#> [1] 1.016406
#>
#> Marginalizing over: iteration(1000),chain(2)
#>
#>
LINE.samples <- jags.samples(LINE, c("alpha","alpha"),
n.iter=1000, type=c("trace","mean"))
LINE.samples$trace
#> $alpha
#> mcarray:
#> [1] 3.008104
#>
#> Marginalizing over: iteration(1000),chain(2)
#>
LINE.samples$mean
#> $alpha
#> mcarray:
#> [1] 3.008104
#>
#> Marginalizing over: chain(2)
#>