Probabilities
QBase.ProbabilityDistribution
— Typeabstract type ProbabilityDistribution <: AbstractVector{Real} end
The abstract type representing a discrete probability distribution.
QBase.is_probability_distribution
— Functionis_probability_distribution(
probabilities :: Vector{<:Real};
atol=ATOL :: Float64
) :: Bool
Returns true
if the provided vector is a valid probability distribution:
sum(probabilities) ≈ 1
probabilities[i] ≥ 0 ∀ i
QBase.Probabilities
— TypeProbabilities( distribution :: Vector{<:Real}; atol=ATOL :: Float64 ) <: ProbabilityDistribution
A 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} end
The abstract type representing a discrete conditional probability distribution.
QBase.is_conditional_distribution
— Functionis_conditional_distribution( probabilities :: AbstractMatrix{<:Real}; atol=ATOL :: Flaot64 ) :: Bool
Returns 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 ) <: ConditionalDistribution
A 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} end
The abstract type representing a discrete joint probability distribution.
QBase.JointProbabilities
— TypeJointProbabilities(
distribution :: Matrix{<:Real};
atol=ATOL :: Float64
) <: JointProbabilityDistribution
A 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 ProbabilityDistribution
s 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
) :: ProbabilityDistribution
Returns 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.