This C++ version of BAT is still being maintained, but addition of new features is unlikely. Check out our new incarnation, BAT.jl, the Bayesian analysis toolkit in Julia. In addition to Metropolis-Hastings sampling, BAT.jl supports Hamiltonian Monte Carlo (HMC) with automatic differentiation, automatic prior-based parameter space transformations, and much more. See the BAT.jl documentation.

Results of performance testing for BAT version 0.4.3

Back to | overview for 0.4.3 | all versions |

Test "1d_binomial_0_0"

Results
Status acceptable
CPU time 267.4 s
Real time 267.5 s
Plots 1d_binomial_0_0.ps
Log 1d_binomial_0_0.log

Settings
N chains 10
N lag 10
Convergence true
N iterations (pre-run) 1000
N iterations (run) 10000000

Plots
Auto-correlation for the parameter.Distribution from MCMC and analytic function.Distribution from MCMC and analytic function in log-scale.
Difference between the distribution from MCMC and the analytic function. The one, two and three sigma uncertainty bands are colored green, yellow and red, respectively.Pull between the distribution from MCMC and the analytic function. The Gaussian has a mean value of 0 and a standard deviation of 1 (not fitted).Summary of subtest values.

Subtest Status Target Test Uncertainty Deviation [%] Deviation [sigma] Tol. (Good) Tol. (Acceptable) Tol. (Bad)
correlation par 0 off 0 0.03698 0.003631 - -10.18 0.3 0.5 0.7
chi2 good 100 81.41 14.14 -18.59 1.315 42.43 70.71 98.99
KS good 1 0.9943 0.95 -0.5695 0.005995 0.95 0.99 0.9999
mean good 0.5 0.5 9.222e-05 -0.0001366 0.007405 0.0002767 0.0004611 0.0006456
mode acceptable 0.0101 0.925 0.2869 9058 -3.189 0.8606 1.434 2.008
variance good 0.08333 0.08504 0.007547 2.045 -0.2258 0.02264 0.03774 0.05283
quantile10 good 0.1 0.1 0.03333 0.04006 -0.001202 0.1 0.1667 0.2333
quantile20 good 0.2 0.2001 0.03333 0.02694 -0.001617 0.1 0.1667 0.2333
quantile30 good 0.3 0.2999 0.03333 -0.03656 0.00329 0.1 0.1667 0.2333
quantile40 good 0.4 0.3999 0.03333 -0.03721 0.004465 0.1 0.1667 0.2333
quantile50 good 0.5 0.4999 0.03333 -0.01099 0.001649 0.1 0.1667 0.2333
quantile60 good 0.6 0.5999 0.03333 -0.01554 0.002797 0.1 0.1667 0.2333
quantile70 good 0.7 0.7001 0.03333 0.01919 -0.004029 0.1 0.1667 0.2333
quantile80 good 0.8 0.8001 0.03333 0.01691 -0.004058 0.1 0.1667 0.2333
quantile90 good 0.9 0.9 0.03333 0.003913 -0.001057 0.1 0.1667 0.2333

