Last chance! 50% off unlimited learning
Sale ends in
A simple way to define a DAG by means of regression model formulae.
DAG(..., order = FALSE)
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
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.
a sequence of model formulae
logical, defaulting to FALSE
. If TRUE
the nodes of the
DAG are permuted according to the topological order. If
FALSE
the nodes are in the order they first appear in the model
formulae (from left to right).
G. M. Marchetti
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).
Lauritzen, S. (1996). Graphical models. Oxford: Clarendon Press.
UG
, topSort
, edgematrix
, fitDag
## 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!
if (FALSE) 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)
Run the code above in your browser using DataLab