Usage
do.mixture.sample(seed, b, n, J, mixture.param, alpha, fname, rpname, rqname, dpname, dqname)
Arguments
b
batch index for the samples
J
number of mixture components, including the defensive one
mixture.param
mixture.param = list(p, J, ...), where $p$ is the dimension of the sample, and $J$ is the number of mixture components, including the defensive one. mixture.param should be compatible with user defined functions f(n, j, mixture.param), rp(n, mixture.param), rq(n, j, mixture.param), dp(xmat, mixture.param), dq(xmat, j, mixture.param)
alpha
vector of mixture proportions
fname
name of user defined function fname(xmat, j, mixture.param). xmat is an $n \times p$ matrix of $n$ samples with $p$ dimensions. fname returns a vector of function values for each row in xmat. fname is defined for $j = 1, \cdots, J$. $j = 1, \cdots, J - 1$ corresponds to different proposal mixture components, and $j = J$ corresponds to the defensive mixture component.
rpname
name of user definded function rpname(n, mixture.param). It generates $n$ random samples from target distribution pname. Parameters can be specified in mixture.param. rpname returns an $n \times p$ matrix.
rqname
name of user defined function rqname(n, j, mixture.param). It generate $n$ random samples from the $j^{th}$ mixture component of proposal mixture distribution. rqname returns an $n \times p$ matrix. rqname is defined for $j = 1, \cdots, J - 1$.
dpname
name of user defined function dpname(xmat, mixture.param). It returns the density of xmat from the target distribution $pname$ as a vector of length nrow(xmat). Note that only the ratio between dpname and dqname matters. So dpname and dqname can return values of $C \times$dpname and $C \times$dqname respectively.
dqname
name of user defined function dqname(xmat, j, mixture.param). It returns the density of xmat from the proposal distribution $q_j$ as a vector of length nrow(xmat). dqname is defined for $j = 1, \cdots, J - 1$. Note that only the ratio between dpname and dqname matters. So dpname and dqname can return values of $C \times$dpname and $C \times$dqname respectively.