Skip to main content

fit_normal

Function fit_normal 

Source
pub fn fit_normal(data: &[f64]) -> Option<FitResult>
Expand description

Fits a Normal distribution N(μ, σ²) via MLE.

§Estimators

  • μ̂ = x̄ (sample mean)
  • σ̂ = √((1/n) Σ(xᵢ - x̄)²) (biased MLE, not sample std dev)

§Returns

None if fewer than 2 data points, non-finite values, or zero variance.

§Examples

use u_analytics::distribution::fit_normal;

let data = [2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0];
let fit = fit_normal(&data).unwrap();
assert_eq!(fit.distribution, "Normal");
assert!((fit.parameters[0].1 - 5.0).abs() < 1e-10); // μ̂ = 5.0
assert!(fit.parameters[1].1 > 0.0); // σ̂ > 0