pub fn variance(data: &[f64]) -> Result<f64, String>
Variance (sample, N-1 denominator — R/pandas default). Two-pass: first binned mean, then binned sum of squared deviations. For single element, returns 0.