# dPosteriorPredictive.GaussianNIW: Posterior predictive density function of a "GaussianNIW"... In bbricks: Bayesian Methods and Graphical Model Structures for Statistical Modeling

## Description

Generate the the density value of the posterior predictive distribution of the following structure:

mu,Sigma|m,k,v,S \sim NIW(m,k,v,S)

x|mu,Sigma \sim Gaussian(mu,Sigma)

Where NIW() is the Normal-Inverse-Wishart distribution, Gaussian() is the Gaussian distribution. See `?dNIW` and `dGaussian` for the definitions of these distribution.
The model structure and prior parameters are stored in a "GaussianNIW" object.
Posterior predictive density is p(x|m,k,v,S).

## Usage

 ```1 2``` ```## S3 method for class 'GaussianNIW' dPosteriorPredictive(obj, x, LOG = TRUE, ...) ```

## Arguments

 `obj` A "GaussianNIW" object. `x` matrix, or the ones that can be converted to matrix, each row of x is an observation. `LOG` Return the log density if set to "TRUE". `...` Additional arguments to be passed to other inherited types.

## Value

A numeric vector of the same length as nrow(x), the posterior predictive density.

## References

Murphy, Kevin P. "Conjugate Bayesian analysis of the Gaussian distribution." def 1.22 (2007): 16.

Gelman, Andrew, et al. "Bayesian Data Analysis Chapman & Hall." CRC Texts in Statistical Science (2004).

`GaussianNIW`, `dPosteriorPredictive.GaussianNIW`, `marginalLikelihood.GaussianNIW`
 ```1 2 3 4 5 6 7 8``` ```x <- rGaussian(1000,mu = c(1,1),Sigma = matrix(c(1,0.5,0.5,3),2,2)) obj <- GaussianNIW(gamma=list(m=c(0,0),k=1,v=2,S=diag(2))) ## out1 and out2 it should have the same values: out1 <- dPosteriorPredictive(obj = obj, x = x,LOG = TRUE) out2 <- numeric(nrow(x)) for(i in 1:nrow(x)) out2[i] <- marginalLikelihood(obj,x=x[i,,drop=FALSE],LOG = TRUE) max(abs(out1-out2)) ```