# regression

Javascript least squares data fitting methods

## Stats

StarsIssuesVersionUpdatedCreatedSize
regression
2.0.16 years ago10 years ago

regression-js

regression-js is a JavaScript module containing a collection of linear least-squares fitting methods for simple data analysis.

## Installation

This module works on node and in the browser. It is available as the 'regression' package on npm. It is also available on a CDN.

### npm

``npm install --save regression``

## Usage

``````import regression from 'regression';
const result = regression.linear([[0, 1], [32, 67], [12, 79]]);
const yIntercept = result.equation[1];``````

Data is passed into the model as an array. A second parameter can be used to configure the model. The configuration parameter is optional. `null` values are ignored. The precision option will set the number of significant figures the output is rounded to.

### Configuration options

Below are the default values for the configuration parameter.
``````{
order: 2,
precision: 2,
}``````

### Properties

• `equation`: an array containing the coefficients of the equation
• `string`: A string representation of the equation
• `points`: an array containing the predicted data in the domain of the input
• `r2`: the coefficient of determination (R2)
• `predict(x)`: This function will return the predicted value

## API

### `regression.linear(data[, options])`

Fits the input data to a straight line with the equation . It returns the coefficients in the form `[m, c]`.

### `regression.exponential(data[, options])`

Fits the input data to a exponential curve with the equation . It returns the coefficients in the form `[a, b]`.

### `regression.logarithmic(data[, options])`

Fits the input data to a logarithmic curve with the equation . It returns the coefficients in the form `[a, b]`.

### `regression.power(data[, options])`

Fits the input data to a power law curve with the equation . It returns the coefficients in the form `[a, b]`.

### `regression.polynomial(data[, options])`

Fits the input data to a polynomial curve with the equation . It returns the coefficients in the form `[an..., a1, a0]`. The order can be configure with the `order` option.

#### Example

``````const data = [[0,1],[32, 67] .... [12, 79]];
const result = regression.polynomial(data, { order: 3 });``````

## Development

• Install the dependencies with `npm install`
• To build the assets in the `dist` directory, use `npm run build`
• You can run the tests with: `npm run test`.