comparative-judgement
Version:
Comparative Judgement Algorithms
39 lines (28 loc) • 682 B
JavaScript
function correlation(p1, p2) {
var n = p1.length;
if (n === 0) return 0;
var sum1 = 0;
for (var i = 0; i < n; i++) sum1 += p1[i];
var sum2 = 0;
for (i= 0; i < n; i++) sum2 += p2[i];
var sum1Sq = 0;
for (i = 0; i < n; i++) {
sum1Sq += Math.pow(p1[i], 2);
}
var sum2Sq = 0;
for (i = 0; i < n; i++) {
sum2Sq += Math.pow(p2[i], 2);
}
var pSum = 0;
for (i = 0; i < n; i++) {
pSum += p1[i] * p2[i];
}
var num = pSum - (sum1 * sum2 / n);
var den = Math.sqrt((sum1Sq - Math.pow(sum1, 2) / n) *
(sum2Sq - Math.pow(sum2, 2) / n));
if (den === 0) return 0;
return num / den;
}
module.exports = {
correlation: correlation,
};