MCMC -- Markov Chain Monte Carlo Tools Copyright (c) 1998, Harvard University. Full copyright in the file Copyright. Some routines require version 5 of Matlab, some will work with version 4
There are three parts to this library of routines.
1. *[rnd,pdf,lpr].m - distribution function tools to complement MATLAB's
2. mcmc*.m - routines to calculate and display summaries of MCMC output
3. other - other useful routines
1. Distribution Function Tools
These function help in random number generation and various calculations involving density functions.
randrand - randomize both random number chains off the clock
mvnormrnd - random multivariate normal - different from MATLAB's mvnrnd
wishrnd - random Wishart value
wishirnd - random Wishart value - integer df only
invwishrnd - random inverse Wishart value
invwishirnd - random inverse Wishart value - integer df only
invwishpdf - inverse Wishart density
metrop - a general Metropolis-Hastings step
betalpr - log probability ratio for beta distribution
gamlpr - log probability ratio for gamma distribution
invwishlpr - log probability ratio for inverse wishart distribution
mvnormlpr - log probability ratio for multivariate normal distribution
2. MCMC Summaries
mcmclt - lower triangle - for symmetric matricies to use with mcmctrace
mcmcsumm - calculate summary statistics(includes autocorrelations and Gelman-Rubin statistics)
mcmctrace - matrix of trace plots
mcmcacf - to plot autocorrelations
mcmcgr - Gelman-Rubin R statistic for convergence
mcmcdemo - short demonstration program
ltvec - convert a lower-triangular matrix into a vector
veclt - convert a vector into a lower-triangular matrix
ltindex - convert row and column index into lt-index
Please see the contents.m file for a full description.
Why does mcmcgr anticipate that the data will be a 3 dimensional array? Suppose I have M chains of N values, so that my data is only two 2D. How can I use this script with that?
There is a bug in this code:
In the definition of of the inverse wishart pdf the multivariate gamma distributrion is calculated as gammaln((d-k-klst)/2) which does not fit the definition of the multivariate gamma distribution: it should be gammaln(d - (k-klst)/2)
Thanks very much for help!
I am using your matlab function "mcmcgr" and have found one question.
I set up 5 chains each with length say 10000, and each chain only contains
zero components, so each chains is like "0,0,0,..." with 10000 zeros in it.
Obvious the convergence holds, but after I used mcmcgr to find its R
statistics, a "NaN" was reported. I don't know why this happens.
I am very grateful if you can help me with it!
Thanks a lot!
Your programs are helpful for me, save my time. I will study it,thank you!
The veclt command only works for column vectors. But one can but in a transformation step to suit needs. Still a good program. thanks for posting.
I don't know how to excute ARS (adaptive rejection sampling) with matlab if the density is not standard.
inverse log function
Very good random generator for the Wishart: works much better than the one included in matlab (which is sometimes returning "strange samples")
plz send the file to me
Could you send me the examples of MCMC (Markov Chain Monte Carlo) modelling.
from Peter Xu
Problem with vesion
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.