rDAGWishart {BCDAG} | R Documentation |
Random samples from a compatible DAG-Wishart distribution
Description
This function implements a direct sampling from a compatible DAG-Wishart distribution with parameters a
and U
.
Usage
rDAGWishart(n, DAG, a, U)
Arguments
n |
number of samples |
DAG |
|
a |
common shape hyperparameter of the compatible DAG-Wishart, |
U |
position hyperparameter of the compatible DAG-Wishart, a |
Details
Assume the joint distribution of random variables X_1, \dots, X_q
is zero-mean Gaussian with covariance matrix Markov w.r.t. a Directed Acyclic Graph (DAG).
The allied Structural Equation Model (SEM) representation of a Gaussian DAG-model allows to express the covariance matrix as a function of the (Cholesky) parameters (D,L)
,
collecting the regression coefficients and conditional variances of the SEM.
The DAG-Wishart distribution (Cao et. al, 2019) with shape hyperparameter a = (a_1, ..., a_q)
and position hyperparameter U
(a s.p.d. (q,q)
matrix) provides a conjugate prior for parameters (D,L)
.
In addition, to guarantee compatibility among Markov equivalent DAGs (same marginal likelihood), the default choice (here implemented) a_j = a + |pa(j)| - q + 1
(a > q - 1)
, with |pa(j)|
the number of parents of node j
in the DAG,
was introduced by Peluso and Consonni (2020).
Value
A list of two elements: a (q,q,n)
array collecting n
sampled matrices L
and a (q,q,n)
array collecting n
sampled matrices D
Author(s)
Federico Castelletti and Alessandro Mascaro
References
F. Castelletti and A. Mascaro (2021). Structural learning and estimation of joint causal effects among network-dependent variables. Statistical Methods and Applications, Advance publication.
X. Cao, K. Khare and M. Ghosh (2019). Posterior graph selection and estimation consistency for high-dimensional Bayesian DAG models. The Annals of Statistics 47 319-348.
S. Peluso and G. Consonni (2020). Compatible priors for model selection of high-dimensional Gaussian DAGs. Electronic Journal of Statistics 14(2) 4110 - 4132.
Examples
# Randomly generate a DAG on q = 8 nodes with probability of edge inclusion w = 0.2
q = 8
w = 0.2
set.seed(123)
DAG = rDAG(q = q, w = w)
# Draw from a compatible DAG-Wishart distribution with parameters a = q and U = diag(1,q)
outDL = rDAGWishart(n = 5, DAG = DAG, a = q, U = diag(1, q))
outDL