Class Icd
java.lang.Object
edu.cmu.tetrad.algcomparison.algorithm.AbstractBootstrapAlgorithm
edu.cmu.tetrad.algcomparison.algorithm.oracle.pag.Icd
- All Implemented Interfaces:
Algorithm, LatentStructureAlgorithm, ReturnsBootstrapGraphs, TakesCovarianceMatrix, AcceptsKnowledge, HasParameters, TakesIndependenceWrapper, TetradSerializable, Serializable
public class Icd
extends AbstractBootstrapAlgorithm
implements Algorithm, AcceptsKnowledge, TakesIndependenceWrapper, ReturnsBootstrapGraphs, TakesCovarianceMatrix, LatentStructureAlgorithm
The Iterative Causal Discovery (ICD) algorithm.
ICD is an anytime algorithm that learns a Partial Ancestral Graph (PAG) iteratively, increasing the conditioning-set size r by 1 each round. At each round it produces an r-representing PAG, so the caller may interrupt the search early and still obtain a meaningful (if less refined) result.
Reference: Rohekar et al., "Iterative Causal Discovery in the Possible Presence of Latent Confounders and Selection Bias", NeurIPS 2021.
- Author:
- josephramsey (wrapper)
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionIcd()No-arg constructor required by the framework.Icd(IndependenceWrapper test) Constructor. -
Method Summary
Modifier and TypeMethodDescriptiongetComparisonGraph(Graph graph) Returns the comparison graph based on the true directed graph.Returns the data type that this algorithm requires.Returns a short description of this algorithm.Returns the independence wrapper.Returns the knowledge object.Returns the list of parameter keys used by this algorithm.runSearch(DataModel dataModel, Parameters parameters) Runs the ICD search and returns the resulting PAG.voidSets the independence wrapper.voidsetKnowledge(Knowledge knowledge) Sets the knowledge object.Methods inherited from class AbstractBootstrapAlgorithm
getBootstrapGraphs, searchMethods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ReturnsBootstrapGraphs
getBootstrapGraphs
-
Constructor Details
-
Icd
public Icd()No-arg constructor required by the framework. -
Icd
Constructor.- Parameters:
test- the independence wrapper to use.
-
-
Method Details
-
runSearch
Runs the ICD search and returns the resulting PAG.- Parameters:
dataModel- the data model containing the dataset.parameters- the parameters for the search algorithm.- Returns:
- the resulting PAG.
- Throws:
InterruptedException- if the search thread is interrupted.
-
getComparisonGraph
Returns the comparison graph based on the true directed graph.- Specified by:
getComparisonGraphin interfaceAlgorithm- Parameters:
graph- the true directed graph.- Returns:
- the PAG corresponding to the true graph.
-
getDescription
Returns a short description of this algorithm.- Specified by:
getDescriptionin interfaceAlgorithm- Returns:
- the description string.
-
getDataType
Returns the data type that this algorithm requires.- Specified by:
getDataTypein interfaceAlgorithm- Returns:
- the data type.
-
getParameters
Returns the list of parameter keys used by this algorithm.- Specified by:
getParametersin interfaceHasParameters- Returns:
- the parameter list.
-
getKnowledge
Returns the knowledge object.- Specified by:
getKnowledgein interfaceAcceptsKnowledge- Returns:
- the knowledge.
-
setKnowledge
Sets the knowledge object.- Specified by:
setKnowledgein interfaceAcceptsKnowledge- Parameters:
knowledge- the knowledge to set.
-
getIndependenceWrapper
Returns the independence wrapper.- Specified by:
getIndependenceWrapperin interfaceTakesIndependenceWrapper- Returns:
- the independence wrapper.
-
setIndependenceWrapper
Sets the independence wrapper.- Specified by:
setIndependenceWrapperin interfaceTakesIndependenceWrapper- Parameters:
test- the independence wrapper to set.
-