2022-06-04 16:26:52 +00:00
---
sidebar_position: 2
title: Distribution
---
2022-06-05 21:13:56 +00:00
2022-06-05 20:59:45 +00:00
## Main
2022-06-04 16:26:52 +00:00
2022-06-05 20:59:45 +00:00
### mixture
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(...distributionLike, weights:list< float > ):distribution
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
mixture(normal(5, 1), normal(10, 1));
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### sample
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Get one random sample from the distribution
```javascript
2022-06-05 20:59:45 +00:00
(distribution):number
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
sample(normal(5, 2));
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### sampleN
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Get n random samples from the distribution
```javascript
2022-06-05 20:59:45 +00:00
(distribution, number):list< number >
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
sample(normal(5, 2), 100);
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### mean
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Get the distribution mean
```javascript
2022-06-05 20:59:45 +00:00
(distribution):number
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
mean(normal(5, 2));
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### stdev
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distribution):number
```
### variance
```javascript
(distribution):number
```
### mode
```javascript
(distribution):number
```
### cdf
```javascript
(distribution, number):number
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
cdf(normal(5, 2), 3);
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### pdf
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distribution, number):number
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
pdf(normal(5, 2), 3);
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### pmf
```javascript
(distribution, number):number
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-05 20:59:45 +00:00
```javascript
2022-06-05 21:13:56 +00:00
pmf(bernoulli(0.3), 0); // 0.7
2022-06-05 20:59:45 +00:00
```
### inv
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distribution, number):number
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
inv(normal(5, 2), 0.5);
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### toPointSet
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Converts a distribution to the pointSet format
```javascript
2022-06-05 20:59:45 +00:00
(distribution):pointSetDistribution
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
toPointSet(normal(5, 2));
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### toSampleSet
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Converts a distribution to the sampleSet format, with n samples
```javascript
2022-06-05 20:59:45 +00:00
(distribution,n):sampleSetribution
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
toSampleSet(normal(5, 2));
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### truncateLeft
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Truncates the left side of a distribution. Returns either a pointSet distribution or a symbolic distribution.
```javascript
2022-06-05 20:59:45 +00:00
(distribution, l:number, {normalize: boolean=true}):distribution
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
truncateLeft(normal(5, 2), 3);
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### truncateRight
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Truncates the right side of a distribution. Returns either a pointSet distribution or a symbolic distribution.
```javascript
2022-06-05 20:59:45 +00:00
(distribution, r:number, {normalize: boolean=true}):distribution
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
truncateLeft(normal(5, 2), 6);
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### klDivergence
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Kullback– Leibler divergence between two distributions
```javascript
2022-06-05 20:59:45 +00:00
(distribution, distribution):number
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
klDivergence(normal(5, 2), normal(5, 4)); // returns 0.57
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### logScore
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
({estimate: distribution, prior?: distribution, answer: distribution|number}):number
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
logScore({ estimate: normal(5, 2), prior: normal(5.5, 4), answer: 2.3 });
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### toString
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distribution):string
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
toString(normal(5, 2));
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### toSparkline
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Produce a sparkline of length n
```javascript
2022-06-05 20:59:45 +00:00
(distribution, n=20):string
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
toSparkline(normal(5, 2), 10);
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### inspect
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Prints the value of the distribution to the Javascript console, then returns the distribution.
```javascript
2022-06-05 20:59:45 +00:00
(distribution):distribution
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
inspect(normal(5, 2));
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### normalize
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Normalize a distribution. This means scaling it appropriately so that it's cumulative sum is equal to 1.
```javascript
2022-06-05 20:59:45 +00:00
(distribution):distribution
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
normalize(normal(5, 2));
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### isNormalized
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Check of a distribution is normalized. Most distributions are typically normalized, but there are some commands that could produce non-normalized distributions.
```javascript
2022-06-05 20:59:45 +00:00
(distribution):bool
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
isNormalized(normal(5, 2)); // returns true
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### integralSum
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
Get the sum of the integral of a distribution. If the distribution is normalized, this will be 1.
```javascript
2022-06-05 20:59:45 +00:00
(distribution):number
2022-06-04 16:26:52 +00:00
```
**Examples**
2022-06-05 21:13:56 +00:00
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 21:13:56 +00:00
integralSum(normal(5, 2));
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### add
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### sum
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(list< distributionLike > ): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### multiply
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### product
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(list< distributionLike > ): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### subtract
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### divide
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### pow
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### exp
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### log
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### log10
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike):distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### unaryMinus
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distribution):distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### dotAdd
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### dotSum
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(list< distributionLike > ): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### dotMultiply
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### dotProduct
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(list< distributionLike > ): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### dotSubtract
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### dotDivide
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### dotPow
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### dotExp
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### scaleMultiply
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### scalePow
```javascript
(distributionLike, distributionLike): distribution
```
### scaleExp
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### scaleLog
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### scaleLog10
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike): distribution
2022-06-04 16:26:52 +00:00
```
2022-06-05 20:59:45 +00:00
### scaleLogWithThreshold
2022-06-04 16:26:52 +00:00
```javascript
2022-06-05 20:59:45 +00:00
(distributionLike, distributionLike, number): distribution
2022-06-04 16:26:52 +00:00
```