pub struct AtomFunctionalReport {
pub peak_contrast: Option<AtomFunctionalEstimate>,
pub average_value: Option<AtomFunctionalEstimate>,
pub decoder_variation_norm: Option<AtomFunctionalEstimate>,
}Expand description
Descriptive penalty-debiased POINT summaries of one fitted atom’s decoder
curve (#1097, narrowed under #1115). Each field is a scalar functional of the
atom’s inner smooth g_k(t), reported as a plug-in value and a one-step
penalty-debiased value (the regularization bias relative to the conditional
target is removed through the atom fit’s penalized Hessian). No standard
error and no confidence interval are reported — by design (see below).
§Why these carry NO coverage claim (#1115)
Conditional on the fitted latent coordinates t̂ and assignment â, each
functional is an ordinary linear functional of the penalized-WLS coefficients
β with a well-defined conditional population value, and one-step debiasing
validly removes the penalty bias for that conditional target. The point
estimates are therefore meaningful. A standard error, however, would only be
honest if t̂ and â were fixed/known. They are not: they are generated
regressors estimated from the very activations that also form the response
Z, so Z enters both the design (via t̂(Z), â(Z)) and the response. An
influence-function SE built from the β-only Hessian and row scores carries no
∂t̂/∂Z / ∂â/∂Z channel — exactly the generated-regressor correction the
marginal-slope family (#461 Stage 2) is defined by — so it omits a
first-order variance term and is generally anti-conservative. Rather than ship
an SE/CI that silently under-covers, this report exposes only the debiased
point summaries; a coverage-valid interval would require either freezing the
dictionary on a held-out split or propagating the generated-regressor
Jacobian, neither of which the fixed inner-fit snapshot supports.
Fields§
§peak_contrast: Option<AtomFunctionalEstimate>g(t_peak) − g(t_mode): the peak-vs-baseline contrast of the fitted
decoder, penalty-debiased through the inner-fit Hessian. Point summary
only (no coverage claim — see the type doc).
average_value: Option<AtomFunctionalEstimate>E_data[g(t_i)]: the data-averaged decoder value over the atom’s active
rows, penalty-debiased. Point summary only.
decoder_variation_norm: Option<AtomFunctionalEstimate>E_data[∂g/∂t] along the atom’s leading latent axis: how much the fitted
decoder curve varies across the data distribution, conditional on the
fit. A descriptive variation measure of the fitted curve, NOT a
population “marginal slope” (the latent coordinate is itself a fitted,
generated regressor). Point summary only.
Despite the historical _norm suffix this is the signed mass-weighted
mean derivative E_data[∂g/∂t] over the single leading axis, not a
magnitude — it can be negative, and a value near 0 means the average slope
cancels (a symmetric bump), not that the curve is flat. Use
AtomSmoothSignificance::log_e_nonconstant for an honest non-constancy
test; this field only describes the average local slope.
Trait Implementations§
Source§impl Clone for AtomFunctionalReport
impl Clone for AtomFunctionalReport
Source§fn clone(&self) -> AtomFunctionalReport
fn clone(&self) -> AtomFunctionalReport
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 AtomFunctionalReport
impl RefUnwindSafe for AtomFunctionalReport
impl Send for AtomFunctionalReport
impl Sync for AtomFunctionalReport
impl Unpin for AtomFunctionalReport
impl UnsafeUnpin for AtomFunctionalReport
impl UnwindSafe for AtomFunctionalReport
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.