Calculates the Effective Sample Sizes of one estimated variable's trace.

calc_summary_stats(traces, sample_interval)



one or more traces, supplies as either, (1) a numeric vector or, (2) a data frame of numeric values.


the interval (the number of state transitions between samples) of the MCMC run that produced the trace. Using a different sample_interval than the actually used sampling interval will result in bogus return values.


the summary statistics of the traces. If one numeric vector is supplied, a list is returned with the elements listed below. If the traces are supplied as a data frame, a data frame is returned with the elements listed below as column names.
The elements are:

  • mean: mean

  • stderr_mean: standard error of the mean

  • stdev: standard deviation

  • variance: variance

  • mode: mode

  • geom_mean: geometric mean

  • hpd_interval_low: lower bound of 95% highest posterior density

  • hpd_interval_high: upper bound of 95% highest posterior density

  • act: auto correlation time

  • ess: effective sample size


This function assumes the burn-in is removed. Use remove_burn_in (on a vector) or remove_burn_ins (on a data frame) to remove the burn-in.

See also

Use calc_summary_stats_trace to calculate the summary statistics of one trace (stored as a numeric vector). Use calc_summary_stats_traces to calculate the summary statistics of more traces (stored as a data frame).


Richèl J.C. Bilderbeek


estimates_all <- parse_beast_log(get_tracerer_path("beast2_example_output.log")) estimates <- remove_burn_ins(estimates_all, burn_in_fraction = 0.1) # From a single variable's trace sum_stats_posterior <- calc_summary_stats( estimates$posterior, sample_interval = 1000 ) testit::assert("mean" %in% names(sum_stats_posterior)) # From all variables' traces sum_stats <- calc_summary_stats( estimates, sample_interval = 1000 ) testit::assert("mean" %in% colnames(sum_stats))