FULL EXECUTABLE FLOW ALGEBRA — BAYES THEOREM ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/probability-rules/bayes-theorem-ontology.html
FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Probability Rules"
ONTOLOGY := "Bayes Theorem Ontology"
PRIMARY_ENTITY := BayesTheorem
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"
BEGIN_FLOW
BayesTheorem :=
ConditionalProbabilityIdentity
∧ PriorToPosteriorUpdate
∧ LikelihoodWeighting
∧ EvidenceNormalisation
ProbabilitySpace :=
(Ω,F,P)
Event :=
A,B,H,E ∈ F
ConditionalProbability :=
P(A|B)
=
P(A∩B)/P(B)
where P(B)>0
MultiplicationRule :=
P(A∩B)
=
P(B|A)P(A)
=
P(A|B)P(B)
BayesTheoremSimple :=
P(A|B)
=
P(B|A)P(A)/P(B)
where P(B)>0
Hypothesis :=
H
Evidence :=
E
PriorProbability :=
P(H)
Likelihood :=
P(E|H)
EvidenceProbability :=
P(E)
PosteriorProbability :=
P(H|E)
BayesianUpdate :=
Prior
∧ Likelihood
∧ EvidenceNormalisation
→ Posterior
PosteriorFormula :=
P(H|E)
=
P(E|H)P(H)/P(E)
Partition :=
{H_i}
∧ PairwiseDisjoint(H_i)
∧ Union_i H_i=Ω
LawOfTotalProbability :=
P(E)
=
Σ_i P(E|H_i)P(H_i)
BayesTheoremPartitionForm :=
P(H_j|E)
=
P(E|H_j)P(H_j)
/
Σ_i P(E|H_i)P(H_i)
MutuallyExclusiveHypotheses :=
H_i∩H_j=∅
for i≠j
ExhaustiveHypotheses :=
Union_i H_i=Ω
PriorNormalisation :=
Σ_i P(H_i)=1
for exhaustive mutually exclusive hypotheses
PosteriorNormalisation :=
Σ_i P(H_i|E)=1
where P(E)>0
PosteriorProportionality :=
P(H|E)
∝
P(E|H)P(H)
UnnormalisedPosteriorWeight :=
w(H)
:=
P(E|H)P(H)
NormalisingConstant :=
Z
:=
Σ_i w(H_i)
NormalisedPosterior :=
P(H_i|E)
=
w(H_i)/Z
BayesianEvidence :=
MarginalLikelihood
:=
P(E)
MarginalLikelihood :=
Σ_i P(E|H_i)P(H_i)
for discrete partition
ContinuousBayesTheorem :=
p(θ|x)
=
p(x|θ)p(θ)
/
p(x)
ContinuousEvidence :=
p(x)
=
Integral
p(x|θ)p(θ)dθ
PosteriorDensity :=
p(θ|x)
PriorDensity :=
p(θ)
LikelihoodFunction :=
L(θ;x)
∝
p(x|θ)
BayesianParameterUpdate :=
PriorDensity
× Likelihood
→ Normalise
→ PosteriorDensity
Odds :=
Odds(H)
=
P(H)/(1-P(H))
PriorOdds :=
P(H)/P(H^c)
PosteriorOdds :=
P(H|E)/P(H^c|E)
LikelihoodRatio :=
P(E|H)/P(E|H^c)
BayesOddsForm :=
PosteriorOdds
=
PriorOdds
× LikelihoodRatio
LogOddsUpdate :=
log(PosteriorOdds)
=
log(PriorOdds)
+
log(LikelihoodRatio)
BayesFactor :=
BF_12
=
P(E|H1)/P(E|H2)
PosteriorOddsTwoHypotheses :=
PosteriorOdds(H1:H2)
=
PriorOdds(H1:H2)
× BF_12
Prior :=
ProbabilityDistribution
representing
pre-evidence uncertainty
Posterior :=
ProbabilityDistribution
representing
uncertainty_after_evidence
LikelihoodVsPosterior :=
Likelihood
is function_of hypothesis_or_parameter
given observed evidence
whereas
Posterior
is probability_distribution_after_update
EvidenceUpdate :=
Observe(E)
→ ConditionProbabilityModelOn(E)
SequentialEvidence :=
E1,E2,...,En
SequentialBayesUpdate :=
Prior_0
→ ConditionOn(E1)
→ Posterior_1
→ ConditionOn(E2)
→ Posterior_2
→ ...
→ Posterior_n
SequentialPosterior :=
P(H|E1,...,En)
ConditionallyIndependentEvidence :=
E_i conditionally independent
given H
IndependentLikelihoodProduct :=
ConditionalIndependent(E1,...,En|H)
⇒
P(E1,...,En|H)
=
Π_i P(E_i|H)
SequentialIndependentEvidenceUpdate :=
P(H|E1,...,En)
∝
P(H)
Π_i P(E_i|H)
PosteriorAsNextPrior :=
Posterior_n
→ Prior_(n+1)
for sequential updating
ConjugatePrior :=
PriorFamily
such_that
PosteriorBelongsToSameFamily
for specified likelihood
BetaBernoulliUpdate :=
Prior p~Beta(α,β)
∧ s successes
∧ f failures
⇒
Posterior p~Beta(α+s,β+f)
BetaBinomialUpdate :=
BetaPrior
∧ BinomialLikelihood
→ BetaPosterior
GammaPoissonUpdate :=
GammaPrior
∧ PoissonLikelihood
→ GammaPosterior
under matching parameterisation
NormalNormalUpdate :=
NormalPrior
∧ NormalLikelihood
with known variance assumptions
→ NormalPosterior
PredictiveDistribution :=
P(X_new|Data)
PosteriorPredictive :=
P(X_new|Data)
=
Integral
P(X_new|θ)
p(θ|Data)dθ
PriorPredictive :=
P(X)
=
Integral
P(X|θ)p(θ)dθ
BayesianDecision :=
Posterior
∧ LossFunction
→ Action
ExpectedPosteriorLoss :=
E[
Loss(Action,θ)
| Evidence
]
BayesAction :=
argmin_Action
ExpectedPosteriorLoss
DiagnosticTesting :=
Hypothesis
∧ TestResult
→ PosteriorProbability
Prevalence :=
P(DiseaseOrCondition)
Sensitivity :=
P(TestPositive|Condition)
Specificity :=
P(TestNegative|NoCondition)
FalsePositiveRate :=
1-Specificity
PositivePredictiveValue :=
P(Condition|TestPositive)
DiagnosticBayes :=
P(Condition|Positive)
=
Sensitivity×Prevalence
/
[
Sensitivity×Prevalence
+
FalsePositiveRate×(1-Prevalence)
]
NegativePredictiveValue :=
P(NoCondition|TestNegative)
BaseRate :=
PriorProbabilityOfHypothesis
BaseRateNeglect :=
FailureToIncorporate
PriorProbability
in posterior reasoning
BayesianNetwork :=
DirectedAcyclicGraph
∧ ConditionalProbabilityDistributions
BayesianNetworkFactorisation :=
P(X1,...,Xn)
=
Π_i P(X_i|Parents(X_i))
BayesianNetworkEvidenceUpdate :=
ObserveVariables
→ ConditionJointDistribution
→ ComputePosteriorMarginals
BayesianInference :=
Prior
∧ Likelihood
∧ Evidence
→ Posterior
ExactBayesianInference := {
Enumeration,
VariableElimination,
JunctionTree,
ExactMessagePassing
}
ApproximateBayesianInference := {
MonteCarlo,
MCMC,
ImportanceSampling,
SequentialMonteCarlo,
VariationalInference
}
MonteCarloPosteriorApproximation :=
Samples
approximating
PosteriorDistribution
ImportanceWeight :=
TargetDensity/ProposalDensity
MCMC :=
MarkovChain
with
target stationary distribution
equal_to posterior
under algorithm conditions
PosteriorUncertainty :=
Distribution
over hypotheses_or_parameters
after evidence
CredibleInterval :=
Interval C
such_that
PosteriorProbability(θ∈C)
=
specified level
under chosen construction
MAPEstimate :=
argmax_θ p(θ|Data)
PosteriorMean :=
E[θ|Data]
PosteriorMedian :=
Median(PosteriorDistribution)
MaximumLikelihoodEstimate :=
argmax_θ p(Data|θ)
MAPVsMLE :=
MAP
includes prior
while
MLE
uses likelihood only
PriorSensitivity :=
Posterior
may_change
under alternative priors
LikelihoodSensitivity :=
Posterior
may_change
under alternative likelihood models
ModelEvidence :=
P(Data|Model)
BayesianModelComparison :=
PriorModelProbabilities
∧ ModelEvidence
→ PosteriorModelProbabilities
PosteriorModelProbability :=
P(M_i|Data)
=
P(Data|M_i)P(M_i)
/
Σ_j P(Data|M_j)P(M_j)
BayesianModelAveraging :=
Predictions
weighted_by
PosteriorModelProbabilities
ZeroEvidenceProbability :=
P(E)=0
⇒
ElementaryBayesRatioUndefined
ZeroPrior :=
P(H)=0
⇒
P(H|E)=0
under ordinary conditioning with P(E)>0
CertainPrior :=
P(H)=1
⇒
P(H|E)=1
under compatible ordinary conditioning
BayesianConstraint :=
Prior
∧ Likelihood
∧ Evidence
must be probabilistically coherent
BayesianConsistency :=
Priors
∧ Likelihoods
∧ EvidenceProbabilities
∧ Posteriors
satisfy
BayesRelations
BayesConflict :=
ClaimedPosterior
≠
NormalisedPriorTimesLikelihood
EvidenceNormalisationConflict :=
P(E)
≠
Σ_i P(E|H_i)P(H_i)
PosteriorNormalisationConflict :=
Σ_i P(H_i|E)
≠ 1
BayesValidation :=
ResolveHypotheses
→ ResolvePrior
→ ResolveLikelihood
→ ComputeEvidence
→ ComputePosterior
→ ValidateNormalisation
BayesState := {
Hypotheses,
PriorDistribution,
Evidence,
Likelihoods,
MarginalLikelihood,
PosteriorDistribution,
BayesFactors,
PredictiveDistribution,
Confidence,
Provenance
}
BayesianUpdateModel :=
NewEvidence
→ UpdateLikelihoodContribution
→ RecomputeMarginalLikelihood
→ RecomputePosterior
→ RecomputePredictions
SEMANTIC_EQUIVALENCE(BayesExpressionA,BayesExpressionB) :=
same(HypothesisSemantics)
∧ same(EvidenceSemantics)
∧ same(PriorLikelihoodPosteriorRelation)
under same probability model
BayesTheoremOntology :=
Classes
∧ Relations
∧ Constraints
∧ Axioms
∧ InferenceRules
CoreClasses := {
BayesTheorem,
ProbabilitySpace,
Hypothesis,
Evidence,
PriorProbability,
Likelihood,
MarginalLikelihood,
PosteriorProbability,
PriorDistribution,
PosteriorDistribution,
BayesFactor,
LikelihoodRatio,
PredictiveDistribution,
BayesianNetwork,
BayesianModel,
BayesianDecision,
BayesianConstraint
}
CoreRelations := {
hasPrior,
hasLikelihood,
conditionedOn,
updatesTo,
hasPosterior,
hasEvidence,
normalisedBy,
compares,
predicts,
dependsOn,
supports,
contradicts,
equivalentTo,
tracesTo
}
TypedRelations :=
Hypothesis --hasPrior--> PriorProbability
Evidence --hasLikelihood--> Likelihood
PosteriorProbability --conditionedOn--> Evidence
PriorDistribution --updatesTo--> PosteriorDistribution
Hypothesis --hasPosterior--> PosteriorProbability
BayesUpdate --normalisedBy--> MarginalLikelihood
BayesFactor --compares--> HypothesisPair
PosteriorDistribution --predicts--> PredictiveDistribution
BayesResult --tracesTo--> Provenance
InferenceRules := {
P(E)>0
⇒ P(H|E)=P(E|H)P(H)/P(E),
Partition({H_i})
⇒ P(E)=Σ_i P(E|H_i)P(H_i),
P(E)>0
⇒ Σ_i P(H_i|E)=1
for exhaustive mutually exclusive hypotheses,
Prior(H)
∧ Likelihood(E|H)
⇒ UnnormalisedPosterior(H)=P(E|H)P(H),
PosteriorOdds
=
PriorOdds×LikelihoodRatio,
ConditionalIndependent(E1,...,En|H)
⇒
P(E1,...,En|H)=Π_iP(E_i|H),
NewEvidence(E)
⇒ PosteriorPrevious
becomes
PriorForNextUpdate,
P(E)=0
⇒ ElementaryBayesRatio(H|E)
is Undefined
}
CanonicalBayesRepresentation :=
ParseBayesQuery
→ ResolveHypotheses
→ ResolveEvidence
→ ResolvePrior
→ ResolveLikelihood
→ ComputeMarginalLikelihood
→ ComputePosterior
→ Normalise
→ ValidateBayesianConsistency
BayesGraph :=
G=(V,E)
V := {
Hypotheses,
EvidenceNodes,
Priors,
Likelihoods,
MarginalLikelihoods,
Posteriors,
BayesFactors,
PredictiveDistributions,
Models,
Decisions,
ProvenanceNodes
}
E := {
hasPrior,
hasLikelihood,
conditionedOn,
updatesTo,
hasPosterior,
hasEvidence,
normalisedBy,
compares,
predicts,
dependsOn,
supports,
contradicts,
equivalentTo,
tracesTo
}
CONFIDENCE(BayesianInferenceResult) :=
weighted_mean(
HypothesisResolution,
EvidenceResolution,
PriorQuality,
LikelihoodQuality,
ModelAdequacy,
NormalisationValidity,
SensitivityRobustness,
ProvenanceQuality
)
AI_QUERY_INTERPRETATION :=
Query
→ DetectBayesianIntent
→ IdentifyHypothesisOrParameter
→ IdentifyEvidence
→ ResolvePriorInformation
→ ResolveLikelihoodModel
→ IdentifyRequestedPosteriorOrPredictiveQuantity
AI_REASONING_FLOW :=
Query
→ ParseBayesianProblem
→ ResolveProbabilitySpace
→ ResolveHypothesesOrParameters
→ ResolvePriorDistribution
→ ResolveObservedEvidence
→ ResolveLikelihood
→ ComputeUnnormalisedPosterior
→ ComputeMarginalLikelihood
→ NormalisePosterior
→ ComputeBayesFactorOrOddsIfRequired
→ ComputePosteriorPredictiveIfRequired
→ ValidateProbabilityConsistency
→ EvaluatePriorAndLikelihoodSensitivityIfRelevant
→ UpdateConfidence
→ PreserveProvenance
→ GenerateExplanation
AI_CONSUMPTION := {
ParseBayesEntities,
ParseTypedRelations,
ResolveHypotheses,
ResolveEvidence,
ResolvePriors,
ResolveLikelihoods,
ApplyBayesTheorem,
ApplyTotalProbability,
ComputeMarginalLikelihood,
ComputePosteriorDistribution,
ComputeBayesFactors,
ComputePosteriorOdds,
PerformSequentialBayesianUpdates,
ComputePosteriorPredictive,
ValidateBayesianModels,
CompareSemanticEquivalence,
UpdateConfidence,
PreserveProvenance,
GenerateFormalExplanation
}
UPDATE_MODEL :=
NewEvidencePriorLikelihoodOrModel
→ ValidateInput
→ IdentifyAffectedBayesianClaims
→ UpdateBayesState
→ RecomputeMarginalLikelihood
→ RecomputePosterior
→ RecomputeBayesFactors
→ RecomputePredictiveDistribution
→ RevalidateConsistency
→ RecomputeConfidence
→ PreserveProvenance
→ VersionModel
EvidenceUpdate :=
NewEvidence
⇒ sequentially_update(
PosteriorDistribution,
PredictiveDistribution
)
PriorUpdate :=
ChangedPrior
⇒ recompute(
Posterior,
BayesFactorsWhereRelevant,
Predictions
)
LikelihoodUpdate :=
ChangedLikelihoodModel
⇒ recompute(
MarginalLikelihood,
Posterior,
PredictiveDistribution
)
FLOW_HASH_INPUT :=
canonical(
ONTOLOGY,
CoreClasses,
CoreRelations,
InferenceRules,
BayesTheoremSimple,
BayesTheoremPartitionForm,
BayesOddsForm,
BayesianUpdate,
SEMANTIC_EQUIVALENCE,
AI_REASONING_FLOW
)
FLOW_HASH :=
HASH(FLOW_HASH_INPUT)
OUTPUT_MODEL := {
BayesTheoremEntityResolution,
ProbabilitySpace,
HypothesesOrParameters,
PriorDistribution,
Evidence,
Likelihood,
MarginalLikelihood,
PosteriorDistribution,
BayesFactor,
PosteriorOdds,
PredictiveDistribution,
BayesianConsistency,
Confidence,
Provenance,
Explanation
}
END_FLOW
END OF FULL EXECUTABLE FLOW ALGEBRA
Download Code
Copy to Clipboard