Class IndTestFisherZ

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

public final class IndTestFisherZ extends Object implements IndependenceTest, RowsSettable
Checks conditional independence of variable in a continuous data set using Fisher's Z test. See Spirtes, Glymour, and Scheines, "Causation, Prediction and Search," 2nd edition, page 94.
Version:
$Id: $Id
Author:
josephramsey, Frank Wimberly
  • Constructor Details

    • IndTestFisherZ

      public IndTestFisherZ(DataSet dataSet, double alpha)
      Constructs a new Independence test which checks independence facts based on the correlation matrix implied by the given data set (must be continuous). The given significance level is used.
      Parameters:
      dataSet - A data set containing only continuous columns.
      alpha - The alpha level of the test.
    • IndTestFisherZ

      public IndTestFisherZ(Matrix data, List<Node> variables, double alpha)
      Constructs a new Fisher Z independence test with the listed arguments.
      Parameters:
      data - A 2D continuous data set with no missing values.
      variables - A list of variables, a subset of the variables of data.
      alpha - The alpha level of the test.
    • IndTestFisherZ

      public IndTestFisherZ(ICovarianceMatrix covMatrix, double alpha)
      Constructs a new independence test that will determine conditional independence facts using the given correlation matrix and the given significance level.
      Parameters:
      covMatrix - The covariance matrix.
      alpha - The alpha level of the test.
  • Method Details

    • indTestSubset

      public IndependenceTest indTestSubset(List<Node> vars)
      Creates a new independence test instance for a subset of the variables.
      Specified by:
      indTestSubset in interface IndependenceTest
      Parameters:
      vars - The sublist of variables.
      Returns:
      a IndependenceTest object
      See Also:
    • checkIndependence

      public IndependenceResult checkIndependence(Node x, Node y, Set<Node> z)
      Determines whether variable x _||_ y | z given a list of conditioning variables 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) throws org.apache.commons.math3.linear.SingularMatrixException
      Returns the p-value for x _||_ y | z.
      Parameters:
      x - The first node.
      y - The second node.
      z - The set of conditioning variables.
      Returns:
      The p-value.
      Throws:
      org.apache.commons.math3.linear.SingularMatrixException - If a singularity occurs when invering a matrix.
    • getBic

      public double getBic()
      Returns the BIC score for this test.
      Returns:
      The BIC score.
    • getAlpha

      public double getAlpha()
      Gets the model significance level.
      Specified by:
      getAlpha in interface IndependenceTest
      Returns:
      This alpha.
    • 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 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.
    • setVariables

      public void setVariables(List<Node> variables)
      Sets the variables to a new list of the same size. Useful if multiple independence tests are needed with object-identical sets of variables.
      Parameters:
      variables - The new list of variables.
    • getVariable

      public Node getVariable(String name)
      Returns the variable with the given name.
      Specified by:
      getVariable in interface IndependenceTest
      Parameters:
      name - a String object
      Returns:
      This variable.
    • getData

      public DataSet getData()
      Returns the data set being analyzed.
      Specified by:
      getData in interface IndependenceTest
      Returns:
      This data.
      See Also:
    • getCov

      public ICovarianceMatrix getCov()
      Returns the correlation matrix being analyzed.
      Specified by:
      getCov in interface IndependenceTest
      Returns:
      This correlation matrix.
    • getDataSets

      public List<DataSet> getDataSets()
      Returns the (singleton) list of datasets being analyzed.
      Specified by:
      getDataSets in interface IndependenceTest
      Returns:
      these datasets.
    • getSampleSize

      public int getSampleSize()
      Returns the sample size.
      Specified by:
      getSampleSize in interface IndependenceTest
      Returns:
      This size.
    • isVerbose

      public boolean isVerbose()
      Returns true iff verbose output should be printed.
      Specified by:
      isVerbose in interface IndependenceTest
      Returns:
      True, if so.
    • setVerbose

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

      public String toString()
      Returns a string representation of the Fisher Z independence test. The string includes the value of alpha.
      Specified by:
      toString in interface IndependenceTest
      Overrides:
      toString in class Object
      Returns:
      A string representing the Fisher Z independence test.
    • determines

      public boolean determines(List<Node> z, Node x) throws UnsupportedOperationException
      Determines if a given Node x is determined by a list of Nodes z.
      Parameters:
      z - the list of Nodes
      x - the Node to check if it is determined
      Returns:
      true if x is determined by z, false otherwise
      Throws:
      UnsupportedOperationException - if the operation is not supported
    • getRows

      public List<Integer> getRows()
      Returns the rows used in the test.
      Specified by:
      getRows in interface RowsSettable
      Returns:
      The rows used in the test.
    • setRows

      public void setRows(List<Integer> rows)
      Allows the user to set which rows are used in the test. Otherwise, all rows are used, except those with missing values.
      Specified by:
      setRows in interface RowsSettable
      Parameters:
      rows - The rows to use for the test. Can be null.
    • setUsePseudoinverse

      public void setUsePseudoinverse(boolean usePseudoinverse)
      Sets whether or not to use the pseudoinverse method for determining independence.
      Parameters:
      usePseudoinverse - true to use the pseudoinverse method, false otherwise.