Skip to content

Internal Documentation

Documentation for ModifiedDistributions's internal interface.

Contents

Index

Internal API

Distributions.ccdf Function
julia
ccdf(d::ModifiedDistributions.Affine, y::Real) -> Any

Compute the complementary cumulative distribution function via change of variables (avoids the 1 - cdf fallback, keeping precision in the upper tail).

See also: cdf, logccdf

source
julia
ccdf(d::ModifiedDistributions.Weighted, x::Real) -> Any

Compute the complementary cumulative distribution function (delegates to underlying distribution).

See also: cdf

source
julia
ccdf(d::ModifiedDistributions.Modified, x::Real) -> Any

Compute the complementary cumulative distribution function.

See also: logccdf

source
Distributions.cdf Function
julia
cdf(d::ModifiedDistributions.Affine, y::Real) -> Any

Compute the cumulative distribution function.

See also: logcdf, quantile

source
julia
cdf(d::ModifiedDistributions.Weighted, x::Real) -> Any

Compute the cumulative distribution function (delegates to underlying distribution).

See also: logcdf

source
julia
cdf(d::ModifiedDistributions.Modified, x::Real) -> Any

Compute the cumulative distribution function.

See also: ccdf, logcdf

source
ModifiedDistributions.combine_weights Function
julia
combine_weights(_::Missing, _::Missing) -> Missing

Combine constructor weight with observation weight using dispatch-based rules.

Weight combination rules:

  • missing, missing → missing (both missing means no weight)

  • w1, missing → w1 (use constructor weight)

  • missing, w2 → w2 (use observation weight)

  • w1, w2 → w1 * w2 (multiply weights)

Vector Extensions

For Product distributions, additional methods handle vectorised weight combinations:

  • Vector, Vector → combine_weights.(vector1, vector2) (element-wise combination)

  • Vector, missing → Vector (keep constructor weights)

  • Vector, scalar → [combine_weights(w, scalar) for w in Vector] (broadcast scalar)

source
Distributions.logccdf Function
julia
logccdf(d::ModifiedDistributions.Affine, y::Real) -> Any

Compute the log complementary cumulative distribution function.

See also: ccdf

source
julia
logccdf(d::ModifiedDistributions.Weighted, x::Real) -> Any

Compute the log complementary cumulative distribution function (delegates to underlying distribution).

See also: logcdf

source
julia
logccdf(
    d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(log), typeof(exp)}},
    x::Real
) -> Any

Compute the log survival function on the proportional-hazards path.

See also: ccdf, logpdf

source
julia
logccdf(
    d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(identity), typeof(identity)}},
    x::Real
) -> Any

Compute the log survival function on the additive-hazards path.

See also: ccdf, logpdf

source
Distributions.logcdf Function
julia
logcdf(d::ModifiedDistributions.Affine, y::Real) -> Any

Compute the log cumulative distribution function.

See also: cdf

source
julia
logcdf(d::ModifiedDistributions.Weighted, x::Real) -> Any

Compute the log cumulative distribution function (delegates to underlying distribution).

See also: cdf

source
julia
logcdf(d::ModifiedDistributions.Modified, x::Real) -> Any

Compute the log cumulative distribution function.

See also: cdf

source
StatsAPI.loglikelihood Function
julia
loglikelihood(
    d::ModifiedDistributions.Weighted,
    obs::NamedTuple{(:value, :weight)}
) -> Any

Compute log-likelihood for single Weighted distribution with joint observations.

Handles joint observations as NamedTuple: (value = x, weight = w).

See also: logpdf

source
julia
loglikelihood(
    d::ModifiedDistributions.Weighted,
    obs::NamedTuple{(:values, :weights)}
) -> Any

Compute log-likelihood for single Weighted distribution with vectorised joint observations.

Handles joint observations as NamedTuple: (values = [...], weights = [...]). This is useful when a single weighted distribution is used with multiple observations.

See also: logpdf

source
julia
loglikelihood(
    d::Distributions.Product{<:Distributions.ValueSupport, <:ModifiedDistributions.Weighted, <:AbstractVector{<:ModifiedDistributions.Weighted}},
    obs::NamedTuple{(:values, :weights)}
) -> Any

Compute log-likelihood for Product{<:ValueSupport, <:Weighted} with joint observations.

Handles joint observations as NamedTuple: (values = [...], weights = [...]).

See also: logpdf

source
Distributions.logpdf Function
julia
logpdf(d::ModifiedDistributions.Affine, y::Real) -> Any

