# marginalLikelihood.LinearGaussianGaussian: Marginal likelihood of a "LinearGaussianGaussian" object In bbricks: Bayesian Methods and Graphical Model Structures for Statistical Modeling

## Description

Generate the marginal likelihood of the 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.
The model structure and prior parameters are stored in a "LinearGaussianGaussian" object.
Marginal likelihood = p(x|m,S,A,b,Sigma)

## Usage

 ```1 2``` ```## S3 method for class 'LinearGaussianGaussian' marginalLikelihood(obj, x, A, b = NULL, LOG = TRUE, ...) ```

## Arguments

 `obj` A "LinearGaussianGaussian" object. `x` matrix, or the ones that can be converted to matrix. Each row of x is an observation. `A` matrix or list. when x is a N x 1 matrix, A must be a matrix of N x dimz, dimz is the dimension of z; When x is a N x dimx matrix, where dimx > 1, A can be either a list or a matrix. When A is a list, A = {A_1,A_2,...A_N} is a list of dimx x dimz matrices. If A is a single dimx x dimz matrix, it will be replicated N times into a length N list `b` matrix, when x is a N x 1 matrix, b must also be a N x 1 matrix or length N vector; When x is a N x dimx matrix, where dimx > 1, b can be either a matrix or a vector. When b is a matrix, b={b_1^T,...,b_N^T} is a N x dimx matrix, each row is a transposed vector. When b is a length dimx vector, it will be transposed into a row vector and replicated N times into a N x dimx matrix. When b = NULL, it will be treated as a vector of zeros. Default NULL. `LOG` Return the log density if set to "TRUE". `...` Additional arguments to be passed to other inherited types.

## Value

numeric, the marginal likelihood.

## References

Gelman, Andrew, et al. Bayesian data analysis. CRC press, 2013.

`LinearGaussianGaussian`, `marginalLikelihood_bySufficientStatistics.LinearGaussianGaussian`
 ```1 2 3 4 5 6 7``` ```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) marginalLikelihood(obj = obj,x=x,A=A,b=b) marginalLikelihood(obj = obj,x=x,A=A,b=b,LOG=FALSE) ```