Package edu.cmu.tetrad.bayes
Interface BayesIm
- All Superinterfaces:
- Im,- Serializable,- Simulator,- TetradSerializable,- VariableSource
- All Known Implementing Classes:
- DirichletBayesIm,- MlBayesIm,- MlBayesImObs,- UpdatedBayesIm
Interface implemented by Bayes instantiated models. For purposes of clarification, we distinguish a Bayes parametric
 model from a Bayes instantiated model. The former provides enough information for us to know what the parameters of
 the Bayes net are, given that we know the graph of the Bayes net--i.e., it tells us how many categories each variable
 has and what the names of those categories are. It does not, however, tell us what the value of each parameter is;
 information about the value of each parameter in the Bayes net is provided in the Bayes instantiated model. This
 information is organized, variable by variable, in conditional probability tables. For each variable, a table is
 stored representing enough information to recover the conditional probability of each value of each variable given
 each combination of values of the parents of the variable in the graph. The rows of the table are the combinations of
 parent values of the variable, and the columns of the table are variable values of the variable. Most of the method
 in this interface are designed mainly to allow these values to be set and retrieved. A few methods are dedicated to
 bookkeeping chores, like clearing tables or initializing them randomly. One special method (simulateData) is
 dedicated to the task of generating randomly simulated data sets consistent with the conditional probabilities
 implied by the information stored in the conditional probability tables of the Bayes net. See implementations for
 details.
- Version:
- $Id: $Id
- Author:
- josephramsey
- See Also:
- 
Field SummaryFields inherited from interface edu.cmu.tetrad.util.ImserialVersionUIDFields inherited from interface edu.cmu.tetrad.data.SimulatorserialVersionUID
- 
Method SummaryModifier and TypeMethodDescriptionvoidclearRow(int nodeIndex, int rowIndex) Assigns random probability values to the child values of this row that add to 1.voidclearTable(int nodeIndex) Randomizes every row in the table for the given node index.booleanReturns true iff this Bayes net is equal to the given Bayes net.Returns the underlying Bayes PM.intgetCorrespondingNodeIndex(int nodeIndex, BayesIm otherBayesIm) Returns the index of the given node in the given BayesIm.default MlBayesIm.CptMapTypeRetrieves the CptMapType for this instance.getDag()$DescriptionReturns the list of measured variables.getNode(int nodeIndex) Returns the name of the given node.Returns the name of the given node.intgetNodeIndex(Node node) Returns the index of the given node.intgetNumColumns(int nodeIndex) Returns the number of columns.intReturns the name of the given node.intgetNumParents(int nodeIndex) Returns the number of parents for the given node.intgetNumRows(int nodeIndex) Returns the number of rows.intgetParent(int nodeIndex, int parentIndex) Returns the ith parent of the givne node.intgetParentDim(int nodeIndex, int parentIndex) Returns the dimension of the given parent for the given node.int[]getParentDims(int nodeIndex) Returns the dimensions of the pararents of the given node.int[]getParents(int nodeIndex) Returns the parents of the given node.intgetParentValue(int nodeIndex, int rowIndex, int colIndex) Returns the given parent value.int[]getParentValues(int nodeIndex, int rowIndex) Returns the parents values of the given node.doublegetProbability(int nodeIndex, int rowIndex, int colIndex) Returns the probability for the given cell in the given CPT.intgetRowIndex(int nodeIndex, int[] values) Returns a row index.Returns the list of variable names.Returns the list of variables.booleanisIncomplete(int nodeIndex) Returns true iff the given node has a Double.NaN value in it.booleanisIncomplete(int nodeIndex, int rowIndex) Returns true iff the given row in the given node has a Double.NaN value in it.voidNormalizes all rows in the tables associated with each of node in turn.voidnormalizeNode(int nodeIndex) Normalizes all rows in the table associated with a given node.voidnormalizeRow(int nodeIndex, int rowIndex) Normalizes the given row.voidrandomizeIncompleteRows(int nodeIndex) Randomizes any row in the table for the given node index that has a Double.NaN value in it.voidrandomizeRow(int nodeIndex, int rowIndex) Assigns random probability values to the child values of this row that add to 1.voidrandomizeTable(int nodeIndex) Randomizes every row in the table for the given node index.voidsetProbability(int nodeIndex, double[][] probMatrix) Sets the probability for the given node.voidsetProbability(int nodeIndex, int rowIndex, int colIndex, double value) Sets the probability for the given node at a given row and column in the table for that node.simulateData(int sampleSize, boolean latentDataSaved) Simulates a data set with the specified number of rows.simulateData(DataSet dataSet, boolean latentDataSaved) Simulates data based on the provided data set and saves the latent data if specified.toString()Returns a string representation for this Bayes net.
- 
Method Details- 
getBayesPmBayesPm getBayesPm()Returns the underlying Bayes PM.- Returns:
- the underlying Bayes PM.
 
