4 releases

0.2.2 Feb 24, 2021
0.2.1 Feb 16, 2021
0.2.0 Nov 30, 2020
0.1.0 Nov 14, 2020

#2757 in Algorithms

Download history 47224/week @ 2025-10-21 43536/week @ 2025-10-28 36315/week @ 2025-11-04 40868/week @ 2025-11-11 57901/week @ 2025-11-18 26505/week @ 2025-11-25 43263/week @ 2025-12-02 37519/week @ 2025-12-09 41202/week @ 2025-12-16 18643/week @ 2025-12-23 17757/week @ 2025-12-30 55312/week @ 2026-01-06 52799/week @ 2026-01-13 50037/week @ 2026-01-20 53233/week @ 2026-01-27 58420/week @ 2026-02-03

223,326 downloads per month
Used in kaspa-addressmanager

MIT license

17KB
349 lines

statest

Rust crate for statistical tests.

docs.rs

Now

  • T test
  • Kolmogorov–Smirnov test
  • Chi2 test

is available.

usage

T test

use statest::ttest::*;

fn main() {
    let v: Vec<f32> = vec![100.2, 101.5, 98.0, 100.1, 100.9, 99.6, 98.6, 102.1, 101.4, 97.9];
    println!("{}", v.ttest1(102.0, 0.05, Side::One(UPLO::Upper))); // true
}

Kolmogorov–Smirnov test

use rand_distr::{StudentT, Distribution};
use statest::ks::*;
use statrs::distribution::{StudentsT, Exponential, Normal};

fn main() {
    let t = StudentT::new(1.0).unwrap();
    let t_vec = (0..1000).map(|_| t.sample(&mut rand::thread_rng()))
                         .collect::<Vec<f64>>();
    let tdist = StudentsT::new(0.0, 1.0, 1.0).unwrap();
    let ndist = Normal::new(0.0, 1.0).unwrap();
    let edist = Exponential::new(1.0).unwrap();
    println!("StudentT? {}", t_vec.ks1(&tdist, 0.05)); // true
    println!("Normal? {}", t_vec.ks1(&ndist, 0.05)); // false
    println!("Exponential? {}", t_vec.ks1(&edist, 0.05)); // false
}

Dependencies

~7MB
~132K SLoC