Package edu.cmu.tetrad.search.score
Class DiscreteBicScore
java.lang.Object
edu.cmu.tetrad.search.score.DiscreteBicScore
- All Implemented Interfaces:
DiscreteScore,Score
Calculates the discrete BIC score. The likelihood for this score is calculated as SUM(ln(P(X | Z) P(Z))) across all
cells in all conditional probability tables for the discrete model. The parameters are counted as SUM(rows * (cols -
1)) for all conditional probability tables in the model, where rows summing to zero are discounted, as their marginal
probabilities cannot be calcualted. Then the BIC score is calculated as 2L - ck ln N, where c is a multiplier on the
penalty ("penalty discount").
As for all scores in Tetrad, higher scores mean more dependence, and negative scores indicate independence.
- Version:
- $Id: $Id
- Author:
- josephramsey
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns the dataset.intReturns the max degree, by default 1000.intReturns the sample size.The variables of the score.booleanisEffectEdge(double bump) Returns true iff the edge between x and y is an effect edge.doublelocalScore(int node, int[] parents) The score of a node given its parents.doublelocalScoreDiff(int x, int y, int[] z) Returns the score difference of the graph.intnumParameters(int node, int[] parents) Returns the number of parameters for a node given its parents.voidsetPenaltyDiscount(double penaltyDiscount) Sets the penalty discount, which is a multiplier on the penalty term of BIC.voidsetSamplePrior(double samplePrior) Sets the sample prior.voidsetStructurePrior(double structurePrior) Sets the structure prior.voidsetVariables(List<Node> variables) Sets the variables to a new list of the same size.toString()A string representation of the score.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface edu.cmu.tetrad.search.score.Score
append, determines, getVariable, localScore, localScore, localScoreDiff
-
Constructor Details
-
DiscreteBicScore
Constructs the score using a dataset.- Parameters:
dataSet- The discrete dataset to analyze.
-
-
Method Details
-
localScore
public double localScore(int node, int[] parents) The score of a node given its parents.Returns the score of the given nodes given its parents.
- Specified by:
localScorein interfaceScore- Parameters:
node- The node.parents- The parents.- Returns:
- The score.
-
numParameters
public int numParameters(int node, int[] parents) Returns the number of parameters for a node given its parents.- Parameters:
node- The index of the node.parents- The indices of the node's parents.- Returns:
- a int
-
localScoreDiff
public double localScoreDiff(int x, int y, int[] z) Returns the score difference of the graph.Returns localScore(y | z, x) - localScore(y | z).
- Specified by:
localScoreDiffin interfaceScore- Parameters:
x- A node.y- TAhe node.z- A set of nodes.- Returns:
- The score difference.
-
getVariables
The variables of the score.Returns the variables.
- Specified by:
getVariablesin interfaceScore- Returns:
- This list.
-
setVariables
Sets the variables to a new list of the same size.- Parameters:
variables- The new list of variables.
-
getSampleSize
public int getSampleSize()Returns the sample size.- Specified by:
getSampleSizein interfaceScore- Returns:
- This size.
-
isEffectEdge
public boolean isEffectEdge(double bump) Returns true iff the edge between x and y is an effect edge.Must be called directly after the corresponding scoring call. Used in FGES.
- Specified by:
isEffectEdgein interfaceScore- Parameters:
bump- The bump.- Returns:
- True iff the edge between x and y is an effect edge.
- See Also:
-
getDataSet
Returns the dataset.Returns the dataset being analyzed.
- Specified by:
getDataSetin interfaceDiscreteScore- Returns:
- Ibid.
-
setStructurePrior
public void setStructurePrior(double structurePrior) Sets the structure prior.Sets the structure prior.
- Specified by:
setStructurePriorin interfaceDiscreteScore- Parameters:
structurePrior- Ibid.
-
setSamplePrior
public void setSamplePrior(double samplePrior) Sets the sample prior.This method is not used for this score.
- Specified by:
setSamplePriorin interfaceDiscreteScore- Parameters:
samplePrior- Ibid.
-
setPenaltyDiscount
public void setPenaltyDiscount(double penaltyDiscount) Sets the penalty discount, which is a multiplier on the penalty term of BIC.- Parameters:
penaltyDiscount- This discount.
-
getMaxDegree
public int getMaxDegree()Returns the max degree, by default 1000.Returns the maximum degree for some algorithms.
- Specified by:
getMaxDegreein interfaceScore- Returns:
- The max degree.
-
toString
A string representation of the score.Returns a string representation of this score.
-