From 209356b8ade1920b50d1d3a1a5e121c6623d167b Mon Sep 17 00:00:00 2001 From: Minteck Date: Fri, 11 Nov 2022 23:47:49 +0100 Subject: Update --- app/bits/assets/trendline.js | 53 -------------------------------------------- 1 file changed, 53 deletions(-) delete mode 100755 app/bits/assets/trendline.js (limited to 'app/bits/assets/trendline.js') diff --git a/app/bits/assets/trendline.js b/app/bits/assets/trendline.js deleted file mode 100755 index 48e2522..0000000 --- a/app/bits/assets/trendline.js +++ /dev/null @@ -1,53 +0,0 @@ -function getAvg(arr) { - const total = arr.reduce((acc, c) => acc + c, 0); - return total / arr.length; -} - -function getSum(arr) { - return arr.reduce((acc, c) => acc + c, 0); -} - -function trendline(data, xKey, yKey) { - const xData = data.map((value) => value[xKey]); - const yData = data.map((value) => value[yKey]); - - // average of X values and Y values - const xMean = getAvg(xData); - const yMean = getAvg(yData); - - // Subtract X or Y mean from corresponding axis value - const xMinusxMean = xData.map((val) => val - xMean); - const yMinusyMean = yData.map((val) => val - yMean); - - const xMinusxMeanSq = xMinusxMean.map((val) => Math.pow(val, 2)); - - const xy = []; - for (let x = 0; x < data.length; x++) { - xy.push(xMinusxMean[x] * yMinusyMean[x]); - } - - // const xy = xMinusxMean.map((val, index) => val * yMinusyMean[index]); - - const xySum = getSum(xy); - - // b1 is the slope - const b1 = xySum / getSum(xMinusxMeanSq); - // b0 is the start of the slope on the Y axis - const b0 = yMean - b1 * xMean; - - return { - slope: b1, - yStart: b0, - calcY: (x) => b0 + b1 * x, - }; -} - -const averageDelta = ([x,...xs]) => { - if (x === undefined) - return NaN - else - return xs.reduce( - ([acc, last], x) => [acc + (x - last), x], - [0, x] - ) [0] / xs.length -} \ No newline at end of file -- cgit