Class IndTestChiSquare

java.lang.Object
edu.cmu.tetrad.search.test.IndTestChiSquare
All Implemented Interfaces:
IndependenceTest, RowsSettable

public final class IndTestChiSquare extends Object implements IndependenceTest, RowsSettable
Checks the conditional independence X _||_ Y | S, where S is a set of discrete variable, and X and Y are discrete variable not in S, by applying a conditional Chi Square test. A description of such a test is given in Fienberg, "The Analysis of Cross-Classified Categorical Data," 2nd edition. The formulas for the degrees of freedom used in this test are equivalent to the formulation on page 142 of Fienberg.
Version:
$Id: $Id
Author:
josephramsey
See Also:
  • Constructor Details

    • IndTestChiSquare

      public IndTestChiSquare(DataSet dataSet, double alpha)
      Constructs a new independence checker to check conditional independence facts for discrete data using a g square test.
      Parameters:
      dataSet - the discrete data set.
      alpha - the significance level of the tests.
  • Method Details

    • indTestSubset

      public IndependenceTest indTestSubset(List<Node> nodes)
      Checks conditional independence between variables in a subset.
      Specified by:
      indTestSubset in interface IndependenceTest
      Parameters:
      nodes - The sublist of variables.
      Returns:
      An instance of IndependenceTest representing the test for conditional independence.
      Throws:
      IllegalArgumentException - If the subset of variables is empty or contains non-original nodes.
    • getChiSquare

      public double getChiSquare()
      Returns the chi Square value.
      Returns:
      This value.
    • getDf

      public int getDf()
      Returns the degrees of freedom associated with the most recent call of isIndependent.
      Returns:
      These degrees.
    • checkIndependence

      public IndependenceResult checkIndependence(Node x, Node y, Set<Node> _z)
      Determines whether variable x is independent of variable y given a list of conditioning varNames z.
      Specified by:
      checkIndependence in interface IndependenceTest
      Parameters:
      x - a Node object
      y - a Node object
      _z - a Set object
      Returns:
      a IndependenceResult object
      See Also:
    • getPValue

      public Double getPValue(Node x, Node y, Set<Node> z)
      Returns the pvalue if the fact of X _||_ Y | Z is within the cache of results for independence fact.
      Parameters:
      x - the first node
      y - the second node
      z - the set of conditioning nodes
      Returns:
      the pValue result or null if not within the cache
    • determines

      public boolean determines(List<Node> z, Node x)
      Determines whether variable x is independent of variable y given a list of conditioning nodes.
      Parameters:
      z - The list of conditioning nodes.
      x - The variable x.
      Returns:
      True if variable x is determined by the list of conditioning nodes, false otherwise.
      Throws:
      NullPointerException - if z or any node in z is null.
      IllegalArgumentException - if any node in z is not used in the constructor.
    • getAlpha

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

      public void setAlpha(double alpha)
      Sets the significance level at which independence judgments should be made. Affects the cutoff for partial correlations to be considered statistically equal to zero.
      Specified by:
      setAlpha in interface IndependenceTest
      Parameters:
      alpha - This level.
    • getVariables

      public List<Node> getVariables()
      Returns the list of variables 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.
    • 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()
      Returns the data being analyzed.
      Specified by:
      getData in interface IndependenceTest
      Returns:
      This data.
      See Also:
    • isVerbose

      public boolean isVerbose()
      Checks if the verbosity flag is enabled.
      Specified by:
      isVerbose in interface IndependenceTest
      Returns:
      true if the verbosity flag is enabled, false otherwise
    • setVerbose

      public void setVerbose(boolean verbose)
      Sets whether verbose output should be printed.
      Specified by:
      setVerbose in interface IndependenceTest
      Parameters:
      verbose - True, if so.
    • setMinCountPerCell

      public void setMinCountPerCell(double minCountPerCell)
      The minimum number of counts per conditional table for chi-square for that table and its degrees of freedom to be included in the overall chi-square and degrees of freedom. Note that this should not be too small, or the chi-square distribution will not be a good approximation to the distribution of the test statistic.
      Parameters:
      minCountPerCell - The minimum number of counts per conditional table. The default is 1; this must be >= 0.
    • getRows

      public List<Integer> getRows()
      Returns the rows used for the test. If null, all rows are used.
      Specified by:
      getRows in interface RowsSettable
      Returns:
      The rows to use for the test. Can be null.
    • setRows

      public void setRows(List<Integer> rows)
      Sets the rows to use for the test. If null, all rows are used.
      Specified by:
      setRows in interface RowsSettable
      Parameters:
      rows - The rows to use for the test. Can be null.