Class ImagesScore

java.lang.Object
edu.cmu.tetrad.search.score.ImagesScore
All Implemented Interfaces:
Score

public class ImagesScore extends Object implements Score
Implements a score to average results over multiple scores. This is used for the IMaGES algorithm. The idea is that one pick and algorithm that takes (only) a score as input, such as FGES or GRaSP or BOSS, and then constructs an ImagesScore (which class) with a list of datasets as input, using same object-identical variables, and feeds this Images score to this algorithm through the constructor. One then runs the algorithm to get an estimate of the structure.

Importantly, only the variables from the first score will be returned from the getVariables method, so it is up to the user to ensure that all the scores share the same (object-identical) variables.

As for all scores in Tetrad, higher scores mean more dependence, and negative scores indicate independence.

Version:
$Id: $Id
Author:
josephramsey
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs an IMaGES score using the given list of individual scores.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Returns true iff the score determines the edge between x and y.
    int
    Returns the max degree, by default 1000.
    int
    The sample size of the data.
    The variables of the score.
    boolean
    isEffectEdge(double bump)
    Returns true iff the edge between x and y is an effect edge.
    double
    localScore(int i)
    Returns the local score of the gien node in the graph.
    double
    localScore(int i, int parent)
    Returns the (aggregate) local score for a variable given one of its parents, which is obtained by averaging the local such scores obtained from each individual score provided in the constructor, excluding scores that are returned as undefined (which are left out of the average).
    double
    localScore(int i, int[] parents)
    Returns the (aggregate) local score for a variable given its parents, which is obtained by averaging the local such scores obtained from each individual score provided in the constructor, excluding scores that are returned as undefined (which are left out of the average).
    double
    localScore(int i, int[] parents, int index)
    Returns the (aggregate) local score for a variable given its parents, which is obtained by averaging the local such scores obtained from each individual score provided in the constructor, excluding scores that are returned as undefined (which are left out of the average).
    double
    localScoreDiff(int x, int y, int[] z)
    Returns the score difference of the graph.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface edu.cmu.tetrad.search.score.Score

    append, getVariable, localScoreDiff, toString
  • Constructor Details

    • ImagesScore

      public ImagesScore(List<Score> scores)
      Constructs an IMaGES score using the given list of individual scores. These scores will be averaged to obtain the IMaGES score itself.
      Parameters:
      scores - The list of scores.
  • Method Details

    • localScoreDiff

      public double localScoreDiff(int x, int y, int[] z)
      Returns the score difference of the graph.

      Returns the average of the individual scores returned from each component score from their localScoreDiff methods. Score differences that are returned as undefined (NaN) are excluded from the average.

      Specified by:
      localScoreDiff in interface Score
      Parameters:
      x - A node.
      y - TAhe node.
      z - A set of nodes.
      Returns:
      The score difference.
    • localScore

      public double localScore(int i, int[] parents)
      Returns the (aggregate) local score for a variable given its parents, which is obtained by averaging the local such scores obtained from each individual score provided in the constructor, excluding scores that are returned as undefined (which are left out of the average).
      Specified by:
      localScore in interface Score
      Parameters:
      i - The variable whose score is needed.
      parents - an array of int objects
      Returns:
      This score.
    • localScore

      public double localScore(int i, int[] parents, int index)
      Returns the (aggregate) local score for a variable given its parents, which is obtained by averaging the local such scores obtained from each individual score provided in the constructor, excluding scores that are returned as undefined (which are left out of the average).
      Parameters:
      i - The variable whose score is needed.
      parents - The indices of the parents.
      index - The index of the score to use.
      Returns:
      This score.
    • localScore

      public double localScore(int i, int parent)
      Returns the (aggregate) local score for a variable given one of its parents, which is obtained by averaging the local such scores obtained from each individual score provided in the constructor, excluding scores that are returned as undefined (which are left out of the average).
      Specified by:
      localScore in interface Score
      Parameters:
      i - The variable whose score is needed.
      parent - a int
      Returns:
      This score.
    • localScore

      public double localScore(int i)
      Returns the local score of the gien node in the graph.

      Returns the (aggregate) local node score, which is obtained by averaging the local scores obtained from each individual score provided in the constructor, excluding scores that are returned as undefined (which are left out of the average).

      Specified by:
      localScore in interface Score
      Parameters:
      i - A node.
      Returns:
      The local score.
    • isEffectEdge

      public boolean isEffectEdge(double bump)
      Returns true iff the edge between x and y is an effect edge.

      Returns a judgment for FGES whether a score with the bump is for an effect edge.

      Specified by:
      isEffectEdge in interface Score
      Parameters:
      bump - The bump.
      Returns:
      True iff the edge between x and y is an effect edge.
    • getVariables

      public List<Node> getVariables()
      The variables of the score.

      Returns the variables.

      Specified by:
      getVariables in interface Score
      Returns:
      This list.
    • getSampleSize

      public int getSampleSize()
      The sample size of the data.

      Returns the sample size from the first score.

      Specified by:
      getSampleSize in interface Score
      Returns:
      This size.
    • getMaxDegree

      public int getMaxDegree()
      Returns the max degree, by default 1000.

      Returns the max degree from teh first score.

      Specified by:
      getMaxDegree in interface Score
      Returns:
      The max degree.
    • determines

      public boolean determines(List<Node> z, Node y)
      Returns true iff the score determines the edge between x and y.

      Returns the 'determines' judgment from the first score.

      Specified by:
      determines in interface Score
      Parameters:
      z - The set of nodes.
      y - The node.
      Returns:
      True iff the score determines the edge between x and y.