pub struct PoissonLikelihood {
pub function_name: String,
pub description: String,
pub formula: String,
}Expand description
Likelihood for count data under a Poisson model.
Fields§
§function_name: StringUnique name identifying a likelihood function.
description: StringFree-text description.
formula: StringMathematical formula.
Implementations§
Source§impl PoissonLikelihood
impl PoissonLikelihood
Sourcepub fn fit(&self, data: &[f64]) -> Result<MleFit>
pub fn fit(&self, data: &[f64]) -> Result<MleFit>
Computes the closed-form maximum-likelihood fit λ̂ = x̄ (the sample
mean) of the Poisson rate.
The estimate is exact, so the returned MleFit reports
converged as true and zero
iterations; its AIC/BIC follow the shared
information-criteria formulas with k = 1 parameter.
§Arguments
data— the observed counts; each entry must be a finite, non-negative integer, and the sample must contain at least one non-zero count.
§Returns
An MleFit whose single parameter is λ̂ and whose
log_likelihood is ℓ(λ̂; data).
§Errors
Error::InsufficientDataifdatais empty.Error::InvalidInputif any observation is negative, non-integer, or non-finite.Error::DegenerateInputif every observation is zero, which drivesλ̂ = 0and leaves the log-likelihood undefined (ln 0).
§Examples
use stats_claw::likelihood::PoissonLikelihood;
let model = PoissonLikelihood::default();
let fit = model.fit(&[2.0, 3.0, 1.0, 5.0, 0.0, 4.0, 2.0, 3.0])?;
// The MLE of the Poisson rate is the sample mean, here 20 / 8 = 2.5.
assert!((fit.params()[0] - 2.5).abs() < 1e-12, "lambda_hat was {}", fit.params()[0]);Trait Implementations§
Source§impl Clone for PoissonLikelihood
impl Clone for PoissonLikelihood
Source§fn clone(&self) -> PoissonLikelihood
fn clone(&self) -> PoissonLikelihood
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 PoissonLikelihood
impl Debug for PoissonLikelihood
Source§impl Default for PoissonLikelihood
impl Default for PoissonLikelihood
Source§fn default() -> PoissonLikelihood
fn default() -> PoissonLikelihood
Source§impl LogLikelihood for PoissonLikelihood
impl LogLikelihood for PoissonLikelihood
Source§fn n_params(&self) -> usize
fn n_params(&self) -> usize
Returns the single free parameter count of the Poisson model, 1 (the
rate λ).
Source§fn log_likelihood(&self, params: &[f64], data: &[f64]) -> f64
fn log_likelihood(&self, params: &[f64], data: &[f64]) -> f64
Evaluates ℓ([λ]; data) = Σᵢ (xᵢ·ln λ − λ − ln Γ(xᵢ + 1)).
Returns f64::NEG_INFINITY when params[0] = λ ≤ 0 (or is NaN), and
likewise when any observation is negative, non-integer, or non-finite —
all of which lie outside the Poisson support.
§Arguments
params— the one-element rate vector[λ]; a shorter slice yieldsf64::NEG_INFINITY.data— the observed counts.
§Returns
The total log-likelihood, or f64::NEG_INFINITY outside the valid
domain.