File Exchange

image thumbnail

Independent Doubly Adaptive Rejection Metropolis Sampling

version 1.0 (7.8 KB) by

IA2RMS is an adaptive MCMC algorithm, for drawing samples from univariate target distributions.

1 Download


View License

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);

Comments and Ratings (0)



improving the description


typo correction


Figure example added.

MATLAB Release
MATLAB 7.14 (R2012a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video