Class IndTestIod

java.lang.Object
edu.cmu.tetrad.search.IndTestIod
All Implemented Interfaces:
IndependenceTest

public class IndTestIod extends Object implements IndependenceTest
Checks independence results by listing all tests with those variables, testing each one, and returning the resolution of these test results. The reference is here:

Tillman, R., & Spirtes, P. (2011, June). Learning equivalence classes of acyclic models with latent and selection variables from multiple datasets with overlapping variables. In Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics (pp. 3-15). JMLR Workshop and Conference Proceedings.

The idea of this implementation is that one initializes this test with multiple independence tests (for multiple datasets), then a call to the independence check method for X _||_ Y | Z list the independence tests from among these, calls each and gets a p-value, then uses a resolution method (such as Fisher's) to resolve these p-values.

Based on work by Rob Tillman, Peter Spirtes, and referencing earlier work by David Danks.

Version:
$Id: $Id
Author:
josephramsey
  • Constructor Details

    • IndTestIod

      public IndTestIod(List<IndependenceTest> tests)
      Constructs a new pooled independence test from the given list of independence tests.
      Parameters:
      tests - a List object
  • Method Details

    • indTestSubset

      public IndependenceTest indTestSubset(List<Node> vars)
      Calculates the independence test for a subset of variables.
      Specified by:
      indTestSubset in interface IndependenceTest
      Parameters:
      vars - The sublist of variables.
      Returns:
      The independence test result.
      Throws:
      UnsupportedOperationException - if this method is not implemented.
    • checkIndependence

      public IndependenceResult checkIndependence(Node x, Node y, Set<Node> z)
      Checks the independence between two nodes given a set of nodes.
      Specified by:
      checkIndependence in interface IndependenceTest
      Parameters:
      x - The first node.
      y - The second node.
      z - The set of nodes.
      Returns:
      The result of the independence test.
      See Also:
    • getVariables

      public List<Node> getVariables()
      Returns the list of TetradNodes over which this independence checker is capable of determining independence relations-- that is, all the variables in the given graph or the given data set.
      Specified by:
      getVariables in interface IndependenceTest
      Returns:
      This list.
    • determines

      public boolean determines(List<Node> z, Node x)
      Determines whether the variables in z determine x.
      Parameters:
      z - The list of nodes to search.
      x - The node to check for containment.
      Returns:
      True if the node is contained in the list, false otherwise.
    • getAlpha

      public double getAlpha()
      Description copied from interface: IndependenceTest
      Returns the significance level of the independence test.
      Specified by:
      getAlpha in interface IndependenceTest
      Returns:
      This level.
      Throws:
      UnsupportedOperationException - since the method is not implemented.
    • setAlpha

      public void setAlpha(double alpha)
      Description copied from interface: IndependenceTest
      Sets the significance level.
      Specified by:
      setAlpha in interface IndependenceTest
      Parameters:
      alpha - This level.
      Throws:
      UnsupportedOperationException - since the method is not implemented.
    • getVariable

      public Node getVariable(String name)
      Retrieves a variable with the given name.
      Specified by:
      getVariable in interface IndependenceTest
      Parameters:
      name - the name of the variable
      Returns:
      the variable with the given name
      Throws:
      IllegalArgumentException - if the variable is not found
    • getVariable

      public Node getVariable(Node node)
      Returns the variable associated with the given node in the graph.
      Parameters:
      node - a Node object
      Returns:
      This variable.
    • getNode

      public Node getNode(Node variable)
      Return the node associated with the given variable in the graph.
      Parameters:
      variable - a Node object
      Returns:
      This node.
    • toString

      public String toString()
      Returns a string representation of this test.
      Specified by:
      toString in interface IndependenceTest
      Overrides:
      toString in class Object
      Returns:
      This string.
    • getData

      public DataSet getData()
      Description copied from interface: IndependenceTest

      getData.

      Specified by:
      getData in interface IndependenceTest
      Returns:
      The data model for the independence test, either a DataSet or a CovarianceMatrix.
      Throws:
      javax.help.UnsupportedOperationException - since the method is not implemented.
      See Also:
    • isVerbose

      public boolean isVerbose()
      Returns true if the test is verbose.
      Specified by:
      isVerbose in interface IndependenceTest
      Returns:
      True, if so.
    • setVerbose

      public void setVerbose(boolean verbose)
      Sets whether this test will print verbose output.
      Specified by:
      setVerbose in interface IndependenceTest
      Parameters:
      verbose - True, if so.