在JavaScript中进行两个自变量的线性回归,通常涉及使用一些数学库或API来帮助计算回归系数。以下是一个简单的例子,展示了如何使用原生JavaScript和一些辅助函数来进行线性回归计算。
对于两个自变量 ( x_1 ) 和 ( x_2 ),线性回归模型可以表示为:
[ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \epsilon ]
其中,( y ) 是因变量,( x_1 ) 和 ( x_2 ) 是自变量,( \beta_0 )、( \beta_1 ) 和 ( \beta_2 ) 是回归系数,( \epsilon ) 是误差项。
以下是一个简单的JavaScript函数,用于计算两个自变量的线性回归系数:
function linearRegression(x1, x2, y) {
const n = x1.length;
let sumX1 = 0, sumX2 = 0, sumY = 0;
let sumX1Y = 0, sumX1X2 = 0, sumX2Y = 0, sumX1Sq = 0, sumX2Sq = 0;
for (let i = 0; i < n; i++) {
sumX1 += x1[i];
sumX2 += x2[i];
sumY += y[i];
sumX1Y += x1[i] * y[i];
sumX1X2 += x1[i] * x2[i];
sumX2Y += x2[i] * y[i];
sumX1Sq += x1[i] ** 2;
sumX2Sq += x2[i] ** 2;
}
const det = n * (sumX1Sq * sumX2Sq - sumX1X2 ** 2) - (sumX1 * sumX2) * (sumX1 * sumX2);
const b1 = (n * (sumX1Y * sumX2Sq - sumX1X2 * sumX2Y) - sumX1 * sumX2 * sumY + sumX1 * sumX2 * sumY) / det;
const b2 = (n * (sumX1Sq * sumX2Y - sumX1 * sumX1Y) - sumX1 * sumX2 * sumY + sumX1 * sumX2 * sumY) / det;
const b0 = (sumY - b1 * sumX1 - b2 * sumX2) / n;
return { b0, b1, b2 };
}
// 示例使用
const x1 = [1, 2, 3, 4, 5];
const x2 = [5, 4, 3, 2, 1];
const y = [10, 20, 25, 30, 35];
const { b0, b1, b2 } = linearRegression(x1, x2, y);
console.log(`回归方程: y = ${b0} + ${b1}x1 + ${b2}x2`);
通过这种方式,你可以在JavaScript中实现基本的线性回归分析。对于更高级的分析和预测,建议使用专门的统计软件或库。
领取专属 10元无门槛券
手把手带您无忧上云