Package edu.cmu.tetrad.bayes
Class ApproximateUpdater
java.lang.Object
edu.cmu.tetrad.bayes.ApproximateUpdater
- All Implemented Interfaces:
BayesUpdater,ManipulatingBayesUpdater,TetradSerializable,Serializable
Calculates updated marginals for a Bayes net by simulating data and calculating likelihood ratios. The method is as
follows. For P(A | B), enough sample points are simulated from the underlying BayesIm so that 1000 satisfy the
condition B. Then the maximum likelihood estimate of condition A is calculated.
- Version:
- $Id: $Id
- Author:
- josephramsey
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionApproximateUpdater(BayesIm bayesIm) Constructs a new updater for the given Bayes net.ApproximateUpdater(BayesIm bayesIm, Evidence evidence) Constructs a new updater for the given Bayes net. -
Method Summary
Modifier and TypeMethodDescriptiondouble[]calculatePriorMarginals(int nodeIndex) Calculates the prior marginal probabilities of the given node.double[]calculateUpdatedMarginals(int nodeIndex) Calculates the updated marginal probabilities of the given node, given the evidence.Getter for the fieldbayesIm.Getter for the fieldevidence.doublegetJointMarginal(int[] variables, int[] values) Computes the joint marginal probability for the specified variables and their corresponding values.Getter for the fieldmanipulatedBayesIm.getManipulatedGraph.doublegetMarginal(int variable, int value) Returns the marginal probability of the given variable taking the given value, given the evidence.getUpdatedBayesIm.booleanisJointMarginalSupported.static ApproximateUpdaterReturns a simple exemplar of this class to test serialization.voidsetEvidence(Evidence evidence) Sets new evidence for the updater.toString()Prints out the most recent marginal.
-
Constructor Details
-
ApproximateUpdater
Constructs a new updater for the given Bayes net.- Parameters:
bayesIm- the Bayes net to be updated.
-
ApproximateUpdater
Constructs a new updater for the given Bayes net.- Parameters:
bayesIm- the Bayes net to be updated.evidence- the evidence for the update.
-
-
Method Details
-
serializableInstance
Returns a simple exemplar of this class to test serialization.- Returns:
- a simple exemplar of this class to test serialization.
-
getBayesIm
Getter for the field
bayesIm.- Specified by:
getBayesImin interfaceBayesUpdater- Returns:
- the Bayes instantiated model that is being updated.
-
getManipulatedBayesIm
Getter for the field
manipulatedBayesIm.- Specified by:
getManipulatedBayesImin interfaceManipulatingBayesUpdater- Returns:
- the Bayes instantiated model after manipulations have been applied.
-
getManipulatedGraph
getManipulatedGraph.
- Specified by:
getManipulatedGraphin interfaceManipulatingBayesUpdater- Returns:
- the graph for getManipulatedBayesIm().
-
getUpdatedBayesIm
getUpdatedBayesIm.
- Specified by:
getUpdatedBayesImin interfaceManipulatingBayesUpdater- Returns:
- the updated Bayes IM, or null if there is no updated Bayes IM.
-
getEvidence
Getter for the field
evidence.- Specified by:
getEvidencein interfaceManipulatingBayesUpdater- Returns:
- a copy of the getModel evidence.
-
setEvidence
Sets new evidence for the updater. Once this is called, old updating results should not longer be available.Sets new evidence for the updater. Once this is called, old updating results should not longer be available.
Sets new evidence for the next update operation.
- Specified by:
setEvidencein interfaceBayesUpdater- Specified by:
setEvidencein interfaceManipulatingBayesUpdater- Parameters:
evidence- evidence
-
getMarginal
public double getMarginal(int variable, int value) Returns the marginal probability of the given variable taking the given value, given the evidence.Returns the updated graph. This is the graph in which all probabilities of variables conditional on their parents have been updated.
- Specified by:
getMarginalin interfaceBayesUpdater- Specified by:
getMarginalin interfaceManipulatingBayesUpdater- Parameters:
variable- variable indexvalue- category index- Returns:
- P(variable = value | evidence), where evidence is getEvidence().
-
isJointMarginalSupported
public boolean isJointMarginalSupported()isJointMarginalSupported.
- Specified by:
isJointMarginalSupportedin interfaceBayesUpdater- Returns:
- a boolean
-
getJointMarginal
public double getJointMarginal(int[] variables, int[] values) Computes the joint marginal probability for the specified variables and their corresponding values.- Specified by:
getJointMarginalin interfaceBayesUpdater- Parameters:
variables- an array of integers representing the indices of the variables for which the joint marginal is to be computed.values- an array of integers representing the corresponding values of the variables for which the joint marginal is to be computed.- Returns:
- the joint marginal probability for the specified variables and values.
-
calculatePriorMarginals
public double[] calculatePriorMarginals(int nodeIndex) Calculates the prior marginal probabilities of the given node.- Specified by:
calculatePriorMarginalsin interfaceBayesUpdater- Parameters:
nodeIndex- node index- Returns:
- P(node = value), where value is the value of the node in the Bayes net.
-
calculateUpdatedMarginals
public double[] calculateUpdatedMarginals(int nodeIndex) Calculates the updated marginal probabilities of the given node, given the evidence.- Specified by:
calculateUpdatedMarginalsin interfaceBayesUpdater- Parameters:
nodeIndex- node index- Returns:
- P(node = value | evidence), where value is the value of the node in the Bayes net.
-
toString
Prints out the most recent marginal.
-