Probabilities
QBase.ProbabilityDistribution — Typeabstract type ProbabilityDistribution <: AbstractVector{Real} endThe abstract type representing a discrete probability distribution.
QBase.is_probability_distribution — Functionis_probability_distribution(
probabilities :: Vector{<:Real};
atol=ATOL :: Float64
) :: BoolReturns true if the provided vector is a valid probability distribution:
sum(probabilities) ≈ 1probabilities[i] ≥ 0 ∀ i
QBase.Probabilities — TypeProbabilities( distribution :: Vector{<:Real}; atol=ATOL :: Float64 ) <: ProbabilityDistributionA struct representing a discrete probability distribution. All elements in the marginal distribution must be positive and their sum must be one.
QBase.ConditionalDistribution — Typeabstract type ConditionalDistribution <: AbstractMatrix{Real} endThe abstract type representing a discrete conditional probability distribution.
QBase.is_conditional_distribution — Functionis_conditional_distribution( probabilities :: AbstractMatrix{<:Real}; atol=ATOL :: Flaot64 ) :: BoolReturns true if the provided matrix is column stochastic. That is, each column is a valid probability distribution.
QBase.Conditionals — TypeConditionals( distribution :: Matrix{<:Real}; atol=ATOL :: Float64 ) <: ConditionalDistributionA struct representing a conditional probability distribution function. Conditionals are organized in a matrix with rows correpsonding to outputs and columns corresponding to inputs. For example if there are $M$ inputs and $N$ outputs, the corresponding conditionals matrix takes the form:
\[\begin{bmatrix} p(1|1) & \dots & p(1|M) \\ \vdots & \ddots & \vdots \\ p(N|1) & \dots & p(N|M) \\ \end{bmatrix}\]
QBase.JointProbabilityDistribution — Typeabstract type JointProabilityDistribution <: AbstractMatrix{Real} endThe abstract type representing a discrete joint probability distribution.
QBase.JointProbabilities — TypeJointProbabilities(
distribution :: Matrix{<:Real};
atol=ATOL :: Float64
) <: JointProbabilityDistributionA struct representing a discrete probability distribution. All elements in the marginal distribution must be positive and their sum must be one. For convenience, the JointProbabilities can also be constructed by passing in a ConditionalDistribution and a ProbabilityDistribution,
JointProbabilities(
priors :: AbstractVector{<:Real},
conditionals :: AbstractMatrix{<:Real};
atol=ATOL :: Float64
)Or, two ProbabilityDistributions can be provided
JointProbabilities(
priors1 :: AbstractVector{<:Real},
priors2 :: AbstractVector{<:Real};
atol=ATOL :: Float64
)A DomainError is thrown if the joint probability distribution is invalid.
QBase.outcome_probabilities — Functionoutcome_probabilities(
conditionals::ConditionalDistribution,
priors :: ProbabilityDistribution;
atol=ATOL :: Float64
) :: ProbabilityDistributionReturns the probability of each outcome given priors and conditional probabilities. For convenience, this method can be called with an abstract vector/matrix
outcome_probabilities(
conditionals :: AbstractMatrix{<:Real},
priors :: AbstractVector{<:Real};
atol=ATOL :: Float64
)Furthermore, the ordering of the arguments can be reversed. A DomainError is thrown if the constructed vector is not a valid probability distribution.