- 
getDagGraph getDag()$Description- Returns:
- the underlying DAG.
 
- 
getNumNodesint getNumNodes()Returns the name of the given node.- Returns:
- the number of nodes in the model.
 
- 
getNodeReturns the name of the given node.- Parameters:
- nodeIndex- the index of the node.
- Returns:
- the node corresponding to the given node index.
 
- 
getNodeReturns the name of the given node.- Parameters:
- name- the name of the node.
- Returns:
- the node with the given name in the associated graph.
 
- 
getNodeIndexReturns the index of the given node.- Parameters:
- node- the given node.
- Returns:
- the index for that node, or -1 if the node is not in the BayesIm.
 
- 
getVariablesReturns the list of variables.- Specified by:
- getVariablesin interface- VariableSource
- Returns:
- the list of variable for this Bayes net.
 
- 
getVariableNamesReturns the list of variable names.- Specified by:
- getVariableNamesin interface- VariableSource
- Returns:
- the list of variable names for this Bayes net.
 
- 
getMeasuredNodesReturns the list of measured variables.- Returns:
- the list of measured variableNodes.
 
- 
getNumColumnsint getNumColumns(int nodeIndex) Returns the number of columns.- Parameters:
- nodeIndex- the index of the node.
- Returns:
- the number of columns in the table of the given node N with index 'nodeIndex'--that is, the number of possible values that N can take on. That is, if P(N=v0 | P1=v1, P2=v2, ... Pn=vn) is a conditional probability stored in 'probs', then the maximum number of rows in the table for N is #vals(N).
- See Also:
 
- 
getNumRowsint getNumRows(int nodeIndex) Returns the number of rows.- Parameters:
- nodeIndex- the index of the node.
- Returns:
- the number of rows in the table of the given node, which would be the total number of possible combinations of parent values for a given node. That is, if P(N=v0 | P1=v1, P2=v2, ... Pn=vn) is a conditional probability stored in 'probs', then the maximum number of rows in the table for N is #vals(P1) x #vals(P2) x ... x #vals(Pn).
- See Also:
 
- 
getNumParentsint getNumParents(int nodeIndex) Returns the number of parents for the given node.- Parameters:
- nodeIndex- the given node.
- Returns:
- the number of parents of the given node.
 
- 
getParentint getParent(int nodeIndex, int parentIndex) Returns the ith parent of the givne node.- Parameters:
- nodeIndex- the index of the node.
- parentIndex- the index of the parent.
- Returns:
- the given parent of the given node.
 
- 
getParentDimint getParentDim(int nodeIndex, int parentIndex) Returns the dimension of the given parent for the given node.- Parameters:
- nodeIndex- the index of the node.
- parentIndex- the index of the parent.
- Returns:
- the dimension of the given parent for the given node.
 
