AdMitIS {AdMit} | R Documentation |
Importance Sampling using an Adaptive Mixture of Student-t Distributions as the Importance Density
Description
Performs importance sampling using an adaptive mixture of Student-t distributions as the importance density
Usage
AdMitIS(N = 1e5, KERNEL, G = function(theta){theta}, mit = list(), ...)
Arguments
N |
number of draws used in importance sampling (positive
integer number). Default: |
KERNEL |
kernel function of the target density on which the
adaptive mixture of Student-t distributions 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 |
G |
function of interest used in importance sampling (see *Details*). |
mit |
list containing information on the mixture approximation (see *Details*). |
... |
further arguments to be passed to |
Details
The AdMitIS
function estimates
, where
is the target
density,
is an (integrable w.r.t.
) function and
denotes
the expectation operator, by importance sampling using an adaptive
mixture of Student-t distributions as the importance density.
By default, the function G
is given by:
G <- function(theta) { theta }
and therefore, AdMitIS
estimates the mean of
theta
by importance sampling. For other definitions of
G
, see *Examples*.
The argument mit
is a list containing information on the
mixture approximation. The following components must be provided:
p
vector (of length
) of mixing probabilities.
mu
matrix (of size
) containing the vectors of modes (in row) of the mixture components.
Sigma
matrix (of size
) 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 is the number of components of the
adaptive mixture of Student-t distributions and
is the dimension of the first argument in
KERNEL
. Typically,
mit
is estimated by the function AdMit
.
Value
A list with the following components:
ghat
: a vector containing the importance sampling estimates.
NSE
: a vector containing the numerical standard error of the components of ghat
.
RNE
: a vector containing the relative numerical efficiency of the
components of ghat
.
Note
Further details and examples of the R package AdMit
can be found in Ardia, Hoogerheide, van Dijk (2009a,b). See also
the package vignette by typing vignette("AdMit")
.
Further information on importance sampling can be found in Geweke (1989) or Koop (2003).
Please cite the package in publications. Use citation("AdMit")
.
Author(s)
David Ardia
References
Ardia, D., Hoogerheide, L.F., van Dijk, H.K. (2009a). AdMit: Adaptive Mixture of Student-t Distributions. R Journal 1(1), pp.25-30. doi: 10.32614/RJ-2009-003
Ardia, D., Hoogerheide, L.F., van Dijk, H.K. (2009b). Adaptive Mixture of Student-t Distributions as a Flexible Candidate Distribution for Efficient Simulation: The R Package AdMit. Journal of Statistical Software 29(3), pp.1-32. doi: 10.18637/jss.v029.i03
Geweke, J.F. (1989). Bayesian Inference in Econometric Models Using Monte Carlo Integration. Econometrica 57(6), pp.1317-1339.
Koop, G. (2003). Bayesian Econometrics. Wiley-Interscience (London, UK). ISBN: 0470845678.
See Also
AdMit
for fitting an adaptive mixture of Student-t
distributions to a target density through its KERNEL
function,
AdMitMH
for the independence chain Metropolis-Hastings
algorithm using an adaptive mixture of Student-t distributions
as the candidate density.
Examples
## NB : Low number of draws for speedup. Consider using more draws!
## Gelman and Meng (1991) 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(KERNEL = GelmanMeng,
mu0 = c(0.0, 0.1), control = list(Ns = 1e4))
## Use importance sampling with the mixture approximation as the
## importance density
outAdMitIS <- AdMitIS(N = 1e4, KERNEL = GelmanMeng, mit = outAdMit$mit)
print(outAdMitIS)