Internal Documentation
Documentation for ModifiedDistributions's internal interface.
Contents
Index
Base.randDistributions.ccdfDistributions.cdfDistributions.logccdfDistributions.logcdfDistributions.logpdfDistributions.pdfDistributions.samplerModifiedDistributions.combine_weightsStatistics.meanStatistics.quantileStatistics.varStatsAPI.loglikelihood
Internal API
Distributions.ccdf Function
ccdf(d::ModifiedDistributions.Affine, y::Real) -> AnyCompute the complementary cumulative distribution function via change of variables (avoids the 1 - cdf fallback, keeping precision in the upper tail).
ccdf(d::ModifiedDistributions.Weighted, x::Real) -> AnyCompute the complementary cumulative distribution function (delegates to underlying distribution).
See also: cdf
ccdf(d::ModifiedDistributions.Modified, x::Real) -> AnyCompute the complementary cumulative distribution function.
See also: logccdf
Distributions.cdf Function
cdf(d::ModifiedDistributions.Affine, y::Real) -> AnyCompute the cumulative distribution function.
sourcecdf(d::ModifiedDistributions.Weighted, x::Real) -> AnyCompute the cumulative distribution function (delegates to underlying distribution).
See also: logcdf
cdf(d::ModifiedDistributions.Modified, x::Real) -> AnyCompute the cumulative distribution function.
sourceModifiedDistributions.combine_weights Function
combine_weights(_::Missing, _::Missing) -> MissingCombine 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)
Distributions.logccdf Function
logccdf(d::ModifiedDistributions.Affine, y::Real) -> AnyCompute the log complementary cumulative distribution function.
See also: ccdf
logccdf(d::ModifiedDistributions.Weighted, x::Real) -> AnyCompute the log complementary cumulative distribution function (delegates to underlying distribution).
See also: logcdf
logccdf(
d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(log), typeof(exp)}},
x::Real
) -> AnyCompute the log survival function on the proportional-hazards path.
sourcelogccdf(
d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(identity), typeof(identity)}},
x::Real
) -> AnyCompute the log survival function on the additive-hazards path.
sourceDistributions.logcdf Function
logcdf(d::ModifiedDistributions.Affine, y::Real) -> AnyCompute the log cumulative distribution function.
See also: cdf
logcdf(d::ModifiedDistributions.Weighted, x::Real) -> AnyCompute the log cumulative distribution function (delegates to underlying distribution).
See also: cdf
logcdf(d::ModifiedDistributions.Modified, x::Real) -> AnyCompute the log cumulative distribution function.
See also: cdf
StatsAPI.loglikelihood Function
loglikelihood(
d::ModifiedDistributions.Weighted,
obs::NamedTuple{(:value, :weight)}
) -> AnyCompute log-likelihood for single Weighted distribution with joint observations.
Handles joint observations as NamedTuple: (value = x, weight = w).
See also: logpdf
loglikelihood(
d::ModifiedDistributions.Weighted,
obs::NamedTuple{(:values, :weights)}
) -> AnyCompute 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
loglikelihood(
d::Distributions.Product{<:Distributions.ValueSupport, <:ModifiedDistributions.Weighted, <:AbstractVector{<:ModifiedDistributions.Weighted}},
obs::NamedTuple{(:values, :weights)}
) -> AnyCompute log-likelihood for Product{<:ValueSupport, <:Weighted} with joint observations.
Handles joint observations as NamedTuple: (values = [...], weights = [...]).
See also: logpdf
Distributions.logpdf Function
logpdf(d::ModifiedDistributions.Affine, y::Real) -> AnyCompute 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.
logpdf(d::ModifiedDistributions.Weighted, x::Real) -> AnyReturn the weighted log-probability for scalar observations.
See also: pdf
logpdf(
d::ModifiedDistributions.Weighted,
obs::NamedTuple{(:value, :weight)}
) -> AnyReturn 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
logpdf(
d::Distributions.Product{<:Distributions.ValueSupport, <:ModifiedDistributions.Weighted, <:AbstractVector{<:ModifiedDistributions.Weighted}},
obs::NamedTuple{(:values, :weights)}
) -> AnyEfficient vectorised log-probability computation for Product{<:ValueSupport, <:Weighted} with joint observations.
Handles joint observations and weight stacking. Expected format: (values = [...], weights = [...]).
See also: logpdf
logpdf(
d::Distributions.Product{<:Distributions.ValueSupport, <:ModifiedDistributions.Weighted, <:AbstractVector{<:ModifiedDistributions.Weighted}},
x::AbstractVector{<:Real}
) -> AnyEfficient vectorised log-probability computation for Product{<:ValueSupport, <:Weighted} with vector observations.
See also: logpdf
logpdf(
d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(log), typeof(exp)}},
x::Real
) -> AnyCompute the log probability density on the proportional-hazards path.
sourcelogpdf(
d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(identity), typeof(identity)}},
x::Real
) -> AnyCompute the log probability density on the additive-hazards path.
sourceStatistics.mean Function
mean(d::ModifiedDistributions.Affine) -> AnyCompute the mean via the affine transform of the inner mean.
See also: var
Distributions.pdf Function
pdf(d::ModifiedDistributions.Affine, y::Real) -> AnyCompute the probability density function.
See also: logpdf
pdf(d::ModifiedDistributions.Weighted, x::Real) -> AnyReturn the probability density from the underlying distribution (unweighted).
See also: logpdf
pdf(d::ModifiedDistributions.Modified, x::Real) -> AnyCompute the probability density function.
See also: logpdf
Statistics.quantile Function
quantile(d::ModifiedDistributions.Affine, p::Real) -> AnyCompute the quantile function (inverse CDF).
See also: cdf
quantile(d::ModifiedDistributions.Weighted, p::Real) -> AnyCompute the quantile function (delegates to underlying distribution).
See also: cdf
quantile(
d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(log), typeof(exp)}},
p::Real
) -> AnyCompute the quantile by closed-form inversion of the modified survival.
See also: cdf
quantile(
d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(identity), typeof(identity)}},
p::Real
) -> AnyCompute the quantile by monotone bisection of the modified CDF.
See also: cdf
Base.rand Function
rand(
rng::Random.AbstractRNG,
d::ModifiedDistributions.Affine
) -> AnyGenerate a random sample by transforming an inner draw.
See also: quantile
rand(
rng::Random.AbstractRNG,
d::ModifiedDistributions.Weighted
) -> AnyGenerate a random sample (delegates to underlying distribution).
See also: quantile
rand(
rng::Random.AbstractRNG,
d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(log), typeof(exp)}}
) -> AnyGenerate a random sample by closed-form inversion of the modified survival.
See also: quantile
rand(
rng::Random.AbstractRNG,
d::ModifiedDistributions.Modified{<:Distributions.Distribution{Distributions.Univariate, Distributions.Continuous}, <:Real, ModifiedDistributions.HazardLink{typeof(identity), typeof(identity)}}
) -> AnyGenerate a random sample by quantile inversion of a uniform draw.
See also: quantile
Distributions.sampler Function
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
Statistics.var Function
var(d::ModifiedDistributions.Affine) -> AnyCompute the variance via the affine transform of the inner variance.
See also: mean