Skip to contents

Extract the values of sampler diagnostics for each iteration and chain of MCMC. To instead get summaries of these diagnostics and associated warning messages use the $diagnostic_summary() method.

Usage

sampler_diagnostics(
  inc_warmup = FALSE,
  format = getOption("cmdstanr_draws_format", "draws_array")
)

Arguments

inc_warmup

(logical) Should warmup draws be included? Defaults to FALSE.

format

(string) The draws format to return. See draws for details.

Value

Depends on format, but the default is a 3-D draws_array object (iteration x chain x variable). The variables for Stan's default MCMC algorithm are "accept_stat__", "stepsize__", "treedepth__", "n_leapfrog__", "divergent__", "energy__".

See also

Examples

# \dontrun{
fit <- cmdstanr_example("logistic")
sampler_diagnostics <- fit$sampler_diagnostics()
str(sampler_diagnostics)
#>  'draws_array' num [1:1000, 1:4, 1:6] 0.993 0.875 0.848 0.988 0.99 ...
#>  - attr(*, "dimnames")=List of 3
#>   ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
#>   ..$ chain    : chr [1:4] "1" "2" "3" "4"
#>   ..$ variable : chr [1:6] "accept_stat__" "stepsize__" "treedepth__" "n_leapfrog__" ...

library(posterior)
as_draws_df(sampler_diagnostics)
#> # A draws_df: 1000 iterations, 4 chains, and 6 variables
#>    accept_stat__ stepsize__ treedepth__ n_leapfrog__ divergent__ energy__
#> 1           0.99       0.82           3            7           0       66
#> 2           0.87       0.82           2            7           0       68
#> 3           0.85       0.82           2            3           0       70
#> 4           0.99       0.82           2            7           0       70
#> 5           0.99       0.82           3            7           0       67
#> 6           0.70       0.82           3            7           0       70
#> 7           0.88       0.82           2            7           0       73
#> 8           0.88       0.82           2            3           0       73
#> 9           1.00       0.82           2            3           0       70
#> 10          0.90       0.82           3            7           0       69
#> # ... with 3990 more draws
#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}

# or specify format to get a data frame instead of calling as_draws_df
fit$sampler_diagnostics(format = "df")
#> # A draws_df: 1000 iterations, 4 chains, and 6 variables
#>    accept_stat__ stepsize__ treedepth__ n_leapfrog__ divergent__ energy__
#> 1           0.99       0.82           3            7           0       66
#> 2           0.87       0.82           2            7           0       68
#> 3           0.85       0.82           2            3           0       70
#> 4           0.99       0.82           2            7           0       70
#> 5           0.99       0.82           3            7           0       67
#> 6           0.70       0.82           3            7           0       70
#> 7           0.88       0.82           2            7           0       73
#> 8           0.88       0.82           2            3           0       73
#> 9           1.00       0.82           2            3           0       70
#> 10          0.90       0.82           3            7           0       69
#> # ... with 3990 more draws
#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
# }