Mit {AdMit} | R Documentation |
Density function or random generation for an adaptive mixture of Student-t distributions
dMit(theta, mit=list(), log=TRUE) rMit(N=1, mit=list())
theta |
matrix (of size Nxd, where N,d>=1) of real values. |
mit |
list containing information on the mixture approximation (see *Details*). |
log |
logical; if log = TRUE , returns (natural) logarithm
values of the density. Default: log = TRUE . |
N |
number of draws (positive integer number). |
dMit
returns the density values while rMit
generates
draws from a mixture of Student-t distributions.
The argument mit
is a list containing information on the
adaptive mixture of Student-t distributions. The following components must
be provided:
p
mu
Sigma
df
where H (>=1) is the number of components and
d (>=1) is
the dimension of the mixture approximation. Typically,
mit
is estimated by the function AdMit
. If the
mit = list()
, a Student-t distribution located
at rep(0,d)
with scale matrix diag(d)
and one
degree of freedom parameter is used.
Vector (of length N of density values, or matrix (of size
N
xd) of random draws, where d (>=1) is the
dimension of the mixture approximation.
Further details and examples of the R package AdMit
can be found in Ardia, Hoogerheide, van Dijk (2008, 2009). See also
the package vignette by typing vignette("AdMit")
and the
files ‘AdMitJSS.txt’ and ‘AdMitRnews.txt’ in the ‘/doc’ package's folder.
Please cite the package in publications. Use citation("AdMit")
.
David Ardia <david.ardia@unifr.ch>
Ardia, D., Hoogerheide, L.F., van Dijk, H.K. (2008). The AdMit Package. Econometric Institute report 2008-17. http://publishing.eur.nl/ir/repub/asset/13053/EI2008-17.pdf (forthcoming in Rnews)
Ardia, D., Hoogerheide, L.F., van Dijk, H.K. (2009). Adaptive Mixture of Student-t Distributions as a Flexible Candidate Distribution for Efficient Simulation: The R Package AdMit. Journal of Statistical Software 29(3). http://www.jstatsoft.org/v29/i03/
AdMit
for fitting an adaptive mixture of
Student-t distributions to a given function KERNEL
,
AdMitIS
for importance sampling using an adaptive
mixture of Student-t distributions as the importance density,
AdMitMH
for the independence chain Metropolis-Hastings
using an adaptive mixture of Student-t distributions as the
candidate density.
## One dimensional two components mixture of Student-t distributions mit <- list(p = c(0.5, 0.5), mu = matrix(c(-2.0, 0.5), 2, 1, byrow = TRUE), Sigma = matrix(0.1, 2), df = 10) ## Generate draws from the mixture hist(rMit(10000, mit = mit), nclass = 100, freq = FALSE) x <- seq(from = -5.0, to = 5.0, by = 0.01) ## Add the density to the histogram lines(x, dMit(x, mit = mit, log = FALSE), col = "red", lwd = 2) ## Two dimensional (one component mixture) Student-t distribution mit <- list(p = 1, mu = matrix(0.0, 1.0, 2.0), Sigma = matrix(c(1.0, 0.0, 0.0, 1.0), 1, 4), df = 10) ## Function used to plot the mixture in two dimensions dMitPlot <- function(x1, x2, mit = mit) { dMit(cbind(x1, x2), mit = mit, log = FALSE) } x1 <- x2 <- seq(from = -10.0, to = 10.0, by = 0.1) thexlim <- theylim <- range(x1) z <- outer(x1, x2, FUN = dMitPlot, mit = mit) ## Contour plot of the mixture contour(x1, x2, z, nlevel = 20, las = 1, col = rainbow(20), xlim = thexlim, ylim = theylim) par(new = TRUE) ## Generate draws from the mixture plot(rMit(10000, mit = mit), pch = 20, cex = 0.3, xlim = thexlim, ylim = theylim, col = "red", las = 1) ## Two dimensional three components mixture of Student-t distributions mit <- list(p = c(0.2, 0.3, 0.5), mu = matrix(c(-5.0, -1.0, -3.0, 5.0, 1.0, 2.0), 3, 2, byrow = TRUE), Sigma = matrix(.5 * c(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0), 3, 4), df = 10) x1 <- x2 <- seq(from = -10.0, to = 10.0, by = 0.1) thexlim <- theylim <- range(x1) z <- outer(x1, x2, FUN = dMitPlot, mit = mit) ## Contour plot of the mixture contour(x1, x2, z, nlevel = 20, las = 1, col = rainbow(20), xlim = thexlim, ylim = theylim) par(new = TRUE) ## Generate random draws from the mixture plot(rMit(10000, mit = mit), pch = 20, cex = 0.3, xlim = thexlim, ylim = theylim, col = "red", las = 1)