# posterior.HDP: Update a "HDP" object with sample sufficient statistics In bbricks: Bayesian Methods and Graphical Model Structures for Statistical Modeling

## Description

For the model structure:

G|gamma \sim DP(gamma,U)

pi_j|G,alpha \sim DP(alpha,G), j = 1:J

z|pi_j \sim Categorical(pi_j)

k|z,G \sim Categorical(G), \textrm{ if z is a sample from the base measure G}

theta_k|psi \sim H0(psi)

x|theta_k,k \sim F(theta_k)

where DP(gamma,U) is a Dirichlet Process on positive integers, gamma is the "concentration parameter", U is the "base measure" of this Dirichlet process, U is an uniform distribution on all positive integers. DP(alpha,G) is a Dirichlet Process on integers with concentration parameter alpha and base measure G. The choice of F() and H0() can be described by an arbitrary "BasicBayesian" object such as "GaussianGaussian","GaussianInvWishart","GaussianNIW", "GaussianNIG", "CatDirichlet", and "CatDP". See `?BasicBayesian` for definition of "BasicBayesian" objects, and see for example `?GaussianGaussian` for specific "BasicBayesian" instances. As a summary, An "HDP" object is simply a combination of a "CatHDP" object (see `?CatHDP`) and an object of any "BasicBayesian" type.
In the case of HDP, z and k can only be positive integers.
This function will update the prior knowledge by adding the information of newly observed samples x, z and k. The model structure and prior parameters are stored in a "HDP" object, the prior parameters in this object will be updated after running this function.

## Usage

 ```1 2``` ```## S3 method for class 'HDP' posterior(obj, ss = NULL, ss1, ss2 = NULL, j, w = NULL, ...) ```

## Arguments

 `obj` A "HDP" object. `ss` Sufficient statistics of x of the "BasicBayesian" object, must be a list of sufficient statistics for each of the observations. Use sufficientStatistics(...,foreach=TRUE) to generate ss. `ss1` Sufficient statistics of k. In HDP case the sufficient statistic of sample k is k itself(if k is a integer vector with all positive values). `ss2` Sufficient statistics of z. In HDP case the sufficient statistic of sample z is z itself(if z is a integer vector with all positive values). `j` integer, group label. `w` Sample weights, default NULL. `...` Additional arguments to be passed to other inherited types.

## Value

None. the model stored in "obj" will be updated based on "ss", "ss1" and "ss2".

## References

Teh, Yee W., et al. "Sharing clusters among related groups: Hierarchical Dirichlet processes." Advances in neural information processing systems. 2005.

`HDP`,`posteriorDiscard.HDP`,`sufficientStatistics.HDP`