@nexys/math-ts
Version:
[](https://www.npmjs.com/package/@nexys/math-ts) [](https://travis-ci.com/github/Nexysweb/math-ts) [ • 761 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.linest = (series) => {
const n = series.length;
if (n < 1) {
throw Error('series length must be greater than zero');
}
const sumY = series.map(_ => _.y).reduce((a, b) => a + b);
const sumX = series.map(_ => _.x).reduce((a, b) => a + b);
const sumX2 = series.map(_ => Math.pow(_.x, 2)).reduce((a, b) => a + b);
const sumXY = series.map(_ => _.x * _.y).reduce((a, b) => a + b);
const denom = n * sumX2 - Math.pow(sumX, 2);
const a = (n * sumXY - sumY * sumX) / denom;
const b = (sumY * sumX2 - sumX * sumXY) / denom;
return { a, b };
};
exports.estimatedY = (xs, { a, b }) => xs.map(x => {
return { y: a * x + b, x };
});