Class IndTestGSquare

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

public final class IndTestGSquare 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 G Square test. A description of such a test is given in Fienberg, "The Analysis of Cross-Classified Categorical Data," 2nd edition. The formula for degrees of freedom used in this test is equivalent to the formulation on page 142 of Fienberg.
Version:
$Id: $Id
Author:
josephramsey
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    IndTestGSquare(DataSet dataSet, double alpha)
    Constructs a new independence checker to check conditional independence facts for discrete data using a g square test.
  • Method Summary

    Modifier and Type
    Method
    Description
    Determines whether variable x is independent of variable y given a list of conditioning varNames z.
    boolean
    Determines whether variable x is independent of a set of variables _z.
    double
    Gets the getModel significance level.
    Returns the data.
    double
    Returns the p value associated with the most recent call of isIndependent.
    Retrieves the list of rows to use for the test.
    Return 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.
    Performs an independence test on a subset of variables.
    boolean
    Returns whether verbose output is enabled or not.
    void
    setAlpha(double alpha)
    Sets the significance level at which independence judgments should be made.
    void
    setDeterminationP(double determinationP)
    Sets the threshold for making judgments of determination.
    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.
    void
    Sets the list of rows to use for the test.
    void
    setVerbose(boolean verbose)
    Sets the verbose flag to enable or disable verbose output.
    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, getCov, getDataSets, getSampleSize, getVariable, getVariableNames
  • Constructor Details

    • IndTestGSquare

      public IndTestGSquare(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> vars)
      Performs an independence test on a subset of variables.
      Specified by:
      indTestSubset in interface IndependenceTest
      Parameters:
      vars - the subset of variables to perform the test on
      Returns:
      the result of the independence test for the subset of variables
      Throws:
      IllegalArgumentException - if the subset of variables is empty
    • getPValue

      public double getPValue()
      Returns the p value associated with the most recent call of isIndependent.
      Returns:
      This p-value.
    • 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:
    • getAlpha

      public double getAlpha()
      Gets the getModel significance level.
      Specified by:
      getAlpha in interface IndependenceTest
      Returns:
      this number.
    • 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()
      Return 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.
    • determines

      public boolean determines(Set<Node> _z, Node x)
      Determines whether variable x is independent of a set of variables _z.
      Specified by:
      determines in interface IndependenceTest
      Parameters:
      _z - a set of variables to condition on
      x - the variable to check for independence
      Returns:
      true if variable x is independent of _z, false otherwise
      Throws:
      NullPointerException - if _z or any element in _z is null
      IllegalArgumentException - if any variable in _z or x was not used in the constructor
    • setDeterminationP

      public void setDeterminationP(double determinationP)
      Sets the threshold for making judgments of determination.
      Parameters:
      determinationP - This threshold.
    • getData

      public DataSet getData()
      Returns the data.
      Specified by:
      getData in interface IndependenceTest
      Returns:
      This data.
      See Also:
    • isVerbose

      public boolean isVerbose()
      Returns whether verbose output is enabled or not.
      Specified by:
      isVerbose in interface IndependenceTest
      Returns:
      true if verbose output is enabled, false otherwise
    • setVerbose

      public void setVerbose(boolean verbose)
      Sets the verbose flag to enable or disable verbose output.
      Specified by:
      setVerbose in interface IndependenceTest
      Parameters:
      verbose - true to enable verbose output, false to disable it.
    • 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()
      Retrieves the list of rows to use for the test.
      Specified by:
      getRows in interface RowsSettable
      Returns:
      The list of rows to use for the test.
    • setRows

      public void setRows(List<Integer> rows)
      Sets the list of rows to use for the test.
      Specified by:
      setRows in interface RowsSettable
      Parameters:
      rows - The list of rows to use for the test.
      Throws:
      IllegalArgumentException - if any of the rows are out of bounds