statsjs-lucasalves
Version:
Uma biblioteca simples de estatísticas básicas em JavaScript
51 lines (39 loc) • 1.29 kB
JavaScript
// IMPORTS
const calcularMedia = require("./Media");
/**
* Calcula os coeficientes da Regressão Linear Simples (a e b).
* @param {number[]} x - Array de variáveis independentes.
* @param {number[]} y - Array de variáveis dependentes.
* @returns {{a: number, b: number}} - Objeto com coeficiente linear (a) e angular (b).
*/
function regressaoLinearSimples(x, y) {
if (x.length !== y.length) {
throw new Error("Os arrays x e y devem ter o mesmo tamanho.");
}
const mediaX = calcularMedia(x);
const mediaY = calcularMedia(y);
let numerador = 0;
let denominador = 0;
for (let i = 0; i < x.length; i++) {
numerador += (x[i] - mediaX) * (y[i] - mediaY);
denominador += (x[i] - mediaX) ** 2;
}
const b = numerador / denominador;
const a = mediaY - b * mediaX;
return { a, b };
}
/**
* Faz a previsão de um valor y com base na regressão linear encontrada.
* @param {number} xValor - Valor de x para previsão.
* @param {number} a - Coeficiente linear da regressão.
* @param {number} b - Coeficiente angular da regressão.
* @returns {number} - Valor previsto de y.
*/
function preverValor(xValor, a, b) {
return a + b * xValor;
}
// Exportando funções para usar na lib
module.exports = {
regressaoLinearSimples,
preverValor,
};