- 
getParentDimsint[] getParentDims(int nodeIndex) Returns the dimensions of the pararents of the given node.- Parameters:
- nodeIndex- the index of the node.
- Returns:
- (a defensive copy of) the array representing the dimensionality of each parent of a node, that is, the number of values which that node can take on. The order of entries in this array is the same as the order of entries of nodes returned by getParents() for that node.
- See Also:
 
- 
getParentsint[] getParents(int nodeIndex) Returns the parents of the given node.- Parameters:
- nodeIndex- the index of the node.
- Returns:
- (a defensive copy of) the array containing all of the parents of a given node in the order in which they are stored internally.
- See Also:
 
- 
getParentValuesint[] getParentValues(int nodeIndex, int rowIndex) Returns the parents values of the given node.- Parameters:
- nodeIndex- the index of the node.
- rowIndex- the index of the row in question.
- Returns:
- an array containing the combination of parent values for a given node and given row in the probability table for that node. To get the combination of parent values from the row number, the row number is represented using a variable-base place value system, where the bases for each place value are the dimensions of the parents in the order in which they are given by getParentDims(). For instance, if the row number (base 10) is 103 and the parent dimension array is [3 5 7], we calculate the first value as 103 / 7 = 14 with a remainder of 5. We then divide 14 / 5 = 2 with a remainder of 4. We then divide 2 / 3 = 0 with a remainder of 2. The variable place value representation is [2 4 5], which is the combination of parent values. This is the inverse function of getRowIndex().
- See Also:
 
- 
getParentValueint getParentValue(int nodeIndex, int rowIndex, int colIndex) Returns the given parent value.- Parameters:
- nodeIndex- the index of the node.
- rowIndex- the index of the row in question.
- colIndex- the index of the column in question.
- Returns:
- the value in the probability table for the given node, at the given row and column.
 
- 
getProbabilitydouble getProbability(int nodeIndex, int rowIndex, int colIndex) Returns the probability for the given cell in the given CPT.- Parameters:
- nodeIndex- the index of the node in question.
- rowIndex- the row in the table for this for node which represents the combination of parent values in question.
- colIndex- the column in the table for this node which represents the value of the node in question.
- Returns:
- the probability for the given node at the given row and column in the table for that node. To get the node index, use getNodeIndex(). To get the row index, use getRowIndex(). To get the column index, use getCategoryIndex() from the underlying BayesPm(). The value returned will represent a conditional probability of the form P(N=v0 | P1=v1, P2=v2, ... , Pn=vn), where N is the node referenced by nodeIndex, v0 is the value referenced by colIndex, and the combination of parent values indicated is the combination indicated by rowIndex.
- See Also:
 
- 
getRowIndexint getRowIndex(int nodeIndex, int[] values) Returns a row index.- Parameters:
- nodeIndex- the index of the node in question.
- values- the combination of parent values in question.
- Returns:
- the row in the table at which the given combination of parent values is represented for the given node.
 The row is calculated as a variable-base place-value number. For instance, if the array of parent dimensions is
 [3, 5, 7] and the parent value combination is [2, 4, 5], then the row number is (7 * (5 * (3 * 0 + 2) + 4)) + 5 =
 103. This is the inverse function to getVariableValues().
 Note: If the node has n values, the length of 'values' must be >= the number of parents. Only the first n values are used. 
- See Also:
 
- 
normalizeAllvoid normalizeAll()Normalizes all rows in the tables associated with each of node in turn.
- 
normalizeNodevoid normalizeNode(int nodeIndex) Normalizes all rows in the table associated with a given node.- Parameters:
- nodeIndex- the index of the node in question.
 
- 
normalizeRowvoid normalizeRow(int nodeIndex, int rowIndex) Normalizes the given row.- Parameters:
- nodeIndex- the index of the node in question.
- rowIndex- the index of the row in question.
 
