pub enum SmoothLrReferenceSource {
NullSpectrum,
SpectralMomentMatch,
UnitWeightFallback,
}Expand description
Which lane supplied a SmoothLrReferenceDf.
Variants§
NullSpectrum
The statistic’s own null spectrum w, in full, scored by Imhof
inversion of its characteristic function. This is the exact lane: the
reference IS the null law, not a distribution fitted to some of its
moments.
The spectrum is assembled from [H⁻¹]_jj and the term’s own λ-weighted
penalty block through the symmetric similarity
w_j = 1 − eig(B^{1/2} S_jj B^{1/2})² — see
lr_tested_block for why that is the same spectrum as
eig(2·F_jj − F_jj²) and why it is the better-conditioned way to reach
it.
SpectralMomentMatch
[H⁻¹]_jj or the penalty block was unavailable, but the
coefficient-influence matrix was, so only the first two moments of the
spectrum are recoverable (tr A and tr A² for A = 2F_jj − F_jj²,
both traces of powers of one block). The reference is then the
two-moment match g·χ²_ν.
It is EXACT at both ends of the shrinkage range and wrong in between,
which is worth stating precisely because the ends are where the intuition
goes. An unpenalized term has w ≡ 1 and the match is the textbook
χ²_q; a term REML has shrunk to its null space has one weight of order
one over a tail of dust — measured on a null-true k = 12 fit, w = (0.322, 5.9e-7, 7.1e-8, …) — and a single distinct weight is a scaled
chi-square exactly. The gap opens at moderate shrinkage, where several
weights are comparable and unequal: on f_j = 1/(1 + λγ_j) for a
second-difference penalty at λ = 0.01, k = 20, the size delivered at
a nominal α is 1.02× at 0.05, 1.11× at 0.01, 1.31× at 10⁻³
and 1.61× at 10⁻⁴ — one-signed, anti-conservative, and worse the
deeper the tail.
It is a surrogate for the lane above, not a different claim about the statistic.
UnitWeightFallback
Neither the spectrum nor its moments were recoverable, so the reference
falls back to the classical unit-weight shape
χ²_{max(edf, null_dim, 1)} — every retained direction counted as if it
were unpenalized. It is the only reference recoverable from a scalar
EDF, and it is conservative for the same reason the whole pre-#2672
assembly was: unit weights over-state the statistic’s spread.
Trait Implementations§
Source§impl Clone for SmoothLrReferenceSource
impl Clone for SmoothLrReferenceSource
Source§fn clone(&self) -> SmoothLrReferenceSource
fn clone(&self) -> SmoothLrReferenceSource
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SmoothLrReferenceSource
Source§impl Debug for SmoothLrReferenceSource
impl Debug for SmoothLrReferenceSource
impl Eq for SmoothLrReferenceSource
Source§impl PartialEq for SmoothLrReferenceSource
impl PartialEq for SmoothLrReferenceSource
impl StructuralPartialEq for SmoothLrReferenceSource
Auto Trait Implementations§
impl Freeze for SmoothLrReferenceSource
impl RefUnwindSafe for SmoothLrReferenceSource
impl Send for SmoothLrReferenceSource
impl Sync for SmoothLrReferenceSource
impl Unpin for SmoothLrReferenceSource
impl UnsafeUnpin for SmoothLrReferenceSource
impl UnwindSafe for SmoothLrReferenceSource
Blanket Implementations§
impl<T> Allocation for T
impl<T> Boilerplate 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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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,
impl<T> Scalar for T
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.