Class CellTableCountSample

java.lang.Object
edu.cmu.tetrad.data.CellTableCountSample
All Implemented Interfaces:
CellTable

public final class CellTableCountSample extends Object implements CellTable
Stores a cell count table of arbitrary dimension. Provides methods for incrementing particular cells and for calculating marginals.

This implementation of CellTable uses a MultiDimIntTable to store the cell counts and counts data in the dataset to populate the tables, for each independence question encountered.

Immutable.

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

    Constructors
    Constructor
    Description
    CellTableCountSample(DataSet dataSet, int[] testIndices)
    Constructs a new cell table using the given array for dimensions, initializing all cells in the table to zero.
    CellTableCountSample(DataSet dataSet, int[] testIndices, List<Integer> rows)
    Constructs a new cell table using the given array for dimensions, initializing all cells in the table to zero.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    calcMargin(int[] coords)
    Calculates a marginal sum for the cell table.
    int
    calcMargin(int[] coords, int[] marginVars)
    An alternative way to specify a marginal calculation.
    int
    getDimension(int varIndex)
    Returns the dimensions of the given variable.
    int
    getValue(int[] coords)
    Returns the value of the cell specified by the given coordinates.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CellTableCountSample

      public CellTableCountSample(DataSet dataSet, int[] testIndices)
      Constructs a new cell table using the given array for dimensions, initializing all cells in the table to zero. This constructor assumes no subsampling.
      Parameters:
      dataSet - the data set to be used in the table.
      testIndices - the indices of the variables to be used in the table.
    • CellTableCountSample

      public CellTableCountSample(DataSet dataSet, int[] testIndices, List<Integer> rows)
      Constructs a new cell table using the given array for dimensions, initializing all cells in the table to zero. The rows of the dataset to use; the default is to use all the rows. This is useful for subsampling.
      Parameters:
      dataSet - the data set to be used in the table.
      testIndices - the indices of the variables to be used in the table.
      rows - the rows of the dataset to use; if null, all rows are used.
  • Method Details

    • getDimension

      public int getDimension(int varIndex)
      Returns the dimensions of the given variable.
      Specified by:
      getDimension in interface CellTable
      Parameters:
      varIndex - the index of the variable in question.
      Returns:
      the dimension of the variable.
    • calcMargin

      public int calcMargin(int[] coords)
      Calculates a marginal sum for the cell table. The variables over which marginal sums should be taken are indicated by placing "-1's" in the appropriate positions in the coordinate argument. For instance, to find the margin for v0 = 1, v1 = 3, and v3 = 2, where the marginal sum ranges over all values of v2 and v4, the array [1, 3, -1, 2, -1] should be used.
      Specified by:
      calcMargin in interface CellTable
      Parameters:
      coords - an array of the sort described above.
      Returns:
      the marginal sum specified.
    • calcMargin

      public int calcMargin(int[] coords, int[] marginVars)
      An alternative way to specify a marginal calculation. In this case, coords specifies a particular cell in the table, and varIndices is an array containing the indices of the variables over which the margin sum should be calculated. The sum is over the cell specified by 'coord' and all the cells which differ from that cell in any of the specified coordinates.
      Specified by:
      calcMargin in interface CellTable
      Parameters:
      coords - an int[] value
      marginVars - an int[] value
      Returns:
      an int value
    • getValue

      public int getValue(int[] coords)
      Returns the value of the cell specified by the given coordinates.
      Specified by:
      getValue in interface CellTable
      Parameters:
      coords - the coordinates of the cell.
      Returns:
      the value of the cell.