Class IndTestIod

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

public class IndTestIod extends Object implements IndependenceTest

Checks independence result 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.

Author:
josephramsey
  • Constructor Details

    • IndTestIod

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

    • indTestSubset

      public IndependenceTest indTestSubset(List<Node> vars)
      Description copied from interface: IndependenceTest
      Returns an Independence test for a sublist of the variables.
      Specified by:
      indTestSubset in interface IndependenceTest
      Parameters:
      vars - The sublist of variables.
      Throws:
      javax.help.UnsupportedOperationException - Since the method is not implemented.
    • checkIndependence

      public IndependenceResult checkIndependence(Node x, Node y, Set<Node> z)
      Checks the indicated independence fact by pooling available tests for the given variables.
      Specified by:
      checkIndependence in interface IndependenceTest
      Parameters:
      x - one node.
      y - a second node.
      z - a List of nodes (conditioning variables)
      Returns:
      True iff x _||_ y | z
      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)
      Returns true if z contains x.
      Parameters:
      z - A list of nodes.
      x - The target node.
      Returns:
      True if z contains x.
    • getAlpha

      public double getAlpha()
      Returns the alpha level for this test.
      Specified by:
      getAlpha in interface IndependenceTest
      Returns:
      This level.
    • setAlpha

      public void setAlpha(double alpha)
      Sets the alpha level for this test.
      Specified by:
      setAlpha in interface IndependenceTest
      Parameters:
      alpha - This level.
    • getVariable

      public Node getVariable(String name)
      Returns the variable associated with the given name in the graph.
      Specified by:
      getVariable in interface IndependenceTest
      Parameters:
      name - The name of the variable.
      Returns:
      This variable.
    • getVariable

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

      public Node getNode(Node variable)
      Return the node associated with the given variable in the graph.
      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()
      The data set for this test is undefined, since the test is pooled over multiple datasets.
      Specified by:
      getData in interface IndependenceTest
      Returns:
      null.
      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 the test to verbose or not.
      Specified by:
      setVerbose in interface IndependenceTest
      Parameters:
      verbose - True, if so.