Get an optimal intervention target
Given a (observational or interventional) essential graph (or "CPDAG"), find the optimal intervention target that maximizes the number of edges that can be oriented after the intervention.
opt.target(essgraph, max.size, use.node.names = TRUE)
essgraph |
An |
max.size |
Maximum size of the intervention target. Only 1 and the
number of vertices of |
use.node.names |
Indicates if the intervention target should be
returned as a list of node names (if |
This function implements active learning strategies for structure learning from interventional data, one that calculates an optimal single-vertex intervention target, and one that calculates an optimal intervention target of arbitrary size. "Optimal" means the proposed intervention target guarantees the highest number of edges that can be oriented after performing the intervention, assuming the essential graph provided as input is the true essential graph under the currently available interventional data (i.e., neglecting possible estimation errors).
Implementation corresponds to algorithms "OptSingle" and "OptUnb" published in Hauser and Bühlmann (2012).
A character vector of node names (if use.node.names = TRUE
), or an
integer vector of node indices (if use.node.names = FALSE
) indicating
the optimal intervention target.
Alain Hauser (alain.hauser@math.ethz.ch)
A. Hauser and P. Bühlmann (2012). Two optimal strategies for active learning of causal models from interventions. Proceedings of the 6th European Workshop on Probabilistic Graphical Models (PGM-2012), 123–130
## Load predefined data data(gmG) ## Define the score (BIC) score <- new("GaussL0penObsScore", gmG8$x) ## Estimate the essential graph using GES ges.fit <- ges(score) essgraph <- ges.fit$essgraph ## Plot the estimated essential graph if (require(Rgraphviz)) { plot(essgraph, main = "Estimated CPDAG") } ## The CPDAG has 1 unoriented component with 3 edges (Author <-> Bar, Bar <-> ## Ctrl, Bar <-> V5) ## Get optimal single-vertex and unbounded intervention target opt.target(essgraph, max.size = 1) opt.target(essgraph, max.size = essgraph$node.count())
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.