marginalLikelihood.LinearGaussianGaussian {bbricks}R Documentation

Marginal likelihood of a "LinearGaussianGaussian" object

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

## 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.

See Also

LinearGaussianGaussian, marginalLikelihood_bySufficientStatistics.LinearGaussianGaussian

Examples

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)

[Package bbricks version 0.1.4 Index]