| 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:
pmuSigmadf
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
Nxd) 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).
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/
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(.5,.5),
mu=matrix(c(-2,.5), 2, 1, byrow=TRUE),
Sigma=matrix(.1,2),
df=10)
## Generate draws from the mixture
hist(rMit(10000, mit=mit), nclass=100, freq=FALSE)
x <- seq(from=-5, to=5, by=.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,1,2),
Sigma=matrix(c(1,0,0,1),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, to=10, by=.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=.3, xlim=thexlim,
ylim=theylim, col="red", las=1)
## Two dimensional three components mixture of Student-t distributions
mit <- list(p=c(.2,.3,.5),
mu=matrix(c(-5,-1,-3,5,1,2),3,2,byrow=TRUE),
Sigma=matrix(.5*c(1,1,1,0,0,0,0,0,0,1,1,1),3,4),
df=10)
x1 <- x2 <- seq(from=-10, to=10, by=.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=.3, xlim=thexlim,
ylim=theylim, col="red", las=1)