These functions provide the density and random number generation of the original, truncated stick-breaking (TSB) prior distribution given \(\theta\) and \(\gamma\), as per Ishwaran and James (2001).
dStick(theta, gamma, log=FALSE)
rStick(M, gamma)
This accepts an integer that is equal to one less than the number of truncated number of possible mixture components (\(M=1\)). Unlike most random deviate functions, this is not the number of random deviates to return.
This is \(\theta\), a vector of length \(M-1\), where \(M\) is the truncated number of possible mixture components.
This is \(\gamma\), a scalar, and is usually gamma-distributed.
Logical. If log=TRUE
, then the logarithm of the
density is returned.
dStick
gives the density and
rStick
generates a random deviate vector of length \(M\).
Application: Discrete Multivariate
Density: \(p(\pi) = \frac{(1-\theta)^{\beta-1}}{\mathrm{B}(1,\beta)}\)
Inventor: Sethuraman, J. (1994)
Notation 1: \(\pi \sim \mathrm{Stick}(\theta,\gamma)\)
Notation 2: \(\pi \sim \mathrm{GEM}(\theta,\gamma)\)
Notation 3: \(p(\pi) = \mathrm{Stick}(\pi | \theta, \gamma)\)
Notation 4: \(p(\pi) = \mathrm{GEM}(\pi | \theta, \gamma)\)
Parameter 1: shape parameter \(\theta \in (0,1)\)
Parameter 2: shape parameter \(\gamma > 0\)
Mean: \(E(\pi) = \frac{1}{1+\gamma}\)
Variance: \(var(\pi) = \frac{\gamma}{(1+\gamma)^2 (\gamma+2)}\)
Mode: \(mode(\pi) = 0\)
The original truncated stick-breaking (TSB) prior distribution assigns each \(\theta\) to be beta-distributed with parameters \(\alpha=1\) and \(\beta=\gamma\) (Ishwaran and James, 2001). This distribution is commonly used in truncated Dirichlet processes (TDPs).
Ishwaran, H. and James, L. (2001). "Gibbs Sampling Methods for Stick Breaking Priors". Journal of the American Statistical Association, 96(453), p. 161--173.
Sethuraman, J. (1994). "A Constructive Definition of Dirichlet Priors". Statistica Sinica, 4, p. 639--650.
ddirichlet
,
dmvpolya
, and
Stick
.
# NOT RUN {
library(LaplacesDemon)
dStick(runif(4), 0.1)
rStick(4, 0.1)
# }
Run the code above in your browser using DataLab