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

## Description

For following model structure:

x \sim Gaussian(A z + b, Sigma)

z \sim Gaussian(m,S)

Where Sigma is known. A is a dimx x dimz matrix, x is a dimx x 1 random vector, z is a dimz x 1 random vector, b is a dimm x 1 vector. Gaussian() is the Gaussian distribution. See `?dGaussian` for the definition of Gaussian distribution.
Update (m,S) by adding the information of newly observed samples x. The model structure and prior parameters are stored in a "LinearGaussianGaussian" object, the prior parameters in this object will be updated after running this function.

## Usage

 ```1 2``` ```## S3 method for class 'LinearGaussianGaussian' posterior(obj, ss, ...) ```

## Arguments

 `obj` A "LinearGaussianGaussian" object. `ss` Sufficient statistics of x. In LinearGaussian-Gaussian case the sufficient statistic of sample x is a object of type "ssLinearGaussianGaussian", it can be generated by the function sufficientStatistics(). `...` Additional arguments to be passed to other inherited types.

## Value

None. the gamma stored in "obj" will be updated based on "ss".

## References

Murphy, Kevin P. Machine learning: a probabilistic perspective. MIT press, 2012.

`LinearGaussianGaussian`,`posteriorDiscard.LinearGaussianGaussian`,`sufficientStatistics.LinearGaussianGaussian`
 ```1 2 3 4 5 6 7 8 9``` ```obj <- LinearGaussianGaussian(gamma=list(Sigma=matrix(c(2,1,1,2),2,2), m=c(0.2,0.5,0.6),S=diag(3))) x <- rGaussian(100,mu = runif(2),Sigma = diag(2)) A <- matrix(runif(6),2,3) b <- runif(2) ss <- sufficientStatistics(obj,x=x,A=A,b=b) obj posterior(obj=obj,ss=ss) obj ```