Marginalize and/or condition on variables in an ancestral graph (AG)
Source:R/operations.R
condition_marginalize.RdMarginalize variables out of an AG, and/or condition on variables. Depending on the structure, it could produce a graph with directed, bidirected, and undirected edges.
References
Definition 4.2.1 in Thomas Richardson. Peter Spirtes. "Ancestral graph Markov models." Ann. Statist. 30 (4) 962 - 1030, August 2002. doi:10.1214/aos/1031689015
See also
Other operations:
exogenize(),
latent_project(),
moralize(),
mutate_caugi(),
skeleton()
Examples
mg <- caugi(
U %-->% X + Y,
A %-->% X,
B %-->% Y,
class = "DAG"
)
condition_marginalize(mg, marg_vars = "U") # ADMG
#> <caugi object; 4 nodes, 3 edges; simple: TRUE; built: TRUE; ptr=0x557451ac2180>
#> graph_class: AG
#> nodes: A, B, X, Y
#> edges: A-->X, B-->Y, X<->Y
condition_marginalize(mg, cond_vars = "U") # DAG
#> <caugi object; 4 nodes, 2 edges; simple: TRUE; built: TRUE; ptr=0x557451ffa1a0>
#> graph_class: AG
#> nodes: A, B, X, Y
#> edges: A-->X, B-->Y