Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. /** * calculates pearson correlation
  2. * @param{number[]}d1
  3. * @param{number[]}d2
  4. */
  5. export function corr(d1, d2) {
  6. let { min, pow, sqrt } =Math
  7. let add = (a, b) => a + b
  8. let n = min(d1.length, d2.length)
  9. if (n ===0) {
  10. return0
  11. }
  12. [d1, d2] = [d1.slice(0, n), d2.slice(0, n)]
  13. let [sum1, sum2] = [d1, d2].map(l=>l.reduce(add))
  14. let [pow1, pow2] = [d1, d2].map(l=>l.reduce((a, b) => a +pow(b, 2), 0))
  15. let mulSum =d1.map((n, i) => n * d2[i]).reduce(add)
  16. let dense =sqrt((pow1 -pow(sum1, 2) / n) * (pow2 -pow(sum2, 2) / n))
  17. if (dense ===0) {
  18. return0
  19. }
  20. return (mulSum - (sum1 * sum2 / n)) / dense
  21. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement