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.

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] 3 3 2 3 2 3 2 2 3 2 ...
#>  - 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] "treedepth__" "divergent__" "energy__" "accept_stat__" ...

library(posterior)
as_draws_df(sampler_diagnostics)
#> # A draws_df: 1000 iterations, 4 chains, and 6 variables
#>    treedepth__ divergent__ energy__ accept_stat__ stepsize__ n_leapfrog__
#> 1            3           0       68          0.91       0.83            7
#> 2            3           0       66          1.00       0.83            7
#> 3            2           0       66          0.89       0.83            3
#> 4            3           0       66          1.00       0.83            7
#> 5            2           0       67          0.95       0.83            3
#> 6            3           0       69          0.85       0.83            7
#> 7            2           0       66          1.00       0.83            3
#> 8            2           0       66          0.83       0.83            3
#> 9            3           0       65          0.94       0.83            7
#> 10           2           0       66          0.93       0.83            7
#> # ... 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
#>    treedepth__ divergent__ energy__ accept_stat__ stepsize__ n_leapfrog__
#> 1            3           0       68          0.91       0.83            7
#> 2            3           0       66          1.00       0.83            7
#> 3            2           0       66          0.89       0.83            3
#> 4            3           0       66          1.00       0.83            7
#> 5            2           0       67          0.95       0.83            3
#> 6            3           0       69          0.85       0.83            7
#> 7            2           0       66          1.00       0.83            3
#> 8            2           0       66          0.83       0.83            3
#> 9            3           0       65          0.94       0.83            7
#> 10           2           0       66          0.93       0.83            7
#> # ... with 3990 more draws
#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
# }