Package edu.cmu.tetrad.search
Class CpcStable
java.lang.Object
edu.cmu.tetrad.search.CpcStable
- All Implemented Interfaces:
GraphSearch
Implements a convervative version of PC, in which the Markov condition is assumed but faithfulness is tested
locally. Uses the PC-Stable adjacency search.
- Author:
- Joseph Ramsey (this version).
-
Constructor Summary
ConstructorsConstructorDescriptionCpcStable
(IndependenceTest independenceTest) Constructs a CPC algorithm that uses the given independence test as oracle. -
Method Summary
Modifier and TypeMethodDescriptionint
getDepth()
long
getGraph()
The graph that's constructed during the search.getOut()
boolean
static boolean
isArrowpointAllowed1
(Node from, Node to, Knowledge knowledge) search()
Runs PC starting with a fully connected graph over all of the variables in the domain of the independence test.void
setAggressivelyPreventCycles
(boolean aggressivelyPreventCycles) Sets to true just in case edges will not be added if they would create cycles.void
setDepth
(int depth) Sets the maximum number of variables conditioned on in any conditional independence test.void
void
setKnowledge
(Knowledge knowledge) Sets the knowledge specification used in the search.void
setOut
(PrintStream out) void
setVerbose
(boolean verbose)
-
Constructor Details
-
CpcStable
Constructs a CPC algorithm that uses the given independence test as oracle. This does not make a copy of the independence test, for fear of duplicating the data set!
-
-
Method Details
-
isAggressivelyPreventCycles
public boolean isAggressivelyPreventCycles()- Returns:
- true just in case edges will not be added if they would create cycles.
-
setAggressivelyPreventCycles
public void setAggressivelyPreventCycles(boolean aggressivelyPreventCycles) Sets to true just in case edges will not be added if they would create cycles. -
setDepth
public void setDepth(int depth) Sets the maximum number of variables conditioned on in any conditional independence test. If set to -1, the value of 1000 will be used. May not be set to Integer.MAX_VALUE, due to a Java bug on multi-core systems. -
getElapsedTime
public long getElapsedTime()- Returns:
- the elapsed time of search in milliseconds, after
search()
has been run.
-
getKnowledge
- Returns:
- the knowledge specification used in the search. Non-null.
-
setKnowledge
Sets the knowledge specification used in the search. Non-null. -
getIndependenceTest
- Returns:
- the independence test used in the search, set in the constructor. This is not returning a copy, for fear of duplicating the data set!
-
getDepth
public int getDepth()- Returns:
- the depth of the search--that is, the maximum number of variables conditioned on in any conditional independence test.
-
getAdjacencies
-
getNonadjacencies
-
search
Runs PC starting with a fully connected graph over all of the variables in the domain of the independence test. See PC for caveats. The number of possible cycles and bidirected edges is far less with CPC than with PC.- Specified by:
search
in interfaceGraphSearch
-
search
-
search
-
isArrowpointAllowed1
-
getSepsets
-
getGraph
The graph that's constructed during the search. -
setGraph
-
setVerbose
public void setVerbose(boolean verbose) -
setOut
-
getOut
-