`stan_plot_diagnostics.Rd`

Diagnostic plots for HMC and NUTS using ggplot2.

```
stan_diag(object,
information = c("sample","stepsize", "treedepth","divergence"),
chain = 0, ...)
stan_par(object, par, chain = 0, ...)
stan_rhat(object, pars, ...)
stan_ess(object, pars, ...)
stan_mcse(object, pars, ...)
```

- object
A stanfit or stanreg object.

- information
The information to be contained in the diagnostic plot.

- par,pars
The name of a single scalar parameter (

`par`

) or one or more parameter names (`pars`

).- chain
If

`chain=0`

(the default) all chains are combined. Otherwise the plot for`chain`

is overlaid on the plot for all chains combined.- ...
For

`stan_diag`

and`stan_par`

, optional arguments to`arrangeGrob`

. For`stan_rhat`

,`stan_ess`

, and`stan_mcse`

, optional arguments to`stat_bin`

in the ggplot2 package.

For `stan_diag`

and `stan_par`

, a list containing the ggplot objects for
each of the displayed plots. For `stan_rhat`

, `stan_ess`

,
and `stan_mcse`

, a single ggplot object.

`stan_rhat`

,`stan_ess`

,`stan_mcse`

Respectively, these plots show the distribution of the Rhat statistic, the ratio of effective sample size to total sample size, and the ratio of Monte Carlo standard error to posterior standard deviation for the estimated parameters. These plots are not intended to identify individual parameters, but rather to allow for quickly identifying if the estimated values of these quantities are desireable for all parameters.

`stan_par`

Calling

`stan_par`

generates three plots: (i) a scatterplot of`par`

vs. the accumulated log-posterior (`lp__`

), (ii) a scatterplot of`par`

vs. the average Metropolis acceptance rate (`accept_stat`

), and (iii) a violin plot showing the distribution of`par`

at each of the sampled step sizes (one per chain). For the scatterplots, red points are superimposed to indicate which (if any) iterations encountered a divergent transition. Yellow points indicate a transition that hit the maximum treedepth rather than terminated its evolution normally.`stan_diag`

The

`information`

argument is used to specify which plots`stan_diag`

should generate:`information='sample'`

Histograms of`lp__`

and`accept_stat`

, as well as a scatterplot showing their joint distribution.`information='stepsize'`

Violin plots showing the distributions of`lp__`

and`accept_stat`

at each of the sampled step sizes (one per chain).`information='treedepth'`

Histogram of`treedepth`

and violin plots showing the distributions of`lp__`

and`accept_stat`

for each value of`treedepth`

.`information='divergence'`

Violin plots showing the distributions of`lp__`

and`accept_stat`

for iterations that encountered divergent transitions (`divergent=1`

) and those that did not (`divergent=0`

).

For details about the individual diagnostics and sampler parameters and their interpretations see the Stan Modeling Language User's Guide and Reference Manual at https://mc-stan.org/documentation/.

```
if (FALSE) {
fit <- stan_demo("eight_schools")
stan_diag(fit, info = 'sample') # shows three plots together
samp_info <- stan_diag(fit, info = 'sample') # saves the three plots in a list
samp_info[[3]] # access just the third plot
stan_diag(fit, info = 'sample', chain = 1) # overlay chain 1
stan_par(fit, par = "mu")
}
```