Class IndTestGSquare

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

public final class IndTestGSquare extends Object implements IndependenceTest
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 are equivalent to the formulation on page 142 of Fienberg.
Author:
josephramsey
See Also:
  • 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)
      Creates a new IndTestGSquare for a sublist of the variables.
      Specified by:
      indTestSubset in interface IndependenceTest
      Parameters:
      vars - This sublist.
    • 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 - the one variable being compared.
      y - the second variable being compared.
      _z - the list of conditioning varNames.
      Returns:
      True iff x _||_ y | z.
      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 - the new significance level.
    • getVariables

      public List<Node> getVariables()
      Return the list of variables 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 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)
      Returns a judgment whether the variables in z determine x.
      Specified by:
      determines in interface IndependenceTest
      Parameters:
      _z - The list of variables z1,...,zn with respect to which we want to know whether z determines x oir z.
      x - The one variable whose determination by z we want to know.
      Returns:
      true if it is estimated that z determines x or z determines y.
    • setDeterminationP

      public void setDeterminationP(double determinationP)
      Sets the threshold for making judgments of detemrination.
      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 True if verbose output is printed.
      Specified by:
      isVerbose in interface IndependenceTest
      Returns:
      True, if so.
    • setVerbose

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