Function sci_rs::stats::lag_diff

source ยท
pub fn lag_diff<'a, YI, F>(y: YI) -> impl Iterator<Item = F>
where F: Float + 'a, YI: Iterator + Clone, YI::Item: Borrow<F>,
Expand description

Produce an iterator yielding the lag difference, yi1 - yi0,

https://www.itl.nist.gov/div898/handbook/eda/section3/lagplot.htm

use approx::assert_relative_eq;
use sci_rs::stats::lag_diff;

// Flat signal perfectly correlates with itself
let y: [f64; 4] = [1.,2.,4.,7.];
let z = lag_diff(y.iter()).collect::<Vec<_>>();
for i in 0..3 {
    assert_relative_eq!(i as f64 + 1f64, z[i]);
}