Skip to main content

evaluate_rules

Function evaluate_rules 

Source
pub fn evaluate_rules(
    values: &[f64],
    center: f64,
    sigma: f64,
    rules: &[ChartRule],
) -> Result<Vec<RuleViolation>, FdarError>
Expand description

Evaluate a set of chart rules against a sequence of values.

Each RuleViolation in the returned vector contains the triggering rule and the indices of the observations involved. Multiple violations from different rules may overlap. For multi-rule evaluation, consider using western_electric_rules or nelson_rules convenience functions.

§Arguments

  • values - Monitoring statistic values (in time order)
  • center - Center line (e.g. process mean)
  • sigma - Standard deviation estimate
  • rules - Rules to evaluate

§Example

use fdars_core::spm::rules::{evaluate_rules, ChartRule};
let values = vec![0.0, 0.1, 0.0, -0.1, 0.0, 0.0, 0.1, 10.0]; // outlier at index 7
let violations = evaluate_rules(&values, 0.0, 1.0, &[ChartRule::WE1]).unwrap();
assert!(!violations.is_empty());
assert_eq!(violations[0].indices, vec![7]);

§Errors

Returns FdarError::InvalidParameter if sigma is not positive.