pub struct MultinomialFitOutputs {
pub coefficients_active: Array2<f64>,
pub fitted_probabilities: Array2<f64>,
pub iterations: usize,
pub penalized_neg_log_likelihood: f64,
pub deviance: f64,
pub coefficient_covariance: Array2<f64>,
}Expand description
Outputs of fit_penalized_multinomial.
Fields§
§coefficients_active: Array2<f64>Active-class coefficient block, shape (P, K-1) (column a is β_a).
The reference class K - 1 has β_{K-1} ≡ 0 by construction and is
not stored.
fitted_probabilities: Array2<f64>Fitted probabilities, shape (N, K).
iterations: usizeNumber of Newton iterations executed (including the final step that
satisfied the tolerance). Non-convergence (outside the separation lane,
which escalates to the Firth refit) is surfaced as the typed
EstimationError::FixedLambdaNewtonDidNotConverge rather than an Ok
with a flag, so every constructed value of this struct is a certified
converged fit (SPEC: a fit only ever comes from a converged
optimization).
penalized_neg_log_likelihood: f64Penalized negative log-likelihood at the returned β̂:
−log L(β̂) + ½ Σ_a λ_a · β̂_a^T S β̂_a.
deviance: f64Unpenalized deviance −2 log L(β̂) for diagnostic reporting.
coefficient_covariance: Array2<f64>Joint Laplace posterior coefficient covariance H⁻¹ at the converged
β̂, shape (P·(K−1))×(P·(K−1)) (#1101). Block-ordered to match the
stacked active-class coefficient vector β = [β_0; …; β_{K-2}]: active
class a’s P coefficients occupy rows/cols a·P .. (a+1)·P, indexed
θ[a·P + i] = β̂[i, a]. This is the Laplace covariance from the factored
penalized Hessian XᵀWX + diag_a(λ_a)⊗S; it drives the delta-method
per-class probability standard errors (Self::predict_probabilities_with_se)
on the fixed-λ inner-solve path.
Implementations§
Source§impl MultinomialFitOutputs
impl MultinomialFitOutputs
Sourcepub fn n_active_classes(&self) -> usize
pub fn n_active_classes(&self) -> usize
Number of active classes M = K − 1 (columns of
Self::coefficients_active).
Sourcepub fn p_per_class(&self) -> usize
pub fn p_per_class(&self) -> usize
Per-class coefficient dimension P (rows of
Self::coefficients_active).
Sourcepub fn predict_probabilities_with_se(
&self,
x_new: ArrayView2<'_, f64>,
) -> Result<(Array2<f64>, Array2<f64>), EstimationError>
pub fn predict_probabilities_with_se( &self, x_new: ArrayView2<'_, f64>, ) -> Result<(Array2<f64>, Array2<f64>), EstimationError>
Integrate the logistic-normal coefficient posterior at fresh design rows. Returns posterior-mean class probabilities and their exact-under-the- quadrature marginal standard deviations. The full joint coefficient covariance, including cross-class blocks, is contracted into each row’s active-logit covariance before deterministic adaptive integration.
pub fn predict_probabilities_with_se_and_control( &self, x_new: ArrayView2<'_, f64>, control: &MultinomialPosteriorIntegrationControl, ) -> Result<(Array2<f64>, Array2<f64>), EstimationError>
Trait Implementations§
Source§impl Clone for MultinomialFitOutputs
impl Clone for MultinomialFitOutputs
Source§fn clone(&self) -> MultinomialFitOutputs
fn clone(&self) -> MultinomialFitOutputs
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for MultinomialFitOutputs
impl RefUnwindSafe for MultinomialFitOutputs
impl Send for MultinomialFitOutputs
impl Sync for MultinomialFitOutputs
impl Unpin for MultinomialFitOutputs
impl UnsafeUnpin for MultinomialFitOutputs
impl UnwindSafe for MultinomialFitOutputs
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.