This function updates the class weight vector by drawing from its posterior distribution.
update_s(delta, m)
Arguments
delta: A numeric for the concentration parameter vector rep(delta,C) of the Dirichlet prior for s. Per default, delta = 1. In case of Dirichlet process-based updates of the latent classes, delta = 0.1 per default.
m: The vector of current class frequencies.
Returns
A vector, a draw from the Dirichlet posterior distribution for s.
Details
Let m=(m1,…,mC) be the frequencies of C classes. Given the class weight (probability) vector s=(s1,…,sC), the distribution of m is multinomial and its likelihood is
L(m∣s)∝i=1∏Csimi.
The conjugate prior p(s) for s is a Dirichlet distribution, which has a density function proportional to
i=1∏Csiδi−1,
where δ=(δ1,…,δC)
is the concentration parameter vector. Note that in {RprobitB}, δ1=⋯=δC. This restriction is necessary because the class number C can change. The posterior distribution of s is proportional to
p(s)L(m∣s)∝i=1∏Csiδi+mi−1,
which in turn is proportional to a Dirichlet distribution with parameters δ+m.
Examples
### number of classesC <-4### current class sizesm <- sample.int(C)### concentration parameter for Dirichlet prior (single-valued)delta <-1### updated class weight vectorupdate_s(delta =1, m = m)