Skip to main content

bootstrap_mean_difference_interval

Function bootstrap_mean_difference_interval 

Source
pub fn bootstrap_mean_difference_interval(
    baseline: &[f64],
    candidate: &[f64],
    control: BootstrapControl,
) -> StatsResult<BootstrapEffectInterval>
Expand description

Bootstraps the difference between candidate and baseline arithmetic means.

The two samples are resampled independently with replacement. This matches the benchmark comparison policy’s interleaved but not necessarily paired observations. The same inputs and control produce bit-identical results on every target with IEEE-754 f64 arithmetic.

Examples found in repository?
examples/robust_benchmark_statistics.rs (line 9)
5fn main() {
6    let baseline = [101.0, 99.0, 100.0, 102.0, 98.0];
7    let candidate = [91.0, 89.0, 90.0, 92.0, 88.0];
8    let control = BootstrapControl::new(19, 2_000, 0.95, 20_000).unwrap();
9    let interval = bootstrap_mean_difference_interval(&baseline, &candidate, control).unwrap();
10
11    println!(
12        "baseline MAD: {:.1}",
13        median_absolute_deviation(&baseline).unwrap()
14    );
15    println!(
16        "candidate-minus-baseline mean: {:.1}",
17        interval.point_effect
18    );
19    println!(
20        "95% interval: [{:.1}, {:.1}]",
21        interval.lower, interval.upper
22    );
23    println!("seed: {}, resamples: {}", interval.seed, interval.resamples);
24}