# sufficientStatistics_Weighted.CatDP: Weighted sufficient statistics of a "CatDP" object In bbricks: Bayesian Methods and Graphical Model Structures for Statistical Modeling

## Description

For following model structure:

pi|alpha \sim DP(alpha,U)

x|pi \sim Categorical(pi)

where DP(alpha,U) is a Dirichlet Process on positive integers, alpha is the "concentration parameter" of the Dirichlet Process, U is the "base measure" of this Dirichlet process, it is an uniform distribution on all positive integers.Categorical() is the Categorical distribution. See `dCategorical` for the definition of the Categorical distribution.
In the case of CatDP, x can only be positive integers.
The model structure and prior parameters are stored in a "CatDP" object.
The sufficient statistics of a set of samples x is:

• unique positive integer values

• effective counts of the unique positive integers

## Usage

 ```1 2``` ```## S3 method for class 'CatDP' sufficientStatistics_Weighted(obj, x, w, foreach = FALSE, ...) ```

## Arguments

 `obj` A "CatDP" object. `x` integer, the elements of the vector must all greater than 0, the samples of a Categorical distribution. `w` numeric, sample weights `foreach` logical, specifying whether to return the sufficient statistics for each observation. Default FALSE. `...` Additional arguments to be passed to other inherited types.

## Value

An object of class "ssCatDP", the sufficient statistics of a set of categorical samples. Or an integer vector same as x if foreach=TRUE.

## References

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

`CatDP`, `sufficientStatistics.CatDP`
 ```1 2 3 4 5 6 7``` ```x <- sample(1L:10L,size = 4,replace = TRUE) obj <- CatDP() w <- runif(4) ## return an object of class "ssCatDP" contains the weighted counts of each unique integer sufficientStatistics_Weighted(obj=obj,x=x,w=w) ## return x itself, no matter what w is sufficientStatistics_Weighted(obj=obj,x=x,w=w,foreach = TRUE) ```