# sufficientStatistics_Weighted.GaussianNIG: Weighted sufficient statistics of a "GaussianNIG" object In bbricks: Bayesian Methods and Graphical Model Structures for Statistical Modeling

## Description

For following Gaussian-NIG model structure:

x \sim Gaussian(X beta,sigma^2)

sigma^2 \sim InvGamma(a,b)

beta \sim Gaussian(m,sigma^2 V)

Where X is a row vector, or a design matrix where each row is an obervation. InvGamma() is the Inverse-Gamma distribution, Gaussian() is the Gaussian distribution. See `?dInvGamma` and `dGaussian` for the definitions of these distribution.
The model structure and prior parameters are stored in a "GaussianNIG" object.
This object will be used as a place for recording and accumulating information in the related inference/sampling functions such as posterior(), posteriorDiscard(), MAP(), marginalLikelihood(), dPosteriorPredictive(), rPosteriorPredictive() and so on.
The sufficient statistics of a set of samples (x,X) and weights ware:

• the effective number of samples N=sum(w);

• the covariance of X and x SXx=t(w*X)

• the covariance of X SX=t(w*X)

• the covariance of x Sx=t(w*x)

## Usage

 ```1 2``` ```## S3 method for class 'GaussianNIG' sufficientStatistics_Weighted(obj, x, w, X, foreach = FALSE, ...) ```

## Arguments

 `obj` A "GaussianNIG" object. `x` numeric, must satisfy length(x) = nrow(X). `w` numeric, sample weights. `X` matrix, must satisfy length(x) = nrow(X). `foreach` logical, if foreach=TRUE, will return a list of sufficient statistics for each (x,X), otherwise will return the sufficient statistics as a whole. `...` Additional arguments to be passed to other inherited types.

## Value

If foreach=TRUE, will return a list of sufficient statistics for each row of (x,X), otherwise will return the sufficient statistics of (x,X) as a whole.

## References

Banerjee, Sudipto. "Bayesian Linear Model: Gory Details." Downloaded from http://www. biostat. umn. edu/~ph7440 (2008).

`GaussianNIG`, `sufficientStatistics.GaussianNIG`
 ```1 2 3 4 5 6``` ```obj <- GaussianNIG(gamma=list(m=0,V=1,a=1,b=0)) X <- 1:20 x <- rnorm(20)+ X*0.3 w <- runif(20) sufficientStatistics_Weighted(obj = obj,X=X,x=x,w=w) sufficientStatistics_Weighted(obj = obj,X=X,x=x,w=w,foreach = TRUE) ```