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.
- Author:
- josephramsey
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionApproximateUpdater
(BayesIm bayesIm) ApproximateUpdater
(BayesIm bayesIm, Evidence evidence) Constructs a new updater for the given Bayes net. -
Method Summary
Modifier and TypeMethodDescriptiondouble[]
calculatePriorMarginals
(int nodeIndex) double[]
calculateUpdatedMarginals
(int nodeIndex) double
getJointMarginal
(int[] variables, int[] values) double
getMarginal
(int variable, int value) boolean
static ApproximateUpdater
void
setEvidence
(Evidence evidence) Sets new evidence for the next update operation.toString()
Prints out the most recent marginal.
-
Constructor Details
-
ApproximateUpdater
-
ApproximateUpdater
Constructs a new updater for the given Bayes net.
-
-
Method Details
-
serializableInstance
- Returns:
- a simple exemplar of this class to test serialization.
-
getBayesIm
- Specified by:
getBayesIm
in interfaceBayesUpdater
- Returns:
- the Bayes instantiated model that is being updated.
-
getManipulatedBayesIm
- Specified by:
getManipulatedBayesIm
in interfaceManipulatingBayesUpdater
- Returns:
- the Bayes instantiated model after manipulations have been applied.
-
getManipulatedGraph
- Specified by:
getManipulatedGraph
in interfaceManipulatingBayesUpdater
- Returns:
- the graph for getManipulatedBayesIm().
-
getUpdatedBayesIm
- Specified by:
getUpdatedBayesIm
in interfaceManipulatingBayesUpdater
- Returns:
- the updated Bayes IM, or null if there is no updated Bayes IM.
-
getEvidence
- Specified by:
getEvidence
in interfaceManipulatingBayesUpdater
- Returns:
- a copy of the getModel evidence.
-
setEvidence
Sets new evidence for the next update operation.- Specified by:
setEvidence
in interfaceBayesUpdater
- Specified by:
setEvidence
in interfaceManipulatingBayesUpdater
-
getMarginal
public double getMarginal(int variable, int value) - Specified by:
getMarginal
in interfaceBayesUpdater
- Specified by:
getMarginal
in interfaceManipulatingBayesUpdater
- Returns:
- P(variable = category | evidence) where evidence is getEvidence().
-
isJointMarginalSupported
public boolean isJointMarginalSupported()- Specified by:
isJointMarginalSupported
in interfaceBayesUpdater
- Returns:
- true if the getJointMarginal() method is supported.
-
getJointMarginal
public double getJointMarginal(int[] variables, int[] values) - Specified by:
getJointMarginal
in interfaceBayesUpdater
- Returns:
- the joint marginal.
-
calculatePriorMarginals
public double[] calculatePriorMarginals(int nodeIndex) - Specified by:
calculatePriorMarginals
in interfaceBayesUpdater
-
calculateUpdatedMarginals
public double[] calculateUpdatedMarginals(int nodeIndex) - Specified by:
calculateUpdatedMarginals
in interfaceBayesUpdater
-
toString
Prints out the most recent marginal.
-