Wondering what’s next for npm?Check out our public roadmap! »


    1.2.1 • Public • Published

    regression.js is a javascript library containing a collection of least squares fitting methods for finding a trend in a set of data. It currently contains methods for linear, exponential, logarithmic, power and polynomial trends.


    Most regressions require only two parameters - the regression method (linear, exponential, logarithmic, power or polynomial) and a data source. A third parameter can be used to define the degree of a polynomial when a polynomial regression is required.

    regression.js will return an object containing an equation array and a points array.

    Linear regression

    equation: [gradient, y-intercept] in the form y = mx + c

    var data = [[0,1],[32, 67] .... [12, 79]];
    var result = regression('linear', data);

    Linear regression through the origin

    equation: [gradient] in the form y = mx

    var data = [[0,1],[32, 67] .... [12, 79]];
    var result = regression('linearThroughOrigin', data);

    Exponential regression

    equation: [a, b] in the form y = ae^bx

    Logarithmic regression

    equation: [a, b] in the form y = a + b ln x

    Power law regression

    equation: [a, b] in the form y = ax^b

    Polynomial regression

    equation: [a0, .... , an] in the form a0x^0 ... + anx^n

    var data = [[0,1],[32, 67] .... [12, 79]];
    var result = regression('polynomial', data, 4);


    Not exactly a regression. Uses the last value to fill the blanks when forecasting.

    Filling the blanks and forecasting

    var data = [[0,1], [32, null] .... [12, 79]];

    If you use a null value for data, regressionjs will fill it using the trend.


    npm i spm-regression

    DownloadsWeekly Downloads






    Last publish


    • avatar
    • avatar