MCPcopy Create free account
hub / github.com/cortex-js/compute-engine / correlation

Function correlation

src/compute-engine/numerics/statistics.ts:371–397  ·  view source on GitHub ↗
(
  xsI: Iterable<number>,
  ysI: Iterable<number>
)

Source from the content-addressed store, hash-verified

369export function bigPopulationCovariance(
370 xs: Iterable<BigDecimal>,
371 ys: Iterable<BigDecimal>
372): BigDecimal {
373 return bigCovImpl(xs, ys, true);
374}
375
376export function correlation(
377 xsI: Iterable<number>,
378 ysI: Iterable<number>
379): number {
380 const xs = [...xsI];
381 const ys = [...ysI];
382 const n = xs.length;
383 if (n !== ys.length || n < 2) return NaN;
384 let sx = 0;
385 let sy = 0;
386 let sxy = 0;
387 let sx2 = 0;
388 let sy2 = 0;
389 for (let i = 0; i < n; i++) {
390 sx += xs[i];
391 sy += ys[i];
392 sxy += xs[i] * ys[i];
393 sx2 += xs[i] * xs[i];
394 sy2 += ys[i] * ys[i];
395 }
396 const cov = sxy - (sx * sy) / n;
397 const vx = sx2 - (sx * sx) / n;
398 const vy = sy2 - (sy * sy) / n;
399 const d = Math.sqrt(vx * vy);
400 if (d === 0) return NaN; // zero variance → correlation undefined

Callers 1

evaluateCorrelationFunction · 0.90

Calls 1

sqrtMethod · 0.65

Tested by

no test coverage detected