Get the anterior set of nodes in a graph. The anterior set (Richardson and Spirtes, 2002) includes all nodes reachable by following paths where every edge is either undirected or directed toward the target node.
For DAGs, the anterior set equals the ancestor set (since there are no undirected edges). For PDAGs, it includes both ancestors and nodes reachable via undirected edges.
Arguments
- cg
A
caugiobject of class DAG or PDAG.- nodes
A vector of node names, a vector of unquoted node names, or an expression combining these with
+andc().- index
A vector of node indexes.
Value
Either a character vector of node names (if a single node is requested) or a list of character vectors (if multiple nodes are requested).
References
Richardson, T. and Spirtes, P. (2002). Ancestral graph Markov models. The Annals of Statistics, 30(4):962-1030.
See also
Other queries:
ancestors(),
children(),
descendants(),
districts(),
edge_types(),
edges(),
exogenous(),
is_acyclic(),
is_admg(),
is_ag(),
is_caugi(),
is_cpdag(),
is_dag(),
is_empty_caugi(),
is_mag(),
is_pdag(),
is_ug(),
m_separated(),
markov_blanket(),
neighbors(),
nodes(),
parents(),
same_nodes(),
spouses(),
subgraph(),
topological_sort()
Examples
# PDAG example with directed and undirected edges
cg <- caugi(
A %-->% B %---% C,
B %-->% D,
class = "PDAG"
)
anteriors(cg, "A") # NULL (no anteriors)
#> NULL
anteriors(cg, "C") # A, B
#> [1] "A" "B"
anteriors(cg, "D") # A, B, C
#> [1] "A" "B" "C"
# For DAGs, anteriors equals ancestors
cg_dag <- caugi(
A %-->% B %-->% C,
class = "DAG"
)
anteriors(cg_dag, "C") # A, B
#> [1] "A" "B"