2020/10/08 by Shashank Kumbhare, Kumbhare, Shashank, Amir Shahmoradi +1
Computer Science · Mathematics · #Applications (stat.AP) #Bayesian Methods and Mixture Models #Computational Engineering #Data Analysis #FOS: Biological sciences #FOS: Computer and information sciences #FOS: Physical sciences #Finance #Gaussian Processes and Bayesian Inference #Instrumentation and Methods for Astrophysics (astro-ph.IM) #Markov Chains and Monte Carlo Methods #Quantitative Methods (q-bio.QM) #Statistics and Probability (physics.data-an) #and Science (cs.CE)
paper · pdf · doi:10.48550/arxiv.2010.04190
openalex publication_date 2020/10/08 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28
Markov Chain Monte Carlo (MCMC) algorithms are widely used for stochastic optimization, sampling, and integration of mathematical objective functions, in particular, in the context of Bayesian inverse problems and parameter estimation. For decades, the algorithm of choice in MCMC simulations has been the Metropolis-Hastings (MH) algorithm. An advancement over the traditional MH-MCMC sampler is the Delayed-Rejection Adaptive Metropolis (DRAM). In this paper, we present MatDRAM, a stochastic optimization, sampling, and Monte Carlo integration toolbox in MATLAB which implements a variant of the DRAM algorithm for exploring the mathematical objective functions of arbitrary-dimensions, in particular, the posterior distributions of Bayesian models in data science, Machine Learning, and scientific inference. The design goals of MatDRAM include nearly-full automation of MCMC simulations, user-friendliness, fully-deterministic reproducibility, and the restart functionality of simulations. We also discuss the implementation details of a technique to automatically monitor and ensure the diminishing adaptation of the proposal distribution of the DRAM algorithm and a method of efficiently storing the resulting simulated Markov chains. The MatDRAM library is open-source, MIT-licensed, and permanently located and maintained as part of the ParaMonte library at https://github.com/cdslaborg/paramonte.