Learn R Programming

BCDAG (version 1.1.2)

get_MPMdag: Compute the median probability DAG model from the MCMC output

Description

This function computes the Median Probability DAG Model estimate (MPM) from the MCMC output of learn_DAG

Usage

get_MPMdag(learnDAG_output)

Value

The \((q,q)\) adjacency matrix of the median probability DAG model

Arguments

learnDAG_output

object of class bcdag

Author

Federico Castelletti and Alessandro Mascaro

Details

Output of learn_dag function consists of \(S\) draws from the joint posterior of DAGs and DAG-parameters in a zero-mean Gaussian DAG-model; see the documentation of learn_DAG for more details.

The Median Probability DAG Model estimate (MPM) is obtained by including all edges whose posterior probability exceeds 0.5. The posterior probability of inclusion of \(u -> v\) is estimated as the frequency of DAGs visited by the MCMC which contain the directed edge \(u -> v\); see also function get_edgeprobs and the corresponding documentation.

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

M.M. Barbieri and J.O. Berger (2004). Optimal predictive model selection. The Annals of Statistics 32 870-897

Examples

Run this code
# Randomly generate a DAG and the DAG-parameters
q = 8
w = 0.2
set.seed(123)
DAG = rDAG(q = q, w = w)
outDL = rDAGWishart(n = 1, DAG = DAG, a = q, U = diag(1, q))
L = outDL$L; D = outDL$D
Sigma = solve(t(L))%*%D%*%solve(L)
# Generate observations from a Gaussian DAG-model
n = 200
X = mvtnorm::rmvnorm(n = n, sigma = Sigma)
# Run the MCMC (Set S = 5000 and burn = 1000 for better results)
out_mcmc = learn_DAG(S = 500, burn = 100, a = q, U = diag(1,q)/n, data = X, w = 0.1,
                     fast = TRUE, save.memory = FALSE)
# Produce the MPM DAG estimate
get_MPMdag(out_mcmc)

Run the code above in your browser using DataLab