pub struct NCNPAG<E: Equation + Send + 'static> { /* private fields */ }Expand description
Non-collapsing NPAG (NCNPAG) algorithm.
Individualizes a set of prior support points to a subject’s data in two steps, without collapsing (merging) the points:
- Bayesian filtering. Evaluate the likelihood
P(data | θⱼ)for each prior support point, apply a flat (uniform) prior so the posterior weight is proportional to the likelihood (postⱼ ∝ ∏ᵢ P(dataᵢ | θⱼ)), drop points whose normalized weight falls below1e-100 × max, and renormalize the survivors. - Per-point NPAG refinement. When
cycles > 0, seed a full NPAG run from each surviving point and replace it with the resulting daughter point, preserving its filter weight. Points whose refinement fails or yields nothing are kept at their original location.
The result is returned as a standard NonParametricResult, so the
(theta, weights) can be consumed exactly like any other fit.
Trait Implementations§
Source§impl<E: Equation + Send + 'static> NonParametricRunner<E> for NCNPAG<E>
impl<E: Equation + Send + 'static> NonParametricRunner<E> for NCNPAG<E>
Source§fn fit(&mut self) -> Result<NonParametricResult<E>>
fn fit(&mut self) -> Result<NonParametricResult<E>>
NCNPAG is a single-pass reweighting: it evaluates the likelihood of the fixed prior support points once, rather than iterating cycles.
fn into_result(&self) -> Result<NonParametricResult<E>>
fn error_models(&self) -> &AssayErrorModels
Source§fn likelihood(&self) -> f64
fn likelihood(&self) -> f64
Get the current likelihood
Source§fn increment_cycle(&mut self) -> usize
fn increment_cycle(&mut self) -> usize
Increment the cycle counter and return the new value
Source§fn set_status(&mut self, status: Status)
fn set_status(&mut self, status: Status)
Set the current Status of the algorithm
Source§fn evaluation(&mut self) -> Result<Status>
fn evaluation(&mut self) -> Result<Status>
Evaluate convergence criteria and update status
fn estimation(&mut self) -> Result<()>
Source§fn condensation(&mut self) -> Result<()>
fn condensation(&mut self) -> Result<()>
Source§fn optimizations(&mut self) -> Result<()>
fn optimizations(&mut self) -> Result<()>
Source§fn log_cycle_state(&mut self)
fn log_cycle_state(&mut self)
Create and log a cycle state with the current algorithm state
Source§fn check_zero_probability_subjects(&self) -> Result<()>
fn check_zero_probability_subjects(&self) -> Result<()>
Identify subjects whose total probability given the model is zero or
non-finite. Read more
Source§fn log_zero_probability_subject(&self, subject: &Subject)
fn log_zero_probability_subject(&self, subject: &Subject)
Log detailed likelihood diagnostics for a single subject whose
probability given the model is zero or non-finite.
Source§fn initialize(&mut self) -> Result<()>
fn initialize(&mut self) -> Result<()>
Auto Trait Implementations§
impl<E> Freeze for NCNPAG<E>where
E: Freeze,
impl<E> RefUnwindSafe for NCNPAG<E>where
E: RefUnwindSafe,
impl<E> Send for NCNPAG<E>
impl<E> Sync for NCNPAG<E>
impl<E> Unpin for NCNPAG<E>where
E: Unpin,
impl<E> UnsafeUnpin for NCNPAG<E>where
E: UnsafeUnpin,
impl<E> UnwindSafe for NCNPAG<E>where
E: UnwindSafe,
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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 more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.