filer/perf/simple-statistics/README.test.md

3.8 KiB

Build Status

A JavaScript implementation of descriptive, regression, and inference statistics.

Implemented in literate JavaScript with no dependencies, designed to work in all modern browsers (including IE) as well as in node.js.

API

Full documentation



 Basic Array Operations
    .mixin()
    .mean(x)
    .sum(x)
    .variance(x)
    .standard_deviation(x)
    .median_absolute_deviation(x)
    .median(x)
    .geometric_mean(x)
    .harmonic_mean(x)
    .root_mean_square(x)
    .min(x)
    .max(x)
    .t_test(sample, x)
    .t_test_two_sample(sample_x, sample_y, difference)
    .sample_variance(x)
    .sample_covariance(x)
    .sample_correlation(x)
    .quantile(sample, p)
    .iqr(sample)
    .sample_skewness(sample)
    .jenks(data, number_of_classes)
    .r_squared(data, function)
    .cumulative_std_normal_probability(z)
    .z_score(x, mean, standard_deviation)
    .standard_normal_table
  Regression
    .linear_regression()
      .data([[1, 1], [2, 2]])
      .line()
      .m()
      .b()
  Classification
    .bayesian()
    .train(item, category)
    .score(item)

Literate Source

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

To use it with bower,

bower install simple-statistics

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);

Bayesian Classifier

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

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);

Examples

Contributors