pub struct BinomialLikelihood {
pub number_of_trials: i64,
pub function_name: String,
pub description: String,
pub formula: String,
}Expand description
Likelihood for success counts under a binomial model.
Fields§
§number_of_trials: i64Number of trials.
function_name: StringUnique name identifying a likelihood function.
description: StringFree-text description.
formula: StringMathematical formula.
Implementations§
Source§impl BinomialLikelihood
impl BinomialLikelihood
Sourcepub fn fit(&self, data: &[f64]) -> Result<MleFit>
pub fn fit(&self, data: &[f64]) -> Result<MleFit>
Closed-form maximum-likelihood fit of the success probability p.
The binomial MLE is p̂ = (Σᵢ xᵢ) / (N · n_trials) — the pooled success
rate across all N draws. Because the estimate is analytic, the returned
MleFit reports converged() == true and iterations() == 0, with the
AIC/BIC computed for k = 1 parameter over N observations.
§Arguments
data— the observed per-draw success counts; each must be an integer in[0, n_trials]. Must be non-empty.
§Returns
An MleFit whose single parameter is p̂.
§Errors
Error::InsufficientDataifdatais empty.Error::InvalidInputif this model’snumber_of_trialsis not a positive integer, or if any observation is negative, non-integral, or greater thannumber_of_trials.Error::DegenerateInputif every observation is0or every observation isn_trials(sop̂lands on the boundary{0, 1}and the log-likelihood is degenerate).
§Examples
use stats_claw::likelihood::BinomialLikelihood;
let model = BinomialLikelihood { number_of_trials: 10, ..Default::default() };
let fit = model.fit(&[3.0, 5.0, 2.0, 4.0, 6.0])?;
// p̂ = 20 / (5·10) = 0.4.
assert!((fit.params()[0] - 0.4).abs() < 1e-12, "p_hat was {}", fit.params()[0]);
assert!(fit.converged());Trait Implementations§
Source§impl Clone for BinomialLikelihood
impl Clone for BinomialLikelihood
Source§fn clone(&self) -> BinomialLikelihood
fn clone(&self) -> BinomialLikelihood
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BinomialLikelihood
impl Debug for BinomialLikelihood
Source§impl Default for BinomialLikelihood
impl Default for BinomialLikelihood
Source§fn default() -> BinomialLikelihood
fn default() -> BinomialLikelihood
Source§impl LogLikelihood for BinomialLikelihood
impl LogLikelihood for BinomialLikelihood
Source§fn n_params(&self) -> usize
fn n_params(&self) -> usize
The binomial has a single free parameter, the success probability p.
Source§fn log_likelihood(&self, params: &[f64], data: &[f64]) -> f64
fn log_likelihood(&self, params: &[f64], data: &[f64]) -> f64
Evaluates ℓ(p; data) for the success probability params[0].
Returns f64::NEG_INFINITY outside the valid domain: when
number_of_trials is not positive, p ∉ (0, 1), or any observation is
negative, non-integral, or exceeds number_of_trials.