Struct SubjectPredictions
pub struct SubjectPredictions { /* private fields */ }Expand description
Container for predictions associated with a single subject.
This struct holds all predictions for a subject along with methods for calculating aggregate likelihood and error metrics.
Implementations§
§impl SubjectPredictions
impl SubjectPredictions
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 all predictions given an error model.
This sums the log-likelihood of each prediction to get the joint log-likelihood. This is numerically stable and avoids underflow issues that can occur when computing products of small probabilities.
§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 calculating the likelihood
§Returns
The sum of all individual prediction log-likelihoods. Returns 0.0 for empty prediction sets (log of 1.0).
§Example
let log_lik = subject_predictions.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 all predictions.
Deprecated: Use log_likelihood instead for
better numerical stability. This method exponentiates the log-likelihood.
§Parameters
error_models: The error models to use for calculating the likelihood
§Returns
The product of all individual prediction likelihoods. Returns 1.0 for empty prediction sets.
pub fn add_prediction(&mut self, prediction: Prediction)
pub fn add_prediction(&mut self, prediction: Prediction)
pub fn predictions(&self) -> &Vec<Prediction>
pub fn predictions(&self) -> &Vec<Prediction>
Get a reference to the vector of predictions.
pub fn flat_predictions(&self) -> Vec<f64>
pub fn flat_predictions(&self) -> Vec<f64>
Return a flat vector of prediction values.
pub fn flat_times(&self) -> Vec<f64>
pub fn flat_times(&self) -> Vec<f64>
Return a flat vector of time points.
pub fn flat_observations(&self) -> Vec<Option<f64>>
pub fn flat_observations(&self) -> Vec<Option<f64>>
Return a flat vector of observations.
Trait Implementations§
§impl Clone for SubjectPredictions
impl Clone for SubjectPredictions
§fn clone(&self) -> SubjectPredictions
fn clone(&self) -> SubjectPredictions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for SubjectPredictions
impl Debug for SubjectPredictions
§impl Default for SubjectPredictions
impl Default for SubjectPredictions
§fn default() -> SubjectPredictions
fn default() -> SubjectPredictions
§impl From<Vec<Prediction>> for SubjectPredictions
impl From<Vec<Prediction>> for SubjectPredictions
§fn from(predictions: Vec<Prediction>) -> SubjectPredictions
fn from(predictions: Vec<Prediction>) -> SubjectPredictions
§impl Predictions for SubjectPredictions
impl Predictions for SubjectPredictions
§fn squared_error(&self) -> f64
fn squared_error(&self) -> f64
§fn get_predictions(&self) -> Vec<Prediction>
fn get_predictions(&self) -> Vec<Prediction>
§fn log_likelihood(
&self,
error_models: &AssayErrorModels,
) -> Result<f64, PharmsolError>
fn log_likelihood( &self, error_models: &AssayErrorModels, ) -> Result<f64, PharmsolError>
Auto Trait Implementations§
impl Freeze for SubjectPredictions
impl RefUnwindSafe for SubjectPredictions
impl Send for SubjectPredictions
impl Sync for SubjectPredictions
impl Unpin for SubjectPredictions
impl UnsafeUnpin for SubjectPredictions
impl UnwindSafe for SubjectPredictions
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.