gnorm function

Normalizing constant for G-Wishart

Normalizing constant for G-Wishart

Calculates log of the normalizing constant of G-Wishart distribution based on the Monte Carlo method, developed by Atay-Kayis and Massam (2005).

gnorm( adj, b = 3, D = diag( ncol( adj ) ), iter = 100 )

Arguments

  • adj: adjacency matrix corresponding to the graph structure. It is an upper triangular matrix in which aij=1aij = 1 if there is a link between notes ii and jj, otherwise aij=0aij = 0.
  • b: degree of freedom for G-Wishart distribution, WG(b,D)W_G(b, D).
  • D: positive definite (p×p)(p \times p) "scale" matrix for G-Wishart distribution, WG(b,D)W_G(b,D). The default is an identity matrix.
  • iter: number of iteration for the Monte Carlo approximation.

Details

Log of the normalizing constant approximation using Monte Carlo method for a G-Wishart distribution, KWG(b,D)K \sim W_G(b, D), with density:

Pr(K)=1I(b,D)K(b2)/2exp{12\mboxtrace(K×D)}. Pr(K) = \frac{1}{I(b, D)} |K| ^ {(b - 2) / 2} \exp \left\{- \frac{1}{2} \mbox{trace}(K \times D)\right\}.

Returns

Log of the normalizing constant of G-Wishart distribution.

References

Atay-Kayis, A. and Massam, H. (2005). A monte carlo method for computing the marginal likelihood in nondecomposable Gaussian graphical models, Biometrika, 92(2):317-335, tools:::Rd_expr_doi("10.1093/biomet/92.2.317")

Mohammadi, R., Massam, H. and Letac, G. (2023). Accelerating Bayesian Structure Learning in Sparse Gaussian Graphical Models, Journal of the American Statistical Association, tools:::Rd_expr_doi("10.1080/01621459.2021.1996377")

Uhler, C., et al (2018) Exact formulas for the normalizing constants of Wishart distributions for graphical models, The Annals of Statistics 46(1):90-118, tools:::Rd_expr_doi("10.1214/17-AOS1543")

Author(s)

Reza Mohammadi a.mohammadi@uva.nl

See Also

rgwish, rwish

Examples

## Not run: # adj: adjacency matrix of graph with 3 nodes and 2 links adj <- matrix( c( 0, 0, 1, 0, 0, 1, 0, 0, 0 ), 3, 3, byrow = TRUE ) gnorm( adj, b = 3, D = diag( 3 ) ) ## End(Not run)