pub struct InformationCriterionCalculator {
pub use_bias_correction: bool,
pub calculate_weights: bool,
}Expand description
Information criterion calculator
Fields§
§use_bias_correction: boolWhether to use bias correction for finite samples
calculate_weights: boolWhether to calculate model weights
Implementations§
Source§impl InformationCriterionCalculator
impl InformationCriterionCalculator
Sourcepub fn aic(
&self,
log_likelihood: f64,
n_parameters: usize,
n_data_points: usize,
) -> InformationCriterionResult
pub fn aic( &self, log_likelihood: f64, n_parameters: usize, n_data_points: usize, ) -> InformationCriterionResult
Calculate AIC (Akaike Information Criterion) AIC = 2k - 2ln(L)
Sourcepub fn aicc(
&self,
log_likelihood: f64,
n_parameters: usize,
n_data_points: usize,
) -> Result<InformationCriterionResult>
pub fn aicc( &self, log_likelihood: f64, n_parameters: usize, n_data_points: usize, ) -> Result<InformationCriterionResult>
Calculate AICc (Corrected AIC for finite samples) AICc = AIC + 2k(k+1)/(n-k-1)
Sourcepub fn bic(
&self,
log_likelihood: f64,
n_parameters: usize,
n_data_points: usize,
) -> InformationCriterionResult
pub fn bic( &self, log_likelihood: f64, n_parameters: usize, n_data_points: usize, ) -> InformationCriterionResult
Calculate BIC (Bayesian Information Criterion) BIC = k*ln(n) - 2ln(L)
Sourcepub fn dic(
&self,
log_likelihood_mean: f64,
log_likelihood_samples: &[f64],
n_data_points: usize,
) -> Result<InformationCriterionResult>
pub fn dic( &self, log_likelihood_mean: f64, log_likelihood_samples: &[f64], n_data_points: usize, ) -> Result<InformationCriterionResult>
Calculate DIC (Deviance Information Criterion) DIC = D(θ̄) + 2p_D, where p_D is effective number of parameters
Sourcepub fn waic(
&self,
pointwise_log_likelihoods: &Array2<f64>,
) -> Result<InformationCriterionResult>
pub fn waic( &self, pointwise_log_likelihoods: &Array2<f64>, ) -> Result<InformationCriterionResult>
Calculate WAIC (Watanabe-Akaike Information Criterion) WAIC = -2 * (lppd - p_WAIC)
Sourcepub fn looic(
&self,
pointwise_log_likelihoods: &Array2<f64>,
pareto_k_diagnostics: Option<&Array1<f64>>,
) -> Result<InformationCriterionResult>
pub fn looic( &self, pointwise_log_likelihoods: &Array2<f64>, pareto_k_diagnostics: Option<&Array1<f64>>, ) -> Result<InformationCriterionResult>
Calculate LOOIC (Leave-One-Out Information Criterion) using Pareto smoothed importance sampling
Sourcepub fn tic(
&self,
log_likelihood: f64,
fisher_information_trace: f64,
n_data_points: usize,
) -> Result<InformationCriterionResult>
pub fn tic( &self, log_likelihood: f64, fisher_information_trace: f64, n_data_points: usize, ) -> Result<InformationCriterionResult>
Calculate TIC (Takeuchi Information Criterion) TIC = -2ln(L) + 2tr(J^{-1}K), where J is Fisher information and K is outer product of scores
Sourcepub fn compare_models(
&self,
models: &[(String, f64, usize, usize)],
criterion: InformationCriterion,
) -> Result<ModelComparisonResult>
pub fn compare_models( &self, models: &[(String, f64, usize, usize)], criterion: InformationCriterion, ) -> Result<ModelComparisonResult>
Compare multiple models using specified criterion
Trait Implementations§
Auto Trait Implementations§
impl Freeze for InformationCriterionCalculator
impl RefUnwindSafe for InformationCriterionCalculator
impl Send for InformationCriterionCalculator
impl Sync for InformationCriterionCalculator
impl Unpin for InformationCriterionCalculator
impl UnwindSafe for InformationCriterionCalculator
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> 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