@@ -299,23 +299,42 @@ function summarystats(
299
299
_chains = Chains (chains, _clean_sections (chains, sections))
300
300
301
301
# Calculate MCSE and ESS/R-hat separately.
302
- mcse_df = MCMCDiagnosticTools. mcse (
303
- _chains; sections = nothing , autocov_method = autocov_method, maxlag = maxlag,
304
- )
305
- ess_rhat_rank_df = MCMCDiagnosticTools. ess_rhat (
306
- _chains; sections = nothing , autocov_method = autocov_method, maxlag = maxlag, kind= :rank
307
- )
308
- ess_tail_df = MCMCDiagnosticTools. ess (
309
- _chains; sections = nothing , autocov_method = autocov_method, maxlag = maxlag, kind= :tail
310
- )
311
- nt_additional = (
312
- mcse= mcse_df. nt. mcse,
313
- ess_bulk= ess_rhat_rank_df. nt. ess,
314
- ess_tail= ess_tail_df. nt. ess,
315
- rhat= ess_rhat_rank_df. nt. rhat,
316
- ess_per_sec= ess_rhat_rank_df. nt. ess_per_sec,
317
- )
318
- additional_df = ChainDataFrame (" Additional" , nt_additional)
302
+ nt_additional = NamedTuple ()
303
+ try
304
+ mcse_df = MCMCDiagnosticTools. mcse (
305
+ _chains; sections = nothing , autocov_method = autocov_method, maxlag = maxlag,
306
+ )
307
+ nt_additional = merge (nt_additional, (; mcse= mcse_df. nt. mcse))
308
+ catch e
309
+ @warn " MCSE calculation failed: $e "
310
+ end
311
+
312
+ try
313
+ ess_tail_df = MCMCDiagnosticTools. ess (
314
+ _chains; sections = nothing , autocov_method = autocov_method, maxlag = maxlag, kind= :tail
315
+ )
316
+ nt_additional = merge (nt_additional, (ess_tail= ess_tail_df. nt. ess,))
317
+ catch e
318
+ @warn " Tail ESS calculation failed: $e "
319
+ end
320
+
321
+ try
322
+ ess_rhat_rank_df = MCMCDiagnosticTools. ess_rhat (
323
+ _chains; sections = nothing , autocov_method = autocov_method, maxlag = maxlag, kind= :rank
324
+ )
325
+ nt_ess_rhat_rank = (
326
+ ess_bulk= ess_rhat_rank_df. nt. ess,
327
+ rhat= ess_rhat_rank_df. nt. rhat,
328
+ ess_per_sec= ess_rhat_rank_df. nt. ess_per_sec
329
+ )
330
+ nt_additional = merge (nt_additional, nt_ess_rhat_rank)
331
+ catch e
332
+ @warn " Bulk ESS/R-hat calculation failed: $e "
333
+ end
334
+
335
+ # Possibly re-order the columns to stay backwards-compatible.
336
+ additional_keys = (:mcse , :ess_bulk , :ess_tail , :rhat , :ess_per_sec )
337
+ additional_df = ChainDataFrame (" Additional" , (; ((k, nt_additional[k]) for k in additional_keys if k ∈ keys (nt_additional)). .. ))
319
338
320
339
# Summarize.
321
340
summary_df = summarize (
0 commit comments