Struct Prediction
pub struct Prediction { /* private fields */ }Expand description
Prediction holds an observation and its prediction at a single time point.
This struct contains all information needed to calculate the likelihood contribution of a single observation.
Implementations§
§impl Prediction
impl Prediction
pub fn observation(&self) -> Option<f64>
pub fn observation(&self) -> Option<f64>
Get the observed value.
pub fn prediction(&self) -> f64
pub fn prediction(&self) -> f64
Get the predicted value.
pub fn prediction_error(&self) -> Option<f64>
pub fn prediction_error(&self) -> Option<f64>
Calculate the raw prediction error (prediction - observation).
pub fn percentage_error(&self) -> Option<f64>
pub fn percentage_error(&self) -> Option<f64>
Calculate the percentage error as (prediction - observation)/observation * 100.
pub fn absolute_error(&self) -> Option<f64>
pub fn absolute_error(&self) -> Option<f64>
Calculate the absolute error |prediction - observation|.
pub fn squared_error(&self) -> Option<f64>
pub fn squared_error(&self) -> Option<f64>
Calculate the squared error (prediction - observation)².
pub fn log_likelihood(
&self,
error_models: &AssayErrorModels,
) -> Result<f64, PharmsolError>
pub fn log_likelihood( &self, error_models: &AssayErrorModels, ) -> Result<f64, PharmsolError>
Calculate the log-likelihood of this prediction given an error model.
This method is numerically stable and handles:
- Regular observations: uses log-normal PDF
- BLOQ (below limit of quantification): uses log-CDF
- ALOQ (above limit of quantification): uses log-survival function
§Error Model
Uses observation-based sigma from AssayErrorModels, which is appropriate
for non-parametric algorithms (NPAG, NPOD). For parametric algorithms
(SAEM, FOCE), use crate::ResidualErrorModels directly.
§Parameters
error_models: The error models to use for sigma calculation
§Returns
The log-likelihood value, zero in the case of a missing observation or an error if the likelihood is non-finite.
§Example
let log_lik = prediction.log_likelihood(&error_models)?;pub fn likelihood(
&self,
error_models: &AssayErrorModels,
) -> Result<f64, PharmsolError>
👎Deprecated since 0.23.0: Use log_likelihood() instead for better numerical stability
pub fn likelihood( &self, error_models: &AssayErrorModels, ) -> Result<f64, PharmsolError>
Calculate the likelihood of this prediction.
Deprecated: Use log_likelihood instead for
better numerical stability. This method is provided for backward
compatibility and simply exponentiates the log-likelihood.
§Parameters
error_models: The error models to use for sigma calculation
§Returns
The likelihood value (exp of log-likelihood)
pub fn mut_occasion(&mut self) -> &mut usize
pub fn mut_occasion(&mut self) -> &mut usize
Get a mutable reference to the occasion index
pub fn to_observation(&self) -> Observation
pub fn to_observation(&self) -> Observation
Create an Observation from this prediction
Trait Implementations§
§impl Clone for Prediction
impl Clone for Prediction
§fn clone(&self) -> Prediction
fn clone(&self) -> Prediction
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for Prediction
impl Debug for Prediction
§impl Default for Prediction
impl Default for Prediction
§fn default() -> Prediction
fn default() -> Prediction
Auto Trait Implementations§
impl Freeze for Prediction
impl RefUnwindSafe for Prediction
impl Send for Prediction
impl Sync for Prediction
impl Unpin for Prediction
impl UnwindSafe for Prediction
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Context for T
impl<T> Context for T
fn vector_from_element<V>(&self, len: usize, value: <V as VectorCommon>::T) -> Vwhere
V: Vector<C = Self>,
fn vector_from_vec<V>(&self, vec: Vec<<V as VectorCommon>::T>) -> Vwhere
V: Vector<C = Self>,
fn vector_zeros<V>(&self, len: usize) -> Vwhere
V: Vector<C = Self>,
fn dense_mat_zeros<V>(
&self,
rows: usize,
cols: usize,
) -> <V as DefaultDenseMatrix>::Mwhere
V: Vector<C = Self> + DefaultDenseMatrix,
§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>
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 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>
self from the equivalent element of its
superset. Read more§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).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.