Transform a Partial Ancestral Graph (PAG) into a valid
Maximal Ancestral Graph (MAG) that belongs to the Markov equivalence class
represented by the given PAG, with no additional edges into node
Adjacency matrix of type amat.pag
(integer) position in adjacency matrix of node in the PAG into which no additional edges are oriented.
Positive integer: graph paths larger than
Logical; if true, some output is produced during computation.
This function converts a PAG (adjacency matrix) to a valid MAG (adjacency matrix) that belongs to the Markov equivalence class represented by the given PAG. Note that we assume that there are no selection variables, meaning that the edges in the PAG can be of the following types: ->, <->, o->, and o-o. In a first step, it uses the Arrowhead Augmentation of Zhang (2006), i.e., any o-> edge is oriented into ->. Afterwards, it orients each chordal component into a valid DAG without orienting any additional edges into x.
This function is used in the Generalized Backdoor Criterion
type="pag", see Maathuis and Colombo
(2015) for details.
The output is an adjacency matrix of type amat.pag representing a valid MAG that belongs to the Markov equivalence class represented by the given PAG.
Diego Colombo, Markus Kalisch and Martin Maechler.
M.H. Maathuis and D. Colombo (2015). A generalized back-door criterion. Annals of Statistics 43 1060-1088.
Zhang, J. (2006). Causal Inference and Reasoning in Causally Insufficient Systems. Ph. D. thesis, Carnegie Mellon University.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
## create the graph set.seed(78) p <- 12 g <- randomDAG(p, prob = 0.4) ## Compute the true covariance and then correlation matrix of g: true.corr <- cov2cor(trueCov(g)) ## define nodes 2 and 6 to be latent variables L <- c(2,6) ## Find PAG ## As dependence "oracle", we use the true correlation matrix in ## gaussCItest() with a large "virtual sample size" and a large alpha: true.pag <- dag2pag(suffStat = list(C= true.corr, n= 10^9), indepTest= gaussCItest, graph=g, L=L, alpha= 0.9999) ## find a valid MAG such that no additional edges are directed into (amat.mag <- pag2magAM(true.pag@amat, 4)) # -> the adj.matrix of the MAG
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.