marginalLikelihood.LinearGaussianGaussian {bbricks}R Documentation

Marginal likelihood of a "LinearGaussianGaussian" object


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)


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



A "LinearGaussianGaussian" object.


matrix, or the ones that can be converted to matrix. Each row of x is an observation.


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


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.


Return the log density if set to "TRUE".


Additional arguments to be passed to other inherited types.


numeric, the marginal likelihood.


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

See Also

LinearGaussianGaussian, marginalLikelihood_bySufficientStatistics.LinearGaussianGaussian


obj <- LinearGaussianGaussian(gamma=list(Sigma=matrix(c(2,1,1,2),2,2),
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]