pub enum LikelihoodScaleMetadata {
ProfiledGaussian,
FixedDispersion {
phi: f64,
},
FixedGammaShape {
shape: f64,
},
EstimatedGammaShape {
shape: f64,
},
EstimatedBetaPhi {
phi: f64,
},
FixedBetaPhi {
phi: f64,
},
EstimatedTweediePhi {
phi: f64,
},
EstimatedNegBinTheta {
theta: f64,
},
FixedNegBinTheta {
theta: f64,
},
Unspecified,
}Expand description
How a likelihood’s scale parameter is handled by the fit/result contract.
Variants§
ProfiledGaussian
Gaussian identity fits profile sigma outside the fixed-scale GLM machinery.
FixedDispersion
Fixed exponential-dispersion parameter phi.
FixedGammaShape
Fixed Gamma shape k, equivalent to phi = 1 / k.
EstimatedGammaShape
Gamma shape k estimated jointly with the mean model.
EstimatedBetaPhi
Beta-regression precision phi estimated jointly with the mean model.
Var(y) = mu(1-mu)/(1+phi); larger phi means less noise. Estimated
from the working residuals after each mean fit and refreshed across outer
iterations, exactly like the Gamma shape (issue #567).
FixedBetaPhi
Beta-regression precision phi held FIXED for the duration of the
smoothing-parameter (λ) search (#2369). Identical role to
EstimatedBetaPhi in every weight / variance / covariance expression
(Var(y) = mu(1-mu)/(1+phi), the digamma mean score reads phi through
the same Beta { phi } family variant), but the inner solver’s
per-solve Pearson refresh is gated off (its guard is
beta_phi_is_estimated(), which FixedBetaPhi does not satisfy). The
fixed/estimated split mirrors FixedGammaShape vs EstimatedGammaShape
and FixedNegBinTheta vs EstimatedNegBinTheta. This is a transient
λ-search form produced only by
with_beta_phi_frozen_for_search; the single final reported fit
Pearson-refreshes phi at the converged η and records EstimatedBetaPhi.
EstimatedTweediePhi
Tweedie exponential-dispersion phi estimated jointly with the mean
model. Var(y) = phi · mu^p with phi a genuine free parameter (unlike
Binomial/Poisson, where phi ≡ 1). Estimated by the Pearson moment
estimator phî = Σ wᵢ (yᵢ − μᵢ)² / μᵢ^p / Σ wᵢ at the converged η and
refreshed across outer iterations, exactly like the Gamma shape and the
Beta precision. phi enters the IRLS working weight prior·μ^{2−p}/phi,
so the coefficient covariance Vb = H⁻¹ already scales as phi and the
reported SEs track √phi (issue #771).
EstimatedNegBinTheta
Negative-Binomial overdispersion theta estimated jointly with the mean
model. Var(y) = mu + mu^2 / theta; larger theta means less
overdispersion (the Poisson limit is theta → ∞). Estimated by the
maximum-likelihood theta score
Σ wᵢ[ψ(yᵢ+θ) − ψ(θ) + lnθ + 1 − ln(θ+μᵢ) − (yᵢ+θ)/(μᵢ+θ)] = 0 at the
converged η (MASS glm.nb’s theta.ml) and refreshed across outer
iterations, exactly like the Gamma shape / Beta precision / Tweedie φ.
Unlike those, theta is not a dispersion scale phi: it enters only
the IRLS working weight W = μθ/(θ+μ) (the full NB2 Fisher information),
so the stored penalized Hessian is already the true one and the
coefficient covariance Vb = H⁻¹ takes no post-hoc multiply — phi ≡ 1
for NB, the overdispersion lives in the variance function. The theta
carried here mirrors ResponseFamily::NegativeBinomial { theta } (the
canonical store every weight/deviance expression reads), kept in sync by
with_negbin_theta, exactly as EstimatedBetaPhi mirrors Beta { phi }
(issue #802).
FixedNegBinTheta
Negative-Binomial overdispersion theta held fixed at a user-supplied
value (--negative-binomial-theta, issue #983). Identical role to
EstimatedNegBinTheta in every weight / variance / covariance
expression (W = μθ/(θ+μ), Var(y) = μ + μ²/θ, phi ≡ 1), but the
inner solver’s ML refresh is gated off: the recorded theta is the
user’s, by construction. The fixed/estimated split mirrors
FixedGammaShape vs EstimatedGammaShape.
Unspecified
The engine does not expose fixed-scale semantics for this family. Family has no scalar GLM scale by model definition (currently only Royston-Parmar). This is not a missing-value fallback.
Implementations§
Source§impl LikelihoodScaleMetadata
impl LikelihoodScaleMetadata
pub const fn fixed_phi(self) -> Option<f64>
Sourcepub const fn negbin_theta_is_estimated(self) -> bool
pub const fn negbin_theta_is_estimated(self) -> bool
Whether the Negative-Binomial overdispersion theta is estimated from
data (the default for NB families, issue #802).
Sourcepub const fn negbin_theta(self) -> Option<f64>
pub const fn negbin_theta(self) -> Option<f64>
The Negative-Binomial theta carried in the scale metadata (estimated
or user-fixed), or None for non-NB families.
Sourcepub const fn beta_phi_is_estimated(self) -> bool
pub const fn beta_phi_is_estimated(self) -> bool
Whether the Beta-regression precision phi is estimated from data.
Sourcepub const fn tweedie_phi_is_estimated(self) -> bool
pub const fn tweedie_phi_is_estimated(self) -> bool
Whether the Tweedie exponential-dispersion phi is estimated from data.
pub const fn gamma_shape(self) -> Option<f64>
pub const fn gamma_shape_is_estimated(self) -> bool
Trait Implementations§
Source§impl Clone for LikelihoodScaleMetadata
impl Clone for LikelihoodScaleMetadata
Source§fn clone(&self) -> LikelihoodScaleMetadata
fn clone(&self) -> LikelihoodScaleMetadata
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more