pub struct MaximumLikelihood {
pub estimation_method: String,
pub convergence_tolerance: f64,
pub function_name: String,
pub description: String,
pub formula: String,
}Expand description
General maximum-likelihood estimation procedure.
Fields§
§estimation_method: StringEstimation method.
convergence_tolerance: f64Convergence tolerance.
function_name: StringUnique name identifying a likelihood function.
description: StringFree-text description.
formula: StringMathematical formula.
Implementations§
Source§impl MaximumLikelihood
impl MaximumLikelihood
Sourcepub fn fit(
&self,
model: &impl LogLikelihood,
data: &[f64],
init: &[f64],
) -> Result<MleFit>
pub fn fit( &self, model: &impl LogLikelihood, data: &[f64], init: &[f64], ) -> Result<MleFit>
Fits model to data from init, using this instance’s
convergence_tolerance.
The stored tolerance is the gradient-norm threshold forwarded to
fit_mle. When the field is left at its default of 0.0 (a
non-positive, unusable threshold), it falls back to 1e-8.
§Arguments
model— the parametric log-likelihood to fit.data— the observed sample; must be non-empty.init— the starting parameter vector; length must equalmodel.n_params().
§Errors
Propagates the errors of fit_mle: Error::InsufficientData for
empty data, and Error::InvalidInput for an init/parameter-count
mismatch, a non-positive resolved tolerance, or an init outside the
model’s valid domain (non-finite log-likelihood).
§Examples
use stats_claw::likelihood::MaximumLikelihood;
use stats_claw::likelihood::LogLikelihood;
struct MeanModel;
impl LogLikelihood for MeanModel {
fn n_params(&self) -> usize { 1 }
fn log_likelihood(&self, p: &[f64], d: &[f64]) -> f64 { -d.iter().map(|x| (x - p[0]).powi(2)).sum::<f64>() }
}
let mle = MaximumLikelihood { convergence_tolerance: 1e-9, ..Default::default() };
let fit = mle.fit(&MeanModel, &[2.0, 4.0, 6.0], &[0.0])?;
assert!((fit.params()[0] - 4.0).abs() < 1e-5, "mu_hat was {}", fit.params()[0]);Trait Implementations§
Source§impl Clone for MaximumLikelihood
impl Clone for MaximumLikelihood
Source§fn clone(&self) -> MaximumLikelihood
fn clone(&self) -> MaximumLikelihood
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MaximumLikelihood
impl Debug for MaximumLikelihood
Source§impl Default for MaximumLikelihood
impl Default for MaximumLikelihood
Source§fn default() -> MaximumLikelihood
fn default() -> MaximumLikelihood
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for MaximumLikelihood
impl RefUnwindSafe for MaximumLikelihood
impl Send for MaximumLikelihood
impl Sync for MaximumLikelihood
impl Unpin for MaximumLikelihood
impl UnsafeUnpin for MaximumLikelihood
impl UnwindSafe for MaximumLikelihood
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