Skip to main content

NonParametricResult

Struct NonParametricResult 

Source
pub struct NonParametricResult<E: Equation> { /* private fields */ }
Expand description

Contains the results of a nonparametric estimation, including the final parameter

Implementations§

Source§

impl<E: Equation> NonParametricResult<E>

Source

pub fn cycles(&self) -> usize

Source

pub fn objf(&self) -> f64

Source

pub fn converged(&self) -> bool

Source

pub fn get_theta(&self) -> &Theta

Source

pub fn prior(&self) -> &Theta

The prior distribution (Theta) that seeded the algorithm.

This is the initial set of support points, as opposed to the optimized solution returned by get_theta.

Source

pub fn data(&self) -> &Data

Source

pub fn equation(&self) -> &E

Source

pub fn cycle_log(&self) -> &CycleLog

Source

pub fn chain<A>(self, algorithm: A) -> Result<NonParametricResult<E>>

Chain this result into a new fit with a different algorithm.

Uses the optimized theta as the prior for the new run. Keeps the same equation, data, and error models. Consumes self.

§Example
let result = problem
    .fit_with(NpagConfig::new().max_cycles(100))?
    .chain(NpodConfig::new().max_cycles(50))?;
Source

pub fn psi(&self) -> &Psi

Source

pub fn weights(&self) -> &Weights

Source

pub fn error_models(&self) -> &AssayErrorModels

Source

pub fn posterior(&self) -> Result<Posterior>

Compute the posterior probabilities on demand from Psi and the Weights. This is a cheap matrix operation and is intentionally not cached on the result.

Source

pub fn predictions(&self, idelta: f64, tad: f64) -> Result<NPPredictions>

Compute predictions on demand. Nothing is cached on the result; callers that need the predictions repeatedly should hold on to the returned value themselves.

Source

pub fn write_theta(&self, path: &Path) -> Result<()>

Source

pub fn write_posterior(&self, path: &Path) -> Result<()>

Source

pub fn write_covariates(&self, path: &Path) -> Result<()>

Source

pub fn write_cycles(&self, path: &Path) -> Result<()>

Write the cycle log to a CSV file readable by Pmetrics.

Source

pub fn write_predictions( &self, path: &Path, idelta: f64, tad: f64, ) -> Result<()>

Compute and write the population and posterior predictions to a CSV file readable by Pmetrics.

idelta is the interval used to densify the prediction grid and tad is the additional time after the last event to simulate.

Source

pub fn write_json(&self, path: &Path, idelta: f64, tad: f64) -> Result<()>

Serialize the complete result to a single JSON file.

This includes the data, error models, prior, optimized support points, likelihoods, weights, objective function, status, cycle log, posterior probabilities, and predictions. idelta and tad control the density of the embedded predictions (see predictions).

Source

pub fn write_outputs( &self, directory: impl AsRef<Path>, idelta: f64, tad: f64, ) -> Result<()>

Write the full set of result artifacts to directory.

The directory is created if it does not exist, and the following files are produced (matching the names expected by Pmetrics):

  • theta.csv — optimized support points with weights
  • posterior.csv — per-subject posterior probabilities
  • pred.csv — population and posterior predictions
  • covs.csv — interpolated covariates
  • cycles.csv — cycle log
  • result.json — the complete result as JSON

The posterior and predictions are computed once and shared across the CSV and JSON outputs. idelta and tad control the density of the predictions (see predictions).

Trait Implementations§

Source§

impl<E: Debug + Equation> Debug for NonParametricResult<E>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<E: Equation> FitResult for NonParametricResult<E>

Auto Trait Implementations§

§

impl<E> Freeze for NonParametricResult<E>
where E: Freeze,

§

impl<E> RefUnwindSafe for NonParametricResult<E>
where E: RefUnwindSafe,

§

impl<E> Send for NonParametricResult<E>
where E: Send,

§

impl<E> Sync for NonParametricResult<E>

§

impl<E> Unpin for NonParametricResult<E>
where E: Unpin,

§

impl<E> UnsafeUnpin for NonParametricResult<E>
where E: UnsafeUnpin,

§

impl<E> UnwindSafe for NonParametricResult<E>
where E: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> ByRef<T> for T

§

fn by_ref(&self) -> &T

§

impl<T> DistributionExt for T
where T: ?Sized,

§

fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> T
where Self: Distribution<T>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

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

Checks if self is actually part of its subset T (and can be converted to it).
§

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

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T, U> Imply<T> for U
where T: ?Sized, U: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

§

impl<T> SendAlias for T

§

impl<T> SyncAlias for T