rxmc.walker.Walker#
- class rxmc.walker.Walker(model_sampler: Sampler, evidence: Evidence, likelihood_samplers: list[Sampler] | None = None, rng: Generator | None = None)[source]#
Bases:
objectGibbs-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_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_samplerand each entry oflikelihood_samplerswith 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
Nonethe entire chain is one batch.verbose (bool, optional) – Print batch completion messages. Defaults to
True.