searchAM | R Documentation |
Searches for all ancestors, descendants, anteriors, spouses, neighbors, parents, children or possible descendants of a (set of) node(s) in a DAG, CPDAG, MAG or PAG.
searchAM(amat,x,
type = c("an", "de", "ant", "sp", "nb", "pa", "ch", "pde"))
amat |
Adjacency matrix of type amat.pag. |
x |
Target node(s), given as (a vector of) column number(s) of the node(s) in the adjacency matrix. |
type |
Character string specifying which relation to the
target nodes in
For the precise definitions of these concepts, see the references. |
This function performs a search for nodes related to the set of target nodes x
in the way specified by type
in adjacency matrix amat
of type amat.pag.
Vector of column numbers of the nodes related to x
as specified by type
.
Joris Mooij.
T.S. Richardson and P. Spirtes (2002). Ancestral graph Markov models. Annals of Statistics 30 962-1030.
J. Zhang (2008). Causal Reasoning with Ancestral Graphs. Journal of Machine Learning Research 9 1437-1474.
# Y-structure MAG
# Encode as adjacency matrix
p <- 10 # total number of variables
V <- c("X1","X2","X3","X4","X5","X6","X7","X8","X9","X10") # variable labels
# amat[i,j] = 0 iff no edge btw i,j
# amat[i,j] = 1 iff i *-o j
# amat[i,j] = 2 iff i *-> j
# amat[i,j] = 3 iff i *-- j
amat <- rbind(c(0,3,0,0,0,0,0,0,0,0),
c(3,0,3,0,0,0,0,0,0,0),
c(0,3,0,2,0,0,0,0,0,0),
c(0,0,3,0,2,0,0,0,0,0),
c(0,0,0,3,0,2,0,2,2,1),
c(0,0,0,0,3,0,2,0,0,0),
c(0,0,0,0,0,3,0,0,0,0),
c(0,0,0,0,2,0,0,0,0,0),
c(0,0,0,0,1,0,0,0,0,0),
c(0,0,0,0,1,0,0,0,0,0))
rownames(amat)<-V
colnames(amat)<-V
stopifnot(all.equal(searchAM(amat,5,type = "an"), c(3,4,5))) # ancestors of X5
stopifnot(all.equal(searchAM(amat,5,type = "de"), c(5,6,7))) # descendants of X5
stopifnot(all.equal(searchAM(amat,5,type = "ant"), c(1,2,3,4,5))) # anteriors of X5
stopifnot(all.equal(searchAM(amat,5,type = "sp"), c(8))) # spouses of X5
stopifnot(all.equal(searchAM(amat,2,type = "nb"), c(1,3))) # neighbors of X2
stopifnot(all.equal(searchAM(amat,c(4,6),type = "pa"), c(3,5))) # parents of {X4,X6}
stopifnot(all.equal(searchAM(amat,c(3,5),type = "ch"), c(4,6))) # children of {X3,X5}
stopifnot(all.equal(searchAM(amat,5,type = "pde"), c(5,6,7,9,10))) # possible descendants of X5
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.