AdMitMH {AdMit}R Documentation

Independence Chain Metropolis-Hastings Algorithm using an Adaptive Mixture of Student-t Distributions as the Candidate Density

Description

Performs independence chain Metropolis-Hastings (M-H) sampling using an adaptive mixture of Student-t distributions as the candidate density

Usage

AdMitMH(N=1e5, KERNEL, mit=list(), ...)

Arguments

N number of draws generated by the independence chain M-H algorithm (positive integer number). Default: N=1e5.
KERNEL kernel function of the target density on which the adaptive mixture is fitted. This function should be vectorized for speed purposes (i.e., its first argument should be a matrix and its output a vector). Moreover, the function must contain the logical argument log. If log=TRUE, the function returns (natural) logarithm values of kernel function. NA and NaN values are not allowed.
mit list containing information on the mixture approximation (see *Details*).
... further arguments to be passed to KERNEL.

Details

The argument mit is a list containing information on the adaptive mixture of Student-t distributions. The following components must be provided:

p
vector (of length H) of mixing probabilities.
mu
matrix (of size Hxd) containing the vectors of modes (in row) of the mixture components.
Sigma
matrix (of size Hxd*d) containing the scale matrices (in row) of the mixture components.
df
degrees of freedom parameter of the Student-t components (real number not smaller than one).

where H (>=1) is the number of components and d (>=1) is the dimension of the first argument in KERNEL. Typically, mit is estimated by the function AdMit.

Value

A list with the following components:

draws: matrix (of size Nxd) of draws generated by the independence chain M-H algorithm, where N (>=1) is the number of draws and d (>=1) is the dimension of the first argument in KERNEL.

accept: acceptance rate of the independence chain M-H algorithm.

Note

Further details and examples of the R package AdMit can be found in Ardia, Hoogerheide and van Dijk (2008). http://www.tinbergen.nl/

Further information on the Metropolis-Hastings algorithm can be found in Chib and Greenberg (1995) and Koop (2003).

Author(s)

David Ardia <david.ardia@unifr.ch>

References

Ardia, D., Hoogerheide, L.F., van Dijk, H.K. (2008) `Adaptive mixture of Student-t distributions as a flexible candidate distribution for efficient simulation: The R package AdMit', Working paper, Econometric Institute, Erasmus University Rotterdam (NL). URLLINK

Chib, S., Greenberg, E. (1995) `Understanding the Metropolis-Hasting Algorithm', The American Statistician 49(4), pp.327–335.

Koop, G. (2003) Bayesian Econometrics, Wiley-Interscience (London, UK), first edition, ISBN: 0470845678.

See Also

AdMitIS for importance sampling using an adaptive mixture of Student-t distributions as the importance density, AdMit for fitting an adaptive mixture of Student-t distributions to a target density through its KERNEL function; the package coda for MCMC output analysis (the package is loaded automatically with the package AdMit).

Examples

  ## Gelman and Meng (2001) kernel function
  'GelmanMeng' <- function(x, A=1, B=0, C1=3, C2=3, log=TRUE)
    {
      if (is.vector(x))
        x <- matrix(x, nrow=1)
      r <- -.5 * (A*x[,1]^2*x[,2]^2 + x[,1]^2 + x[,2]^2
                - 2*B*x[,1]*x[,2] - 2*C1*x[,1] - 2*C2*x[,2])
      if (!log)
        r <- exp(r)
      as.vector(r)
    }

  ## Run the AdMit function to fit the mixture approximation
  set.seed(1234)
  outAdMit <- AdMit(GelmanMeng, mu0=c(0,0.1))

  ## Run M-H using the mixture approximation as the candidate density
  outAdMitMH <- AdMitMH(KERNEL=GelmanMeng, mit=outAdMit$mit)
  options(digits=4, max.print=40)
  print(outAdMitMH)

  ## Use functions provided by the package coda to obtain
  ## quantities of interest for the density whose kernel is 'GelmanMeng'
  draws <- as.mcmc(outAdMitMH$draws[1001:1e5,])
  colnames(draws) <- c("X1","X2")
  summary(draws)
  summary(draws)$stat[,3]^2 / summary(draws)$stat[,4]^2 ## RNE
  plot(draws)

[Package AdMit version 1-00.02 Index]