stanfit-method-traceplot.RdDraw the traceplot corresponding to one or more Markov chains, providing a visual way to inspect sampling behavior and assess mixing across chains and convergence.
<!-- %% traceplot(object, \dots) -->
# S4 method for stanfit
traceplot(object, pars, include = TRUE, unconstrain = FALSE,
inc_warmup = FALSE, window = NULL, nrow = NULL, ncol = NULL, ...)signature(object = "stanfit")
An instance of class stanfit.
A character vector of parameter names. Defaults to all parameters or the first 10 parameters (if there are more than 10).
Should the parameters given by the pars argument be
included (the default) or excluded from the plot? Only relevant if
pars is not missing.
TRUE or FALSE, indicating whether
the warmup sample are included in the trace plot; defaults to FALSE.
A vector of length 2. Iterations between window[1]
and window[2] will be shown in the plot. The default is to
show all iterations if inc_warmup is TRUE and all iterations
from the sampling period only if inc_warmup is FALSE. If
inc_warmup is FALSE the iterations specified in window
should not include iterations from the warmup period.
Should parameters be plotted on the unconstrained space?
Defaults to FALSE.
Passed to facet_wrap.
Optional arguments to pass to geom_path
(e.g. size, linetype, alpha, etc.).
A ggplot object that can be further customized
using the ggplot2 package.
if (FALSE) {
# Create a stanfit object from reading CSV files of samples (saved in rstan
# package) generated by funtion stan for demonstration purpose from model as follows.
#
excode <- '
transformed data {
real y[20];
y[1] <- 0.5796; y[2] <- 0.2276; y[3] <- -0.2959;
y[4] <- -0.3742; y[5] <- 0.3885; y[6] <- -2.1585;
y[7] <- 0.7111; y[8] <- 1.4424; y[9] <- 2.5430;
y[10] <- 0.3746; y[11] <- 0.4773; y[12] <- 0.1803;
y[13] <- 0.5215; y[14] <- -1.6044; y[15] <- -0.6703;
y[16] <- 0.9459; y[17] <- -0.382; y[18] <- 0.7619;
y[19] <- 0.1006; y[20] <- -1.7461;
}
parameters {
real mu;
real<lower=0, upper=10> sigma;
vector[2] z[3];
real<lower=0> alpha;
}
model {
y ~ normal(mu, sigma);
for (i in 1:3)
z[i] ~ normal(0, 1);
alpha ~ exponential(2);
}
'
# exfit <- stan(model_code = excode, save_dso = FALSE, iter = 200,
# sample_file = "rstan_doc_ex.csv")
#
exfit <- read_stan_csv(dir(system.file('misc', package = 'rstan'),
pattern='rstan_doc_ex_[[:digit:]].csv',
full.names = TRUE))
print(exfit)
traceplot(exfit)
traceplot(exfit, size = 0.25)
traceplot(exfit, pars = "sigma", inc_warmup = TRUE)
trace <- traceplot(exfit, pars = c("z[1,1]", "z[3,1]"))
trace + scale_color_discrete() + theme(legend.position = "top")
}