pub fn calculate_z_score(value: f64, mean: f64, std_dev: f64) -> f64Expand description
Calculate z-score for anomaly detection.
The z-score indicates how many standard deviations away from the mean a value is. Values with |z-score| > 3 are typically considered anomalies.
ยงExamples
use chie_shared::calculate_z_score;
// Value at the mean has z-score of 0
let z = calculate_z_score(100.0, 100.0, 10.0);
assert_eq!(z, 0.0);
// Value 1 std dev above mean has z-score of 1
let z = calculate_z_score(110.0, 100.0, 10.0);
assert_eq!(z, 1.0);
// Value 2 std devs below mean has z-score of -2
let z = calculate_z_score(80.0, 100.0, 10.0);
assert_eq!(z, -2.0);
// Anomaly: value is 3.5 std devs above mean
let z = calculate_z_score(135.0, 100.0, 10.0);
assert_eq!(z, 3.5);
assert!(z.abs() > 3.0); // Likely an anomaly
// Handle zero std dev
let z = calculate_z_score(100.0, 100.0, 0.0);
assert_eq!(z, 0.0);