| AdMitIS {AdMit} | R Documentation |
Performs importance sampling using an adaptive mixture of Student-t distributions as the importance density
AdMitIS(N=1e5, KERNEL, G=function(theta){theta}, mit=list(), ...)
N |
number of draws used in importance sampling (positive
integer number). Default: N=1e5. |
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 log. If log=TRUE, the function
returns (natural) logarithm values of the kernel function. NA
and NaN values are not allowed. |
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 KERNEL and/or G. |
The AdMitIS function estimates
E_p[g(theta)], where p is the target
density, g is an (integrable w.r.t. p) function and E 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:
pmuSigmadf
where H (>=1) is the number of components of the
adaptive mixture of Student-t distributions and
d (>=1) is the dimension of the first argument in KERNEL. Typically,
mit is estimated by the function AdMit.
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.
Further details and examples of the R package AdMit
can be found in Ardia, Hoogerheide, van Dijk (2008).
Further information on importance sampling can be found in Geweke (1989) or Koop (2003).
David Ardia <david.ardia@unifr.ch>
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). http://www.tinbergen.nl/
Geweke, J.F. (1989) `Bayesian Inference in Econometric Models Using Monte Carlo Integration', Econometrica 57(6), pp.1317–1339. Reprinted in: Bayesian Inference, G. C. Box and N. Polson (Eds.), Edward Elgar Publishing, 1994.
Koop, G. (2003) Bayesian Econometrics, Wiley-Interscience (London, UK), first edition, ISBN: 0470845678.
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.
## 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))
## Use importance sampling with the mixture approximation as the
## importance density
outAdMitIS <- AdMitIS(KERNEL=GelmanMeng, mit=outAdMit$mit)
print(outAdMitIS)
## Covariance matrix estimated by importance sampling
'G.cov' <- function(theta, mu)
{
'G.cov_sub' <- function(x)
(x-mu)
theta <- as.matrix(theta)
tmp <- apply(theta, 1, G.cov_sub)
if (length(mu)>1)
t(tmp)
else
as.matrix(tmp)
}
outAdMitIS <- AdMitIS(KERNEL=GelmanMeng, G=G.cov, mit=outAdMit$mit,
mu=c(1.459,1.459))
print(outAdMitIS)
## Covariance matrix
V <- matrix(outAdMitIS$ghat,2,2)
print(V)
## Correlation matrix
cov2cor(V)