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

Function get_non_linear_effect

crates/openquant/src/fingerprint.rs:219–233  ·  view source on GitHub ↗
(
    feature_values: &[Vec<f64>],
    partial_dep: &[Vec<f64>],
)

Source from the content-addressed store, hash-verified

217 let (a, b) = ols_line(x, y);
218 let y_mean = y.iter().sum::<f64>() / y.len() as f64;
219 let effect = x.iter().map(|v| (a + b * *v - y_mean).abs()).sum::<f64>() / x.len() as f64;
220 store.insert(j, effect);
221 }
222 store
223}
224
225fn get_non_linear_effect(
226 feature_values: &[Vec<f64>],
227 partial_dep: &[Vec<f64>],
228) -> BTreeMap<usize, f64> {
229 let mut store = BTreeMap::new();
230 for j in 0..feature_values.len() {
231 let x = &feature_values[j];
232 let y = &partial_dep[j];
233 let (a, b) = ols_line(x, y);
234 let effect = x.iter().zip(y.iter()).map(|(vx, vy)| (a + b * *vx - *vy).abs()).sum::<f64>()
235 / x.len() as f64;
236 store.insert(j, effect);

Callers 1

fit_implFunction · 0.85

Calls 2

ols_lineFunction · 0.85
lenMethod · 0.80

Tested by

no test coverage detected