image thumbnail

Independent Doubly Adaptive Rejection Metropolis Sampling

version 5.0.0 (16.7 KB) by lukafree
IA2RMS is an adaptive MCMC algorithm, for drawing samples from univariate target distributions.


Updated 5 May 2020

View License

This new version has been developed by Gudkov Nikolay (

IA2RMS: an adaptive Metropolis-Hastings sampler
IA2RMS is an adaptive MCMC algorithm, for drawing samples from univariate target distributions. More specifically, IA2RMS is an improvement of Adaptive Rejection Metropolis Sampling (ARMS), proposed by Gilks et al. (1995), often applied within Gibbs sampling. The proposal pdf is adapted via interpolation procedures. After some iterations, the generated samples are virtually independent. For more information, see or,
- L. Martino, J. Read, D. Luengo, "Independent Doubly Adaptive Rejection Metropolis Sampling within Gibbs Sampling", IEEE Transactions on Signal Processing, Volume 63, Issue 12, Pages: 3123-3138, 2015.

The IA2RMS algorithm have been already applied successfully, e.g., in:

- F. Feng, T. B. Kepler. "Bayesian Estimation of the Active Concentration and Affinity Constants Using Surface Plasmon Resonance Technology". PLoS One. 2015; 10(6): e0130812.

- H. Yang. "Markov Chain Monte Carlo Estimation of Stochastic Volatility Models with Finite and Infinite Activity Lévy Jumps. Evidence for Efficient Models and Algorithms". Doctoral dissertation, Tampere University of Technology 2015.

- A. Nazabal, P. Garcia-Moreno, A. Artes-Rodriguez, Z. Ghahramani, "Human Activity Recognition by Combining a Small Number of Classifiers". (to appear) IEEE Journal of Biomedical and Health Informatics, 2015.

Examples of use:

% f = target density (known up to the normalisation constant)
% for instance: f = @(x) exp( -x.^2/2).*(1+(sin(3*x)).^2).*(1+(cos(5*x).^2));
% S= initial support points (at least 2, use more to avoid numerical problems), e.g., S=[-1,0,1] (in this case, we have 3 % points)
% M=number of samples we required
% type= 0/1 construction proposal (set for instance type=0)
% (for heavy tailed target pdf, it could be preferable to change the construction of the tails, but the current version of IA2RMS still works)
% Example with one tail:
%%>> f = @(x) exp(-x).* (x > 0);
%%>> S=[-1 0 1];
%%>> x=A2RMS(f,S,1000,0);

Cite As

lukafree (2022). Independent Doubly Adaptive Rejection Metropolis Sampling (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2012a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!