Subtest Description
correlation par 0 Calculate the auto-correlation among the points.
chi2 Calculate χ2 and compare with prediction for dof=number of bins with an expectation >= 10.
Tolerance good: |χ2-E[χ2]| < 3 · (2 dof)1/2,
Tolerance acceptable: |χ2-E[χ2]| < 5 · (2 dof)1/2,
Tolerance bad: |χ2-E[χ2]| < 7 · (2 dof)1/2.
KS Calculate the Kolmogorov-Smirnov probability based on the ROOT implemention.
Tolerance good: KS prob > 0.05,
Tolerance acceptable: KS prob > 0.01
Tolerance bad: KS prob > 0.0001.
mean Compare sample mean, <x>, with expectation value of function, E[x].
Tolerance good: |<x> -E[x]| < 3 · (V[x]/n)1/2,
Tolerance acceptable: |<x> -E[x]| < 5 · (V[x]/n)1/2,
Tolerance bad: |<x> -E[x]| < 7 · (V[x]/n)1/2.
mode Compare mode of distribution with mode of the analytic function.
Tolerance good: |x*-mode| < 3 · V[mode]1/2,
Tolerance acceptable: |x*-mode| < 5 · V[mode]1/2 bin widths,
Tolerance bad: |x*-mode| < 7 · V[mode]1/2.
variance Compare sample variance s2 of distribution with variance of function.
Tolerance good: 3 · V[s2]1/2,
Tolerance acceptable: 5 · V[s2]1/2,
Tolerance bad: 7 · V[s2]1/2.
quantile10 Compare quantile of distribution from MCMC with the quantile of analytic function.
Tolerance good: |q_{X}-E[q_{X}]|<3·V[q]1/2,
Tolerance acceptable: |q_{X}-E[q_{X}]|<5·V[q]1/2,
Tolerance bad: |q_{X}-E[q_{X}]|<7·V[q]1/2.
quantile20 Compare quantile of distribution from MCMC with the quantile of analytic function.
Tolerance good: |q_{X}-E[q_{X}]|<3·V[q]1/2,
Tolerance acceptable: |q_{X}-E[q_{X}]|<5·V[q]1/2,
Tolerance bad: |q_{X}-E[q_{X}]|<7·V[q]1/2.
quantile30 Compare quantile of distribution from MCMC with the quantile of analytic function.
Tolerance good: |q_{X}-E[q_{X}]|<3·V[q]1/2,
Tolerance acceptable: |q_{X}-E[q_{X}]|<5·V[q]1/2,
Tolerance bad: |q_{X}-E[q_{X}]|<7·V[q]1/2.
quantile40 Compare quantile of distribution from MCMC with the quantile of analytic function.
Tolerance good: |q_{X}-E[q_{X}]|<3·V[q]1/2,
Tolerance acceptable: |q_{X}-E[q_{X}]|<5·V[q]1/2,
Tolerance bad: |q_{X}-E[q_{X}]|<7·V[q]1/2.
quantile50 Compare quantile of distribution from MCMC with the quantile of analytic function.
Tolerance good: |q_{X}-E[q_{X}]|<3·V[q]1/2,
Tolerance acceptable: |q_{X}-E[q_{X}]|<5·V[q]1/2,
Tolerance bad: |q_{X}-E[q_{X}]|<7·V[q]1/2.
quantile60 Compare quantile of distribution from MCMC with the quantile of analytic function.
Tolerance good: |q_{X}-E[q_{X}]|<3·V[q]1/2,
Tolerance acceptable: |q_{X}-E[q_{X}]|<5·V[q]1/2,
Tolerance bad: |q_{X}-E[q_{X}]|<7·V[q]1/2.
quantile70 Compare quantile of distribution from MCMC with the quantile of analytic function.
Tolerance good: |q_{X}-E[q_{X}]|<3·V[q]1/2,
Tolerance acceptable: |q_{X}-E[q_{X}]|<5·V[q]1/2,
Tolerance bad: |q_{X}-E[q_{X}]|<7·V[q]1/2.
quantile80 Compare quantile of distribution from MCMC with the quantile of analytic function.
Tolerance good: |q_{X}-E[q_{X}]|<3·V[q]1/2,
Tolerance acceptable: |q_{X}-E[q_{X}]|<5·V[q]1/2,
Tolerance bad: |q_{X}-E[q_{X}]|<7·V[q]1/2.
quantile90 Compare quantile of distribution from MCMC with the quantile of analytic function.
Tolerance good: |q_{X}-E[q_{X}]|<3·V[q]1/2,
Tolerance acceptable: |q_{X}-E[q_{X}]|<5·V[q]1/2,
Tolerance bad: |q_{X}-E[q_{X}]|<7·V[q]1/2.