Directed acyclic graphs (DAGs)
A simple way to define a DAG by means of regression model formulae.
DAG(..., order = FALSE)
... |
a sequence of model formulae |
order |
logical, defaulting to |
The DAG is defined by a sequence of recursive regression models. Each regression is defined by a model formula. For each formula the response defines a node of the graph and the explanatory variables the parents of that node. If the regressions are not recursive the function returns an error message.
Some authors prefer the terminology acyclic directed graphs (ADG).
the adjacency matrix of the DAG, i.e. a square Boolean matrix of order equal to the number of nodes of the graph and a one in position (i,j) if there is an arrow from i to j and zero otherwise. The rownames of the adjacency matrix are the nodes of the DAG.
If order = TRUE
the
adjacency matrix is permuted to have parents before children.
This can always be done (in more than one way) for DAGs. The resulting
adjacency matrix is upper triangular.
The model formulae may contain interactions, but they are ignored in the graph.
G. M. Marchetti
Lauritzen, S. (1996). Graphical models. Oxford: Clarendon Press.
## A Markov chain DAG(y ~ x, x ~ z, z ~ u) ## Another DAG DAG(y ~ x + z + u, x ~ u, z ~ u) ## A DAG with an isolated node DAG(v ~ v, y ~ x + z, z ~ w + u) ## There can be repetitions DAG(y ~ x + u + v, y ~ z, u ~ v + z) ## Interactions are ignored DAG(y ~ x*z + z*v, x ~ z) ## A cyclic graph returns an error! ## Not run: DAG(y ~ x, x ~ z, z ~ y) ## The order can be changed DAG(y ~ z, y ~ x + u + v, u ~ v + z) ## If you want to order the nodes (topological sort of the DAG) DAG(y ~ z, y ~ x + u + v, u ~ v + z, order=TRUE)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.