# simple-statistics/simple-statistics

Fetching contributors…
Cannot retrieve contributors at this time
135 lines (94 sloc) 3.8 KB

A project to learn about and make simple reference implementations of statistics algorithms.

This code is designed to work in browsers (including IE) as well as in node.js.

## Basic Descriptive Statistics

```// Require simple statistics
var ss = require('simple-statistics');

// The input is a simple array
var list = [1, 2, 3];

// Many different descriptive statistics are supported
var sum = ss.sum(list),
mean = ss.mean(list),
min = ss.min(list),
geometric_mean = ss.geometric_mean(list),
max = ss.max(list),
quantile = ss.quantile(0.25);```

## Linear Regression

```// For a linear regression, it's a two-dimensional array
var data = [ [1, 2], [2, 3] ];

// simple-statistics can produce a linear regression and return
// a friendly javascript function for the line.
var line = ss.linear_regression()
.data(data)
.line();

// get a point along the line function
line(0);

var line = ss.linear_regression()

// Get the r-squared value of the line estimation
ss.r_squared(data, line);```

## Literate Documentation

### Mixin Style

This is optional and not used by default. You can opt-in to mixins with `ss.mixin()`.

This mixes `simple-statistics` methods into the Array prototype - note that extending native objects is a tricky move.

This will only work if `defineProperty` is available, which means modern browsers and nodejs - on IE8 and below, calling `ss.mixin()` will throw an exception.

```// mixin to Array class
ss.mixin();

// The input is a simple array
var list = [1, 2, 3];

// The same descriptive techniques as above, but in a simpler style
var sum = list.sum(),
mean = list.mean(),
min = list.min(),
max = list.max(),
quantile = list.quantile(0.25);```

### Bayesian Classifier

```var bayes = ss.bayesian();
bayes.train({ species: 'Cat' }, 'animal');
bayes.score({ species: 'Cat' });
// { animal: 1 }```

## Usage

To use it in browsers, grab simple_statistics.js. To use it in node, install it with npm or add it to your package.json.

``````npm install simple-statistics
``````

To use it with component,

``````component install tmcw/simple-statistics
``````