A collection of probability distribution functions
JavaScript
Latest commit ba633c2 Feb 25, 2015 [dist] works with iojs and bump
 Failed to load latest commit information. distributions Jun 30, 2013 test .gitignore Jun 30, 2013 LICENSE.md Jun 30, 2013 README.md distributions.js Jun 30, 2013 package.json Feb 25, 2015

# distributions

A collection of probability distribution functions

## Installation

``````npm install distributions
``````

## Example

```var distributions = require('distributions');
var normal = distributions.Normal(1 /* mean */, 2 /* std deviation */);

console.log(normal.pdf(1)); // 0.199...
console.log(normal.cdf(1)); // 0.5
console.log(normal.inv(1)); // Infiniy

console.log(normal.mean()); // 1
console.log(normal.median()); // 1
console.log(normal.variance()); // 4```

## Documentation

All distributions in this module takes some or no arguments and can have a default value. They are also created by calling the constructor:

```// both do the same
var uniform = distributions.Uniform(-2, 2);
var uniform = new distributions.Uniform(-2, 2);```

The instance then has 3 probability functions:

```var y = uniform.pdf(x); // probability density function
var p = uniform.cdf(q); // cumulative distribution function
var q = uniform.inv(p); // quantile function```

and also 3 general methods for the median, mean and variance:

```uniform.median();
uniform.mean();
uniform.variance();```

The currently implemented distributions are listed bellow.

##### `Uniform(a = 0, b = 1)` - The Uniform Distribution

Create a uniform distribution, with a range from `a` to `b`. Note that `uniform.inv(p)` will return `NaN` outside the range from `0` to `1`, and that `uniform.inv(0) == a` and `uniform.inv(1) == b`.

##### `Normal(mean = 0, sd = 1)` - The Normal Distribution

Create a normal distribution, with a custom mean (`mean`) and standard deviation (`sd`).

##### `Studentt(df)` - The Student t Distribution

Create a student t distribution, with a degree of freedom set to `df`.

## Testing

All functions are tested by comparing with a mathematical reference either MatLab, Maple or R.