Bayesian analysis#

Next to the classical minimisers the app can sample the posterior distribution of the fitted parameters with the BUMPS DREAM sampler. Instead of a single best value per parameter you get a distribution: a median, a credible interval, and the correlations between parameters.

Starting a sampling run#

Bayesian sampling is selected like a minimiser. In AnalysisAdvancedMinimization method, pick BUMPS-DREAM (Bayesian) - the first entry of the Minimizer drop-down.

The settings below the drop-down change with the choice. Instead of the classical Tolerance and Max evaluations, the sampler shows:

Setting

Meaning

Samples

Total number of samples to draw.

Burn-in steps

Initial steps discarded before the chains are recorded.

Population

Number of chains walking the parameter space.

Thinning

Keep every n-th draw, to reduce autocorrelation.

Initializer

How the starting population is spread over the parameter ranges.

The parameters that are sampled, and the ranges they are sampled in, are the ones ticked for fitting in the Basic controls, exactly as for a classical fit.

With the Bayesian minimiser selected, the fit button in Basic controls reads Start sampling instead of Start fitting. It becomes Cancel fitting while a run is in progress; cancelling keeps the interface locked until the worker has actually stopped, so a superseded run can never write into the parameters of the next one.

Reading the results#

On the reflectivity chart#

When a run finishes, the Reflectivity tab of the Analysis page gains two extra items, with their own legend entries:

  • Posterior median - the median calculated curve over the retained draws.

  • 95% credible interval - the band containing 95 % of the posterior predictive curves.

The Bayesian Posterior tab#

The Analysis page has a second main tab, Bayesian Posterior, holding five views. Until a run has finished, it shows “No Bayesian results available. Run a BUMPS-DREAM sampling to see posterior distributions.”

View

Shows

Marginals

Marginal posterior distribution of each sampled parameter.

Corner Plot

Pairwise parameter correlations together with the marginals.

Traces

The MCMC chain traces, for eyeballing mixing and burn-in.

2D Heatmap

Joint posterior density of any two chosen parameters - pick them with the X-axis and Y-axis selectors.

Diagnostics

Convergence diagnostics, see below.

Each view has a Save button that writes the plot to disk.

Note

The Marginals, Corner Plot and Traces views are rendered with plotly. If it is not installed the view says so and gives the install command; the rest of the app is unaffected.

Diagnostics#

The Diagnostics view reports whether the run can be trusted:

  • Sampling Configuration - requested samples, burn-in steps, thinning, population (chains), retained draws and number of parameters, as actually used by the run.

  • Acceptance Rate of the sampler.

  • Gelman-Rubin R̂ per parameter. Values close to 1 indicate that the chains have converged on the same distribution.

When results are discarded#

Posterior results describe one specific run of one specific model, so the app clears them - the overlays, the plots and the results dialog - as soon as they would become stale:

  • when a project is created, loaded or reset,

  • when a classical fit is started,

  • when a new sampling run is started.

Limitations#

  • Polarised experiments cannot be sampled yet. Fitting them classically is supported, see polarised data, but a Bayesian run over a polarised experiment is not available.

  • Data files without an uncertainty column are sampled with zero variances, which the sampler reports with a message. The fit is still performed, but the resulting credible intervals should not be read as measurement uncertainties.