Compute the log probability density function via change of variables. For a continuous inner distribution this includes the log-Jacobian -log(scale); for a discrete inner distribution the mass transforms without it.

See also: pdf, cdf

source
julia
logpdf(d::ModifiedDistributions.Weighted, x::Real) -> Any

Return the weighted log-probability for scalar observations.

See also: pdf

source
julia
logpdf(
    d::ModifiedDistributions.Weighted,
    obs::NamedTuple{(:value, :weight)}
) -> Any

Return the weighted log-probability for joint observations as NamedTuple.

Combines constructor weight with observation weight via multiplication. Expected format: (value = x, weight = w).

See also: pdf

source
julia
logpdf(
    d::Distributions.Product{<:Distributions.ValueSupport, <:ModifiedDistributions.Weighted, <:AbstractVector{<:ModifiedDistributions.Weighted}},
    obs::NamedTuple{(:values, :weights)}
) -> Any

Efficient vectorised log-probability computation for Product{<:ValueSupport, <:Weighted} with joint observations.

Handles joint observations and weight stacking. Expected format: (values = [...], weights = [...]).

See also: logpdf

source
julia
logpdf(
    d::Distributions.Product{<:Distributions.ValueSupport, <:ModifiedDistributions.Weighted, <:AbstractVector{<:ModifiedDistributions.Weighted}},
    x::AbstractVector{<:Real}
) -> Any

Efficient vectorised log-probability computation for Product{<:ValueSupport, <:Weighted} with vector observations.

See also: logpdf

source
julia
logpdf(
    d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(log), typeof(exp)}},
    x::Real
) -> Any

Compute the log probability density on the proportional-hazards path.

See also: pdf, ccdf

source
julia
logpdf(
    d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(identity), typeof(identity)}},
    x::Real
) -> Any

Compute the log probability density on the additive-hazards path.

See also: pdf, ccdf

source
Statistics.mean Function
julia
mean(d::ModifiedDistributions.Affine) -> Any

Compute the mean via the affine transform of the inner mean.

See also: var

source
Distributions.pdf Function
julia
pdf(d::ModifiedDistributions.Affine, y::Real) -> Any

Compute the probability density function.

See also: logpdf

source
julia
pdf(d::ModifiedDistributions.Weighted, x::Real) -> Any

Return the probability density from the underlying distribution (unweighted).

See also: logpdf

source
julia
pdf(d::ModifiedDistributions.Modified, x::Real) -> Any

Compute the probability density function.

See also: logpdf

source
Statistics.quantile Function
julia
quantile(d::ModifiedDistributions.Affine, p::Real) -> Any

Compute the quantile function (inverse CDF).

See also: cdf

source
julia
quantile(d::ModifiedDistributions.Weighted, p::Real) -> Any

Compute the quantile function (delegates to underlying distribution).

See also: cdf

source
julia
quantile(
    d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(log), typeof(exp)}},
    p::Real
) -> Any

Compute the quantile by closed-form inversion of the modified survival.

See also: cdf

source
julia
quantile(
    d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(identity), typeof(identity)}},
    p::Real
) -> Any

Compute the quantile by monotone bisection of the modified CDF.

See also: cdf

source
Base.rand Function
julia
rand(
    rng::Random.AbstractRNG,
    d::ModifiedDistributions.Affine
) -> Any

Generate a random sample by transforming an inner draw.

See also: quantile

source
julia
rand(
    rng::Random.AbstractRNG,
    d::ModifiedDistributions.Weighted
) -> Any

Generate a random sample (delegates to underlying distribution).

See also: quantile

source
julia
rand(
    rng::Random.AbstractRNG,
    d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(log), typeof(exp)}}
) -> Any

Generate a random sample by closed-form inversion of the modified survival.

See also: quantile

source
julia
rand(
    rng::Random.AbstractRNG,
    d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(identity), typeof(identity)}}
) -> Any

Generate a random sample by quantile inversion of a uniform draw.

See also: quantile

source
Distributions.sampler Function
julia
sampler(
    d::ModifiedDistributions.Weighted
) -> Union{ModifiedDistributions.Weighted{D, Missing} where D<:(Distributions.UnivariateDistribution), ModifiedDistributions.Weighted{D, T} where {D<:(Distributions.UnivariateDistribution), T<:Real}}

Create a sampler for efficient sampling (delegates to underlying distribution).

See also: rand

source
Statistics.var Function
julia
var(d::ModifiedDistributions.Affine) -> Any

Compute the variance via the affine transform of the inner variance.

See also: mean

source