9 releases
Uses old Rust 2015
0.2.2 | Jul 8, 2024 |
---|---|
0.2.1 | Feb 8, 2022 |
0.2.0 | May 17, 2021 |
0.1.5 | Dec 23, 2020 |
0.1.1 | Aug 29, 2018 |
#275 in Algorithms
89 downloads per month
Used in kders
18KB
327 lines
kendalls
Kendall's rank correlation coefficient
Usage
Add this to your Cargo.toml:
[dependencies]
kendalls = "0.2.2"
and this to your crate root:
extern crate kendalls;
Example:
fn main() -> Result<(), kendalls::Error> {
let (tau_b, significance) = kendalls::tau_b(&[1, 2, 3], &[3, 4, 5])?;
assert_eq!(tau_b, 1.0);
assert_eq!(significance, 1.5666989036012806);
Ok(())
}
lib.rs
:
Kendall's tau rank correlation. At this point this is basically a copy-paste from Apache Commons Math library with some additions taken from scipy and R cor.test function
Example usage:
let (tau_b, significance) = kendalls::tau_b(&[1, 2, 3], &[3, 4, 5]).unwrap();
assert_eq!(tau_b, 1.0);
assert_eq!(significance, 1.5666989036012806);
If you want to compute correlation, let's say, for f64
type, then you will have to
provide either a custom comparator function or declare Ord
trait for your custom floating point
numbers type (see float crate).
use std::cmp::Ordering;
let (tau_b, _significance) = kendalls::tau_b_with_comparator(
&[1.0, 2.0],
&[3.0, 4.0],
|a: &f64, b: &f64| a.partial_cmp(&b).unwrap_or(Ordering::Greater),
).unwrap();
assert_eq!(tau_b, 1.0);
The function will return an error if you pass empty arrays into it or x
and y
arrays'
dimensions are not equal.