UNPKG

lumenize

Version:

Illuminating the forest AND the trees in your data.

41 lines (37 loc) 1.11 kB
// Generated by CoffeeScript 1.7.1 (function() { var correlate; correlate = function(points, xField, yField) { var div, intercept, n, point, rSquared, slope, sumX, sumX2, sumXY, sumY, sumY2, _i, _len; if (xField == null) { xField = 'x'; } if (yField == null) { yField = 'y'; } n = points.length; sumX = 0; sumY = 0; sumXY = 0; sumX2 = 0; sumY2 = 0; for (_i = 0, _len = points.length; _i < _len; _i++) { point = points[_i]; sumX += point[xField]; sumY += point[yField]; sumXY += point[xField] * point[yField]; sumX2 += point[xField] * point[xField]; sumY2 += point[yField] * point[yField]; } div = (n * sumX2) - (sumX * sumX); intercept = ((sumY * sumX2) - (sumX * sumXY)) / div; slope = ((n * sumXY) - (sumX * sumY)) / div; rSquared = Math.pow((n * sumXY - sumX * sumY) / Math.sqrt((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY)), 2); return { intercept: intercept, slope: slope, rSquared: rSquared }; }; exports.correlate = correlate; }).call(this);