pub struct ExactFullConformalSubstrate { /* private fields */ }Expand description
Persistable substrate for the EXACT Gaussian-identity full-conformal set
(#942 Layer 1 + the Layer-3 frozen-ρ self-diagnostic), the analogue of
GaussianJackknifePlusStats for the exact set.
Unlike jackknife+, the exact full-conformal set has no test-point-independent
factorization: every test covariate x_* enters the augmented normal matrix
M = XᵀX + x_*x_*ᵀ + Sλ, so the substrate persists the training design X,
response y, and the (frozen) penalty Sλ and rebuilds
ExactGaussianFullConformal per test row — one Cholesky per test point,
zero refits. Valid for any penalized smooth with an arbitrary Sλ and basis.
Sλ is recovered once at fit time from the converged penalized Hessian
M₀ = XᵀX + Sλ (the Gaussian-identity, unit-weight, dispersion-unscaled
normal matrix stored in [FitGeometry]) as Sλ = M₀ − XᵀX, so no penalty
re-derivation is needed — exactly the seam the jackknife+ substrate uses.
The frozen-ρ self-diagnostic treats the entire frozen penalty as carrying a
single global log-smoothing parameter ρ with S(ρ) = eᵖ·Sλ and runs the
closed-form GaussianRemlRhoResponse::certified_full_conformal: it
re-selects the global ρ̂(z) on the augmented data, bounds the score
perturbation freezing ρ̂ could induce, and reports whether freezing is
accepted under the stated rho-grid Lipschitz assumption. This is a sound,
conservative global-scale check that applies to any penalized smooth (it does
not require the model to be single-penalty); per-penalty re-selection is the
research-core Layer 3 and is not asserted here.
Unit prior weights are required, as everywhere in this module: a reweighted training row is not exchangeable with the test row.
Implementations§
Source§impl ExactFullConformalSubstrate
impl ExactFullConformalSubstrate
Sourcepub fn from_design_unit_weight_normal_matrix(
x: &Array2<f64>,
y: &Array1<f64>,
prior_weights: &Array1<f64>,
m: &Array2<f64>,
) -> Result<Self, String>
pub fn from_design_unit_weight_normal_matrix( x: &Array2<f64>, y: &Array1<f64>, prior_weights: &Array1<f64>, m: &Array2<f64>, ) -> Result<Self, String>
Build the substrate from the training design, response, prior weights,
and the converged penalized normal matrix M₀ = XᵀX + Sλ. Recovers the
frozen penalty Sλ = M₀ − XᵀX once. Rejects non-unit prior weights and
shape mismatches, identically to the rest of this module.
Trait Implementations§
Source§impl Clone for ExactFullConformalSubstrate
impl Clone for ExactFullConformalSubstrate
Source§fn clone(&self) -> ExactFullConformalSubstrate
fn clone(&self) -> ExactFullConformalSubstrate
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExactFullConformalSubstrate
impl Debug for ExactFullConformalSubstrate
Source§impl<'de> Deserialize<'de> for ExactFullConformalSubstrate
impl<'de> Deserialize<'de> for ExactFullConformalSubstrate
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ExactFullConformalSubstrate
impl RefUnwindSafe for ExactFullConformalSubstrate
impl Send for ExactFullConformalSubstrate
impl Sync for ExactFullConformalSubstrate
impl Unpin for ExactFullConformalSubstrate
impl UnsafeUnpin for ExactFullConformalSubstrate
impl UnwindSafe for ExactFullConformalSubstrate
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.