mcmc_algo: a list defining an MCMC algorithm in terms of the functions it uses, such as RWHM, see details below.
n: The number of (time) iterations of each single chain to run.
nmc: The number of iid copies of each single chain.
Ptheta0: A (nmc x d) matrix, with the ith row giving a d-dimensional initial theta values for the ith chain.
target: The target density for which the MCMC algorithm is defined; may be given only up to a multiplicative constant for most MCMC. Target must be a function such as the multidimensional gaussian target_norm(x,param) with argument and parameters passed like in this example.
f_param: A list holding all the necessary target parameters, consistent with the target definition.
q_param: A list holding all the necessary parameters for the proposal density of the MCMC algorithm mcmc_algo.
verb: Verbose mode for summarizing output during the simulation.
Details
MCMCcopies sequentially simulates nmc iid copies of the MCMC algorithm passed in the list mcmc_algo, for n (time) iterations, and returns an object of class plMCMC holding an array of the trajectories and running information. The list mcmc_algo must contain the named elements:
name, the name of the MCMC, such as "RWHM"
chain, the function for simulation of n steps of a single chain
step, the function for simulation of 1 step of that algorithm
q_pdf, the density of the proposal
q_proposal, the function that simulates a proposal
For examples, see the algorithms currently implemented: RWHM, the Random Walk Hasting-Metropolis with gaussian proposal; HMIS_norm, an Independence Sampler HM with gaussian proposal; AMHaario, the Adaptive-Metropolis (AM) from Haario (2001); IID_norm, a gaussian iid sampler which is merely a "fake" MCMC for testing purposes.
Returns
MCMCcopies returns a list of class plMCMC with items:
Ptheta: The nmc copies of chains in an array(n,d,nmc) of simulated values, where 1st value (1,d,nmc) is Ptheta0.
prob.accept: The estimated rate of acceptation over all simulations.
algo: The MCMC algorithm name i.e. mcmc_algo$name.
target: The target density.
f_param: The list holding all the target parameters.
q_param: The list holding all the proposal density parameters.
References
Chauveau, D. and Vandekerkhove, P. (2013), Smoothness of Metropolis-Hastings algorithm and application to entropy estimation. ESAIM: Probability and Statistics, 17 , 419--431. DOI: http://dx.doi.org/10.1051/ps/2012004
Chauveau D. and Vandekerkhove, P. (2014), Simulation Based Nearest Neighbor Entropy Estimation for (Adaptive) MCMC Evaluation, In JSM Proceedings, Statistical Computing Section. Alexandria, VA: American Statistical Association. 2816--2827.
Author(s)
Didier Chauveau.
See Also
Two multicore and cluster version MCMCcopies.mc and MCMCcopies.cl, and functions doing simulation and entropy and Kullback estimation simultaneously: EntropyParallel and EntropyParallel.cl
Examples
## Toy example using the bivariate gaussian target## with default parameters value, see target_norm_paramn =150; nmc =20; d=2# bivariate examplevarq=0.1# variance of the proposal (chosen too small)q_param=list(mean=rep(0,d),v=varq*diag(d))## initial distribution, located in (2,2), "far" from target center (0,0)Ptheta0 <- DrawInit(nmc, d, initpdf ="rnorm", mean =2, sd =1)# simulations1 <- MCMCcopies(RWHM, n, nmc, Ptheta0, target_norm, target_norm_param, q_param, verb =FALSE)summary(s1)# method for "plMCMC" objectpar(mfrow=c(1,2))plot(s1)# just a path of the iid chains, method for "plMCMC" objecthist(s1$Ptheta[,1,], col=8)# marginal 1