Probabilities

QBase.ProbabilityDistributionType
abstract type ProbabilityDistribution <: AbstractVector{Real} end

The abstract type representing a discrete probability distribution.

source
QBase.is_probability_distributionFunction
is_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
source
QBase.ProbabilitiesType
Probabilities( 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.

source
QBase.ConditionalDistributionType
abstract type ConditionalDistribution <: AbstractMatrix{Real} end

The abstract type representing a discrete conditional probability distribution.

source
QBase.is_conditional_distributionFunction
is_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.

source
QBase.ConditionalsType
Conditionals( 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}\]

source
QBase.JointProbabilitiesType
JointProbabilities(
    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 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.

source
QBase.outcome_probabilitiesFunction
outcome_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.

source