Class MetropolisHastings

java.lang.Object
org.episteme.core.mathematics.statistics.montecarlo.MetropolisHastings

public class MetropolisHastings extends Object
Metropolis-Hastings Markov Chain Monte Carlo (MCMC).

Samples from complex probability distributions. Essential for statistical physics and Bayesian inference.

Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • MetropolisHastings

      public MetropolisHastings()
    • MetropolisHastings

      public MetropolisHastings(long seed)
  • Method Details

    • sample1D

      public double[] sample1D(Function<Double,Double> logProbability, Function<Double,Double> proposal, double initial, int samples, int burnIn)
      Run Metropolis-Hastings sampling.
      Parameters:
      logProbability - Log probability of target distribution (unnormalized OK)
      proposal - Proposal distribution: given current state, generate candidate
      initial - Initial state
      samples - Number of samples to generate
      burnIn - Number of initial samples to discard
      Returns:
      Array of samples from the target distribution
    • sampleND

      public double[][] sampleND(Function<double[],Double> logProbability, double[] proposalStd, double[] initial, int samples, int burnIn)
      Multi-dimensional Metropolis-Hastings.
      Parameters:
      logProbability - Log probability of target distribution
      proposalStd - Standard deviation for Gaussian random walk proposal
      initial - Initial state vector
      samples - Number of samples
      burnIn - Burn-in period
      Returns:
      2D array [sample_index][dimension]
    • mean

      public static double mean(double[] samples)
      Compute mean of samples.
    • variance

      public static double variance(double[] samples)
      Compute variance of samples.
    • effectiveSampleSize

      public static double effectiveSampleSize(double[] samples)
      Effective sample size (accounts for autocorrelation).