MCPcopy Create free account
hub / github.com/Open-Quant/openquant / corrcoef

Function corrcoef

crates/openquant/src/codependence.rs:12–41  ·  view source on GitHub ↗
(x: &[f64], y: &[f64])

Source from the content-addressed store, hash-verified

10pub type CodependenceResult<T> = Result<T, CodependenceError>;
11
12fn corrcoef(x: &[f64], y: &[f64]) -> CodependenceResult<f64> {
13 if x.len() != y.len() {
14 return Err(CodependenceError::InputLengthMismatch);
15 }
16 if x.len() < 2 {
17 return Err(CodependenceError::InputTooShort);
18 }
19
20 let n = x.len() as f64;
21 let mean_x = x.iter().sum::<f64>() / n;
22 let mean_y = y.iter().sum::<f64>() / n;
23
24 let mut cov = 0.0;
25 let mut var_x = 0.0;
26 let mut var_y = 0.0;
27
28 for (xi, yi) in x.iter().zip(y.iter()) {
29 let dx = xi - mean_x;
30 let dy = yi - mean_y;
31 cov += dx * dy;
32 var_x += dx * dx;
33 var_y += dy * dy;
34 }
35
36 if var_x == 0.0 || var_y == 0.0 {
37 return Err(CodependenceError::ZeroVariance);
38 }
39
40 Ok(cov / (var_x * var_y).sqrt())
41}
42
43fn histogram(values: &[f64], n_bins: usize) -> CodependenceResult<Vec<usize>> {
44 if n_bins == 0 {

Callers 5

angular_distanceFunction · 0.70
squared_angular_distanceFunction · 0.70
get_mutual_infoFunction · 0.70

Calls 1

lenMethod · 0.80

Tested by

no test coverage detected