pub struct AtomInnerFit {
pub design: Array2<f64>,
pub derivative_design: Array2<f64>,
pub beta: Array1<f64>,
pub penalty: Array2<f64>,
pub penalized_hessian: Array2<f64>,
pub row_scores: Array2<f64>,
pub weights: Array1<f64>,
pub dispersion: f64,
pub peak_design_row: Array1<f64>,
pub mode_design_row: Array1<f64>,
}Expand description
The fitted per-atom inner-decoder smooth, captured once at fit time so the post-PIRLS atom-inference reports reuse the same design, penalized Hessian, and per-row scores the identifiability certificate’s curvature sees.
The SAE decoder reconstructs Z_i ≈ Σ_k a_ik Φ_k(t_ik) B_k. Holding all
other atoms and the assignment fixed at the fitted optimum, atom k’s own
contribution along a single output channel j is the Gaussian-identity
penalized smooth a_ik · Φ_k(t_ik)ᵀ β_{k,j} with roughness penalty S_k,
Gauss–Newton observation weight w_i = a_ik² (the assignment mass enters the
channel linearly, so the normal-equation weight is its square), and
dispersion the fitted reconstruction dispersion. That is an ordinary
penalized WLS smooth — exactly what crate::inference::riesz,
gam_terms::inference::lawley, and the κ-profile machinery consume. The
channel j is the atom’s dominant decoder output direction (largest column
norm of B_k), i.e. the channel that carries the atom’s signal.
Fields§
§design: Array2<f64>Φ_k evaluated on the atom’s active rows, (n_active, M_k). The inner
GAM smooth design. Column 0 is the constant/intercept basis column.
derivative_design: Array2<f64>∂Φ_k/∂t along the atom’s leading latent axis on the active rows,
(n_active, M_k): the derivative design the average-derivative
functional integrates.
beta: Array1<f64>The fitted decoder coefficients for the captured output channel,
β_{k,j} ∈ ℝ^{M_k}.
penalty: Array2<f64>The atom roughness Gram S_k, (M_k, M_k).
penalized_hessian: Array2<f64>The penalized Hessian H = ΦᵀWΦ + S_k at the fitted state, (M_k, M_k).
row_scores: Array2<f64>Per-row Gaussian-identity scores s_i = ∂nll_i/∂β = −w_i r_i Φ_i / φ,
(n_active, M_k), on the captured channel.
weights: Array1<f64>Per-row Gauss–Newton weights w_i = a_ik² on the captured channel.
dispersion: f64Fitted reconstruction dispersion φ (Gaussian σ²).
peak_design_row: Array1<f64>Design row at the latent peak t_peak (largest fitted |g_k|).
mode_design_row: Array1<f64>Design row at the latent mode t_mode (largest assignment mass).
Trait Implementations§
Source§impl Clone for AtomInnerFit
impl Clone for AtomInnerFit
Source§fn clone(&self) -> AtomInnerFit
fn clone(&self) -> AtomInnerFit
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 AtomInnerFit
impl RefUnwindSafe for AtomInnerFit
impl Send for AtomInnerFit
impl Sync for AtomInnerFit
impl Unpin for AtomInnerFit
impl UnsafeUnpin for AtomInnerFit
impl UnwindSafe for AtomInnerFit
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.