Functions to find induced graphs after conditioning on a set of variables and marginalizing over another set.
inducedCovGraph(amat, sel = rownames(amat), cond =NULL)inducedConGraph(amat, sel = rownames(amat), cond =NULL)inducedRegGraph(amat, sel = rownames(amat), cond =NULL)inducedChainGraph(amat, cc=rownames(amat), cond =NULL, type="LWF")inducedDAG(amat, order, cond =NULL)
Arguments
amat: a square Boolean matrix, the adjacency matrix of a directed acyclic graph. The names of rows and of the columns are the nodes of the DAG.
sel: a character vector representing a subset of selected variables. The elements of the vector must be a subset of the names of the nodes i.e. of rownames(A). By default sel is the set of the nodes of the DAG.
cond: a character vector representing the variables on which you want to condition. cond must be disjoint from sel and their union must be a subset of the set of nodes. The set difference between the set of nodes and the union of sel and cond are the variables over which we marginalize. cond may be the null vector (the default), meaning that you want to condition on the empty set.
cc: a list of character vectors specifying the chain components for the chain graph.
type: a string indicating the interpretation of the chain graph. It can be either "LWF" (Lauritzen, Wermuth, Frydenberg interpretation), "AMP" (Andersson, Madigan, Perlman interpretation) or "MRG" (Multivariate regression graph interpretation).
order: a character vector indicating the ordering of the vertices of a DAG (left to right, past to future).
Details
Given a directed acyclic graph representing a set of conditional independencies it is possible to obtain other graphs of conditional independence implied after marginalizingover and conditionig on sets of nodes. Such graphs are the covariance graph, the concentration graph, the multivariate regression graph and the chain graph with different interpretations (see Cox & Wermuth, 1996, 2004).
Returns
inducedCovGraph returns the adjacency matrix of the covariance graph of the variables in set sel given the variables in set cond, implied by the original directed acyclic graph with adjacency matrix amat.
inducedConGraph returns the adjacency matrix of the concentration graph of the variables in set sel given the variables in set cond, implied by the original directed acyclic graph with adjacency matrix amat.
inducedRegGraph returns the adjacency matrix of the multivariate regression graph of the variables in set sel
given the variables in set cond, implied by the original directed acyclic graph with adjacency matrix amat.
inducedChainGraph returns the adjacency matrix of the chain graph for the variables in chain components cc, given the variables in set cond, with interpretation specified by string type, implied by the original directed acyclic graph with adjacency matrix amat.
inducedDAG returns the adjacency matrix of the DAG with the ordering order, implied by the original directed acyclic graph with adjacency matrix amat.
Note
If sel is NULL the functions return the null matrix. If cond is NULL, the conditioning set is empty and the functions inducedConGraph and inducedCovGraph
return the overall induced covariance or concentration matrices of the selected variables. If you do not specify sel
you cannot specify a non NULL value of cond.
References
Cox, D. R. & Wermuth, N. (1996). Multivariate dependencies. London: Chapman & Hall.
Wermuth, N. & Cox, D.R. (2004). Joint response graphs and separation induced by triangular systems. J.R. Statist. Soc. B, 66, Part 3, 687-717.
Author(s)
Giovanni M. Marchetti
See Also
DAG, UG,isAcyclic
Examples
## Define a DAGdag <- DAG(a ~ x, c ~ b+d, d~ x)dag
## Induced covariance graph of a, b, d given the empty set.inducedCovGraph(dag, sel=c("a","b","d"), cond=NULL)## Induced concentration graph of a, b, c given xinducedConGraph(dag, sel=c("a","b","c"), cond="x")## Overall covariance graphinducedCovGraph(dag)## Overall concentration graphinducedConGraph(dag)## Induced covariance graph of x, b, d given c, x.inducedCovGraph(dag, sel=c("a","b","d"), cond=c("c","x"))## Induced concentration graph of a, x, c given d, b.inducedConGraph(dag, sel=c("a","x","c"), cond=c("d","b"))## The DAG on p. 198 of Cox & Wermuth (1996)dag <- DAG(y1~ y2 + y3, y3 ~ y5, y4 ~ y5)## Cf. figure 8.7 p. 203 in Cox & Wermuth (1996)inducedCovGraph(dag, sel=c("y2","y3","y4","y5"), cond="y1")inducedCovGraph(dag, sel=c("y1","y2","y4","y5"), cond="y3")inducedCovGraph(dag, sel=c("y1","y2","y3","y4"), cond="y5")## Cf. figure 8.8 p. 203 in Cox & Wermuth (1996)inducedConGraph(dag, sel=c("y2","y3","y4","y5"), cond="y1")inducedConGraph(dag, sel=c("y1","y2","y4","y5"), cond="y3")inducedConGraph(dag, sel=c("y1","y2","y3","y4"), cond="y5")## Cf. figure 8.9 p. 204 in Cox & Wermuth (1996)inducedCovGraph(dag, sel=c("y2","y3","y4","y5"), cond=NULL)inducedCovGraph(dag, sel=c("y1","y2","y4","y5"), cond=NULL)inducedCovGraph(dag, sel=c("y1","y2","y3","y4"), cond=NULL)## Cf. figure 8.10 p. 204 in Cox & Wermuth (1996)inducedConGraph(dag, sel=c("y2","y3","y4","y5"), cond=NULL)inducedConGraph(dag, sel=c("y1","y2","y4","y5"), cond=NULL)inducedConGraph(dag, sel=c("y1","y2","y3","y4"), cond=NULL)## An induced regression graphdag2 = DAG(Y ~ X+U, W ~ Z+U)inducedRegGraph(dag2, sel="W", cond=c("Y","X","Z"))## An induced DAGinducedDAG(dag2, order=c("X","Y","Z","W"))## An induced multivariate regression graphinducedRegGraph(dag2, sel=c("Y","W"), cond=c("X","Z"))## An induced chain graph with LWF interpretationdag3 = DAG(X~W, W~Y, U~Y+Z)cc = list(c("W","U"), c("X","Y","Z"))inducedChainGraph(dag3, cc=cc, type="LWF")## ... with AMP interpretationinducedChainGraph(dag3, cc=cc, type="AMP")## ... with multivariate regression interpretationcc= list(c("U"), c("Z","Y"), c("X","W"))inducedChainGraph(dag3, cc=cc, type="MRG")