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.int
Returns the max degree, by default 1000.int
Returns the sample size.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 node, int[] parents) The score of a node given its parents.double
localScoreDiff
(int x, int y, int[] z) Returns the score difference of the graph.int
numParameters
(int node, int[] parents) Returns the number of parameters for a node given its parents.void
setPenaltyDiscount
(double penaltyDiscount) Sets the penalty discount, which is a multiplier on the penalty term of BIC.void
setSamplePrior
(double samplePrior) Sets the sample prior.void
setStructurePrior
(double structurePrior) Sets the structure prior.void
setVariables
(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, wait
Methods 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:
localScore
in 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:
localScoreDiff
in 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:
getVariables
in interfaceScore
- Returns:
- This list.
-
setVariables
-
getSampleSize
public int getSampleSize()Returns the sample size.- Specified by:
getSampleSize
in 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:
isEffectEdge
in 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:
getDataSet
in interfaceDiscreteScore
- Returns:
- Ibid.
-
setStructurePrior
public void setStructurePrior(double structurePrior) Sets the structure prior.Sets the structure prior.
- Specified by:
setStructurePrior
in interfaceDiscreteScore
- Parameters:
structurePrior
- Ibid.
-
setSamplePrior
public void setSamplePrior(double samplePrior) Sets the sample prior.This method is not used for this score.
- Specified by:
setSamplePrior
in 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:
getMaxDegree
in interfaceScore
- Returns:
- The max degree.
-
toString
-