rxmc.walker.Walker#

class rxmc.walker.Walker(model_sampler: Sampler, evidence: Evidence, likelihood_samplers: list[Sampler] | None = None, rng: Generator | None = None)[source]#

Bases: object

Gibbs-style MCMC coordinator for a Bayesian calibration problem.

Manages one sampler for the physical-model parameters and, optionally, per-constraint samplers for parametric likelihood parameters. The samplers alternate in a Gibbs framework: model parameters are updated with the likelihood parameters held fixed, then each set of likelihood parameters is updated with the model parameters held fixed.

Parameters:
  • model_sampler (Sampler) – Sampler for the physical-model parameters.

  • evidence (Evidence) – Evidence object containing the observations and likelihood models.

  • likelihood_samplers (list of Sampler, optional) – One sampler per entry in evidence.parametric_constraints.

  • rng (np.random.Generator, optional) – Random number generator. Defaults to default_rng(42).

Raises:
  • ValueError – If the physical-model parameters in evidence and model_sampler do not match.

  • ValueError – If the number of likelihood_samplers does not equal the number of parametric constraints in evidence.

  • ValueError – If any likelihood sampler’s parameters do not match those of the corresponding parametric constraint.

__init__(model_sampler: Sampler, evidence: Evidence, likelihood_samplers: list[Sampler] | None = None, rng: Generator | None = None)[source]#

Methods

__init__(model_sampler, evidence[, ...])

log_likelihood(model_params, likelihood_params)

log_posterior(model_params, likelihood_params)

log_prior(model_params, likelihood_params)

Log prior probability of model and likelihood parameters.

run_likelihood_batches(n_steps, ...[, burn])

Sample each set of likelihood parameters for fixed model parameters.

run_model_batch(n_steps, x0[, ...])

Sample model parameters for fixed likelihood parameters.

walk(n_steps[, burnin, batch_size, verbose])

Run the full MCMC chain.

run_model_batch(n_steps, x0, likelihood_params=None, burn=False)[source]#

Sample model parameters for fixed likelihood parameters.

Parameters:
  • n_steps (int) – Number of MCMC steps.

  • x0 (np.ndarray) – Starting location for the model parameters.

  • likelihood_params (list of tuple, optional) – Fixed values of the likelihood parameters for each parametric constraint. Defaults to [].

  • burn (bool, optional) – If True, treat as burn-in (samples are not recorded).

run_likelihood_batches(n_steps, starting_locations, model_params, burn=False)[source]#

Sample each set of likelihood parameters for fixed model parameters.

Parameters:
  • n_steps (int) – Number of MCMC steps per likelihood sampler.

  • starting_locations (list of np.ndarray) – Starting locations for each likelihood sampler.

  • model_params (tuple) – Fixed physical-model parameter values.

  • burn (bool, optional) – If True, treat as burn-in (samples are not recorded).

log_likelihood(model_params, likelihood_params)[source]#
log_posterior(model_params, likelihood_params)[source]#
log_prior(model_params, likelihood_params)[source]#

Log prior probability of model and likelihood parameters.

Parameters:
  • model_params (tuple) – Physical-model parameter values.

  • likelihood_params (list of tuple) – One tuple of likelihood parameter values per parametric constraint.

Returns:

float – Sum of log prior densities for model and likelihood parameters.

walk(n_steps: int, burnin: int = 0, batch_size: int = None, verbose: bool = True)[source]#

Run the full MCMC chain.

Updates the internal state of model_sampler and each entry of likelihood_samplers with the accumulated chain, log posteriors, and acceptance statistics.

Parameters:
  • n_steps (int) – Total number of active (post-burn-in) steps.

  • burnin (int, optional) – Number of burn-in steps discarded before recording. Defaults to 0.

  • batch_size (int, optional) – Steps per batch. If None the entire chain is one batch.

  • verbose (bool, optional) – Print batch completion messages. Defaults to True.