- 
setProbabilityvoid setProbability(int nodeIndex, int rowIndex, int colIndex, double value) Sets the probability for the given node at a given row and column in the table for that node. To get the node index, use getNodeIndex(). To get the row index, use getRowIndex(). To get the column index, use getCategoryIndex() from the underlying BayesPm(). The value returned will represent a conditional probability of the form P(N=v0 | P1=v1, P2=v2, ... , Pn=vn), where N is the node referenced by nodeIndex, v0 is the value referenced by colIndex, and the combination of parent values indicated is the combination indicated by rowIndex.- Parameters:
- nodeIndex- the index of the node in question.
- rowIndex- the row in the table for this for node which represents the combination of parent values in question.
- colIndex- the column in the table for this node which represents the value of the node in question.
- value- the desired probability to be set.
- See Also:
 
- 
setProbabilityvoid setProbability(int nodeIndex, double[][] probMatrix) Sets the probability for the given node. The matrix row represent row index, the row in the table for this for node which represents the combination of parent values in question. of the CPT. The matrix column represent column index, the column in the table for this node which represents the value of the node in question.- Parameters:
- nodeIndex- the index of the node in question.
- probMatrix- a matrix containing probabilities of a node along with its parents
 
- 
getCorrespondingNodeIndexReturns the index of the given node in the given BayesIm.- Parameters:
- nodeIndex- the index of the node in this BayesIm.
- otherBayesIm- the BayesIm in which the node is to be found.
- Returns:
- the index of the node with the given name in the specified BayesIm.
 
- 
clearRowvoid clearRow(int nodeIndex, int rowIndex) Assigns random probability values to the child values of this row that add to 1.- Parameters:
- nodeIndex- the node for the table that this row belongs to.
- rowIndex- the index of the row.
 
- 
randomizeRowvoid randomizeRow(int nodeIndex, int rowIndex) Assigns random probability values to the child values of this row that add to 1.- Parameters:
- nodeIndex- the node for the table that this row belongs to.
- rowIndex- the index of the row.
 
- 
randomizeIncompleteRowsvoid randomizeIncompleteRows(int nodeIndex) Randomizes any row in the table for the given node index that has a Double.NaN value in it.- Parameters:
- nodeIndex- the node for the table whose incomplete rows are to be randomized.
 
- 
randomizeTablevoid randomizeTable(int nodeIndex) Randomizes every row in the table for the given node index.- Parameters:
- nodeIndex- the node for the table to be randomized.
 
- 
clearTablevoid clearTable(int nodeIndex) Randomizes every row in the table for the given node index.- Parameters:
- nodeIndex- the node for the table to be randomized.
 
- 
isIncompleteboolean isIncomplete(int nodeIndex, int rowIndex) Returns true iff the given row in the given node has a Double.NaN value in it.- Parameters:
- nodeIndex- the node for the table whose incomplete rows are to be checked.
- rowIndex- the index of the row in question.
- Returns:
- true iff one of the values in the given row is Double.NaN.
 
- 
isIncompleteboolean isIncomplete(int nodeIndex) Returns true iff the given node has a Double.NaN value in it.- Parameters:
- nodeIndex- the node for the table whose incomplete rows are to be checked.
- Returns:
- true iff any value in the table for the given node is Double.NaN.
 
- 
simulateDataSimulates a data set with the specified number of rows.- Specified by:
- simulateDatain interface- Simulator
- Parameters:
- sampleSize- the number of rows to simulate.
- latentDataSaved- if true, latent variables are saved in the data set.
- Returns:
- the simulated data set.
 
- 
simulateDataSimulates data based on the provided data set and saves the latent data if specified.- Parameters:
- dataSet- the data set to simulate data for
- latentDataSaved- a boolean value indicating whether the latent data should be saved or not
- Returns:
- the simulated data set
 
- 
equalsReturns true iff this Bayes net is equal to the given Bayes net. The sense of equality may vary depending on the type of Bayes net.
- 
toStringString toString()Returns a string representation for this Bayes net.
- 
getCptMapTypeRetrieves the CptMapType for this instance.- Returns:
- the CptMapType for this instance
 
 
-