pub struct MarkovChainMonteCarlo {
pub step_size: f64,
pub n_warmup: usize,
}Expand description
Markov Chain Monte Carlo samplers.
Implements Metropolis-Hastings (random-walk), Gibbs sampling helpers, and a simplified dual-averaging NUTS-like step-size adaptation.
Fields§
§step_size: f64Step size (proposal std for MH).
n_warmup: usizeNumber of warm-up (burn-in) steps.
Implementations§
Source§impl MarkovChainMonteCarlo
impl MarkovChainMonteCarlo
Sourcepub fn new(step_size: f64, n_warmup: usize) -> Self
pub fn new(step_size: f64, n_warmup: usize) -> Self
Creates a new MCMC sampler with the given step size and warm-up count.
Sourcepub fn metropolis_hastings<F>(
&self,
log_target: F,
init: f64,
n_samples: usize,
seed: u64,
) -> Vec<f64>
pub fn metropolis_hastings<F>( &self, log_target: F, init: f64, n_samples: usize, seed: u64, ) -> Vec<f64>
Runs a Metropolis-Hastings random-walk chain.
§Arguments
log_target- Closure returning log π(θ) (up to normalisation).init- Initial parameter value.n_samples- Number of post-warmup samples to return.seed- RNG seed.
Sourcepub fn metropolis_hastings_vec<F>(
&self,
log_target: F,
init: Vec<f64>,
n_samples: usize,
seed: u64,
) -> Vec<Vec<f64>>
pub fn metropolis_hastings_vec<F>( &self, log_target: F, init: Vec<f64>, n_samples: usize, seed: u64, ) -> Vec<Vec<f64>>
Metropolis-Hastings for a vector-valued parameter.
Sourcepub fn gibbs_bivariate_gaussian(
mu1: f64,
mu2: f64,
sigma1: f64,
sigma2: f64,
rho: f64,
n_samples: usize,
seed: u64,
) -> Vec<[f64; 2]>
pub fn gibbs_bivariate_gaussian( mu1: f64, mu2: f64, sigma1: f64, sigma2: f64, rho: f64, n_samples: usize, seed: u64, ) -> Vec<[f64; 2]>
Gibbs sampler for a bivariate Gaussian with known full conditionals.
Samples from N([μ1, μ2], [[σ1², ρσ1σ2],[ρσ1σ2, σ2²]]).
Sourcepub fn nuts_step<F>(
&self,
log_target: F,
grad_log_target: impl Fn(f64) -> f64,
init: f64,
seed: u64,
) -> f64
pub fn nuts_step<F>( &self, log_target: F, grad_log_target: impl Fn(f64) -> f64, init: f64, seed: u64, ) -> f64
Simplified NUTS (No-U-Turn Sampler) step using leapfrog integration.
Returns a single sample given gradient function grad_log_target.
Sourcepub fn effective_sample_size(chain: &[f64]) -> f64
pub fn effective_sample_size(chain: &[f64]) -> f64
Returns the effective sample size (ESS) from a chain using autocorrelation.
Trait Implementations§
Source§impl Clone for MarkovChainMonteCarlo
impl Clone for MarkovChainMonteCarlo
Source§fn clone(&self) -> MarkovChainMonteCarlo
fn clone(&self) -> MarkovChainMonteCarlo
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for MarkovChainMonteCarlo
impl RefUnwindSafe for MarkovChainMonteCarlo
impl Send for MarkovChainMonteCarlo
impl Sync for MarkovChainMonteCarlo
impl Unpin for MarkovChainMonteCarlo
impl UnsafeUnpin for MarkovChainMonteCarlo
impl UnwindSafe for MarkovChainMonteCarlo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.