richarddmorey/stat-distributions-js

Javascript library for the visualization of statistical distributions
JavaScript CSS HTML
Fetching latest commit…
Cannot retrieve the latest commit at this time.

stat-distributions-js

Javascript library for the visualization of statistical distributions

What the library does

Allows for interactive visualizations of probability distributions. The goal of this library is to offer a simple way to define any distribution one likes, and then to immediately be able to interact with the parameters of the distribution and see how the distribution changes.

Live demo

There are two HTML files:

• distributionTable.html: Lists all known distributions in a table, giving links for interaction with each
• distributionDisplay.html: Gives an interface to interface with a specific distribution

distributionDisplay.html can be used directly using URL parameters, e.g.:

http://learnbayes.org/demo/stat-distributions-js/distributionDisplay.html?dist=normal&ptzn=2&plotxrng=50,150&rangesLo=50,3&rangesHi=150,45&starts=100,15

The setup parameters used here are:

• dist: the distribution name
• ptzn: the parametrization number (array index; here 2 means mean/standard deviation)
• plotxrng: the lower and upper limit of the x axis
• rangesLo: the lower bound for the slider for each parameter
• rangesHi: the upper bound for the slider for each parameter
• starts: starting values for the parameter sliders

How it works

The javascript file distributionList.js defines an array of distribution objects, each of which represents a probability distribution.

Distibutions

A distribution is defined by a distribution object, e.g.

distributions["normal"] = new distribution(
"normal",            // label
"Normal/Gaussian",   // display name
"continuous",        // type
[ normalMeanVariance, normalMeanPrecision ], // array of parametrizations
null,                // note
{   // information source about the distribution
name:"Wikipedia",
}
);


New distributions can be defined analgously.

Parametrizations

Every distribution must have at least one parametrization. Most of the important information about the distribution is in the parametrization object. See the distributionObjects.js file for more details, and the distributionList.js file for examples.

Libraries used

Uses the following libraries:

Old (known working) versions of these libraries are included in this repository.