Package edu.cmu.tetrad.search.test
Class MsepTest
java.lang.Object
edu.cmu.tetrad.search.test.MsepTest
- All Implemented Interfaces:
IndependenceTest
Checks independence facts for variables associated with the nodes in a given graph by checking m-separation facts on
the underlying nodes. We use the IndependenceTest interface here so that this m-separation test can be used in place
of a statistical conditional independence test in algorithms to provide oracle information.
- Version:
- $Id: $Id
- Author:
- josephramsey
-
Constructor Summary
ConstructorsConstructorDescriptionMsepTest
(IndependenceFacts facts) Constructor.MsepTest
(IndependenceFacts facts, boolean keepLatents) Constructor.MsepTest
(IndependenceFacts facts, List<Node> variables) Constructor.Constructor.Constructor. -
Method Summary
Modifier and TypeMethodDescriptioncheckIndependence
(Node x, Node y, Set<Node> z) Checks the independence between two nodes with respect to a set of conditioning nodes.boolean
determines
(List<Node> z, Node x1) Determines if a node is m-separated from a set of conditioning nodes.double
getAlpha()
Returns an alpha level, 0.5.getData()
Returns the data set used for the test.getGraph()
Returns the underlying graph that is being used to calculate d-separation relationships.getVariable
(String name) Returns theNode
object with the given name.Return the list of TetradNodes over which this independence checker is capable of determinine independence relations-- that is, all the variables in the given graph or the given data set.indTestSubset
(List<Node> vars) Conducts an independence test on a subset of variables.boolean
isMSeparated
(Node x, Node y, Set<Node> z) Auxiliary method to calculate msep(x, y | z) directly from nodes instead of from variables.boolean
Returns True just in case verbose output should be printed.void
setAlpha
(double alpha) Sets the alpha level for the independence test.void
setPag
(boolean pag) True iff the graph is a PAGvoid
setVerbose
(boolean verbose) Sets the verbosity level for the program.toString()
Returns a string representation of this test.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface edu.cmu.tetrad.search.IndependenceTest
checkIndependence, determines, getCov, getDataSets, getSampleSize, getVariableNames
-
Constructor Details
-
MsepTest
Constructor.- Parameters:
graph
- The graph for which m-separation facts should be checked. This may be a DAG, CPDAG, or PAG. In the latter case, m-separation results will be returned (same algorithm).
-
MsepTest
Constructor.- Parameters:
facts
- Independence facts to be used for direct calculations of m-separation.variables
- The variables for the facts, if different from those that independence facts would return.- See Also:
-
MsepTest
Constructor.- Parameters:
facts
- Independence facts to be used for direct calculations of m-separation.- See Also:
-
MsepTest
Constructor.- Parameters:
graph
- The graph for which m-separation facts should be checked. This may be a DAG, CPDAG, or PAG. In the latter case, m-separation results will be returned (same algorithm).keepLatents
- Whether latent in the graph should be used in conditional independence facts. If the graph is being marginalized, this should be false.
-
MsepTest
Constructor.- Parameters:
facts
- Independence facts to be used for direct calculations of m-separation.keepLatents
- Whether latent in the graph should be used in conditional independence facts. If the graph is being marginalized, this should be false.- See Also:
-
-
Method Details
-
indTestSubset
Conducts an independence test on a subset of variables.- Specified by:
indTestSubset
in interfaceIndependenceTest
- Parameters:
vars
- The sublist of variables to test independence on.- Returns:
- This IndependenceTest object.
- Throws:
IllegalArgumentException
- If the subset is empty or contains variables that are not original variables.
-
checkIndependence
Checks the independence between two nodes with respect to a set of conditioning nodes.- Specified by:
checkIndependence
in interfaceIndependenceTest
- Parameters:
x
- The first node to check independence for.y
- The second node to check independence for.z
- The set of conditioning nodes.- Returns:
- The result of the independence test.
- Throws:
NullPointerException
- if the set of conditioning nodes is null or contains null elements.IllegalArgumentException
- if x or y is not an observed variable.RuntimeException
- if an undefined p-value is encountered during the test.- See Also:
-
isMSeparated
-
getVariables
Return the list of TetradNodes over which this independence checker is capable of determinine independence relations-- that is, all the variables in the given graph or the given data set.- Specified by:
getVariables
in interfaceIndependenceTest
- Returns:
- This list.
-
determines
Determines if a node is m-separated from a set of conditioning nodes.- Parameters:
z
- The set of conditioning nodes.x1
- The node to check independence for.- Returns:
- True if the node is m-separated from the conditioning nodes, false otherwise.
- Throws:
UnsupportedOperationException
- if not implemented.
-
getAlpha
public double getAlpha()Returns an alpha level, 0.5. This is an arbitrary number that will help decide whether a pseudo p-value returned by the test represents a dependence or an independence.- Specified by:
getAlpha
in interfaceIndependenceTest
- Returns:
- 0.5.
-
setAlpha
public void setAlpha(double alpha) Sets the alpha level for the independence test.- Specified by:
setAlpha
in interfaceIndependenceTest
- Parameters:
alpha
- The level of significance for the test.
-
getVariable
Returns theNode
object with the given name.- Specified by:
getVariable
in interfaceIndependenceTest
- Parameters:
name
- the name of the variable to retrieve- Returns:
- the Node object with the given name if found, null otherwise
-
getGraph
Returns the underlying graph that is being used to calculate d-separation relationships.- Returns:
- This graph.
-
toString
Returns a string representation of this test.- Specified by:
toString
in interfaceIndependenceTest
- Overrides:
toString
in classObject
- Returns:
- "M-separation".
-
getData
Returns the data set used for the test.- Specified by:
getData
in interfaceIndependenceTest
- Returns:
- The data set used for the test.
- See Also:
-
isVerbose
public boolean isVerbose()Returns True just in case verbose output should be printed.- Specified by:
isVerbose
in interfaceIndependenceTest
- Returns:
- True, if so.
-
setVerbose
public void setVerbose(boolean verbose) Sets the verbosity level for the program.- Specified by:
setVerbose
in interfaceIndependenceTest
- Parameters:
verbose
- True if verbose output should be printed, false otherwise.
-
setPag
public void setPag(boolean pag) True iff the graph is a PAG- Parameters:
pag
- True if the graph is a PAG, false if a DAG, MPDAG, or CPDAG.
-