# simple-statistics/simple-statistics

### Subversion checkout URL

You can clone with
or
.
Fetching contributors…

Cannot retrieve contributors at this time

133 lines (92 sloc) 3.825 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