JS中的多变量线性回归

Mar*_*tin 6 javascript statistics regression node.js npm

我想用一个单一的因变量进行多元线性回归Y和两个自变量x1x2

这只是一个带有附加因变量的 OLS 回归:

Y = b0 + b1 x1 + b2 x2

我还需要计算R^2这种关系的相关系数。

我测试过的每个 NPM 包要么只支持一个因变量,要么支持多变量回归,这与多变量回归不同。

如果现有包不存在,我可以尝试计算没有系数的系数。例如slopeinterceptR^2用于单个xY组可以用下面确定:

function linearRegression(y,x){
        var lr = {};
        var n = y.length;
        var sum_x = 0;
        var sum_y = 0;
        var sum_xy = 0;
        var sum_xx = 0;
        var sum_yy = 0;

        for (var i = 0; i < y.length; i++) {

            sum_x += x[i];
            sum_y += y[i];
            sum_xy += (x[i]*y[i]);
            sum_xx += (x[i]*x[i]);
            sum_yy += (y[i]*y[i]);
        } 

        lr['slope'] = (n * sum_xy - sum_x * sum_y) / (n*sum_xx - sum_x * sum_x);
        lr['intercept'] = (sum_y - lr.slope * sum_x)/n;
        lr['r2'] = Math.pow((n*sum_xy - sum_x*sum_y)/Math.sqrt((n*sum_xx-sum_x*sum_x)*(n*sum_yy-sum_y*sum_y)),2);

        return lr;
}
Run Code Online (Sandbox Code Playgroud)

但我不确定如何针对多个因变量进行调整。