Statistical functions and distributions for Elixir
Elixir
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

Statistics

Build Status hex.pm version

Statistics functions and distributions for Elixir.

Usage

Add Statistics as a dependency in your mix.exs file to install from hex.pm.

def deps do
  [
    { :statistics, "~> 0.5.0"}
  ]
end

After you are done, run mix deps.get in your shell to fetch and compile Statistics.

To try it out, start an interactive Elixir shell with iex -S mix.

Get the median value from a list

iex> Statistics.median([1,2,3])
2

Calculate the variance of a list of values.

iex> Statistics.variance([1,2,3,4])
1.25

Or draw a random number from a Gaussian distribution with a mean of 1 and standard deviation of 2.

iex> Statistics.Distributions.Normal.rand(1, 2)
2.5998185179627384

Documentation

Elixir has great documentation tools using ex_doc.

The docs are hosted on hexdocs.pm/statistics.

Performance

This is not a library to use if you need fast computation.

Everything is implemented in Elixir. Many of the implementations use slow approximations, numerical function integration, or trial-and-error methods.

There is much room for improvement. To make this library really fast (and precise), we would probably need to interface with existing C libraries.

Roadmap

This library is evolving.

I plan to add common statistical tests and most common distributions.

Contributing

I will accept pull requests.

If you want to contribute, please create a topic branch with tests.

License

Apache 2