Class RecursiveAdjustmentMultiple
java.lang.Object
edu.cmu.tetrad.search.RecursiveAdjustmentMultiple
Recursive adjustment for the case of multiple treatments X and multiple outcomes Y.
Semantics: X and Y are disjoint non-empty sets of nodes. An output set Z is intended to be a (generalized) adjustment set for estimating the joint conditioning effect p(Y | joint(X)) in the sense of the generalized adjustment criterion (Perković et al.).
This class mirrors the structure of RecursiveAdjustment, but is written explicitly for set-valued X and Y:
- forbidden nodes Forb_G(X,Y) are computed for the sets X,Y; - amenable paths are collected over all x in X, y in Y; - recursive search blocks noncausal backdoor paths between any x∈X and any y∈Y; - a final minimality pass tries to remove superfluous nodes from Z.
-
Constructor Summary
ConstructorsConstructorDescriptionRecursiveAdjustmentMultiple(Graph graph) Constructs an instance of AdjustmentMultiple with the provided graph. -
Method Summary
Modifier and TypeMethodDescriptionadjustmentSets(Set<Node> X, Set<Node> Y, String graphType, int maxNumSets, int maxRadius, int nearWhichEndpoint, int maxPathLength, boolean avoidAmenable, Set<Node> notFollowed, Set<Node> containing) Entry point analogous to Adjustment.adjustmentSetsRB, but for set-valued X and Y.Sets the collider policy for the AdjustmentMultiple instance.Sets the no amenable policy for the adjustment process.
-
Constructor Details
-
RecursiveAdjustmentMultiple
Constructs an instance of AdjustmentMultiple with the provided graph.- Parameters:
graph- the graph to be used for adjustment calculations; must not be null
-
-
Method Details
-
setColliderPolicy
Sets the collider policy for the AdjustmentMultiple instance.- Parameters:
p- the collider policy to be set; must not be null- Returns:
- the current instance of AdjustmentMultiple with the updated collider policy
-
setNoAmenablePolicy
Sets the no amenable policy for the adjustment process.- Parameters:
p- the no amenable policy to be applied, must not be null- Returns:
- the current instance of AdjustmentMultiple, allowing method chaining
-
adjustmentSets
public List<Set<Node>> adjustmentSets(Set<Node> X, Set<Node> Y, @Nullable String graphType, int maxNumSets, int maxRadius, int nearWhichEndpoint, int maxPathLength, boolean avoidAmenable, @Nullable Set<Node> notFollowed, @Nullable Set<Node> containing) Entry point analogous to Adjustment.adjustmentSetsRB, but for set-valued X and Y.- Parameters:
X- set of treatment nodes (non-empty, pairwise distinct from Y)Y- set of outcome nodes (non-empty, pairwise distinct from X)graphType- "dag", "pdag", "mag", or "pag" (case-insensitive); defaults to "dag" if null.maxNumSets- maximum number of adjustment sets to return.maxRadius- currently ignored (kept for API compatibility).nearWhichEndpoint- currently ignored (kept for API compatibility).maxPathLength- maximum length of witness paths; if < 0, treated as "unbounded".avoidAmenable- if true, never adjust on the amenable backbone (Perković-style GAC).notFollowed- nodes never to follow during witness search or to include in Z.containing- nodes that must be included in every adjustment set.- Returns:
- List of adjustment sets
-