Library for calculating statistical distributions, written in pure Python with zero dependencies.
Project description
Promethium 🐍
Library for calculating statistical distributions, written in pure Python with zero dependencies.
Contribution: CONTRIBUTING.md
Documentation: README.md
Documentation
- Binomial Distribution
- Chi-Squared Distribution
- Normal Distribution
- Poisson Distribution
- Geometric Distribution
Binomial Distribution
Probability mass function
binomial.pmf(r, n, p)
For the random variable X
with the binomial distribution B(n, p)
, calculate the probability mass function.
Where r
is the number of successes, n
is the number of trials, and p
is the probability of success.
Example
To calculate P(X=7)
for the binomial distribution X~B(11, 0.33)
:
>>> from promethium import binomial
>>> binomial.pmf(7, 11, 0.33)
0.029656979029412885
Cumulative distribution function
binomial.cdf(r, n, p)
For the random variable X
with the binomial distribution B(n, p)
, calculate the cumulative distribution function.
Where r
is the number of successes, n
is the number of trials, and p
is the probability of success.
Example
To calculate P(X≤7)
for the binomial distribution X~B(11, 0.33)
:
>>> from promethium import binomial.cdf
>>> binomial.cdf(7, 11, 0.33)
0.9912362670526581
Inverse cumulative distribution function
binomial.ppf(q, n, p)
For the random variable X
with the binomial distribution B(n, p)
, calculate the inverse for the cumulative distribution function.
Where q
is the cumulative probability, n
is the number of trials, and p
is the probability of success.
binomial.ppf(q, n, p)
returns the smallest integer x
such that binomial.cdf(x, n, p)
is greater than or equal to q
.
Example
To calculate the corresponding value for r
(the number of successes) given the value for q
(the cumulative probability):
>>> from promethium import binomial
>>> binomial.ppf(0.9912362670526581, 11, 0.333)
7
>>> binomial.cdf(7, 11, 0.333)
0.9912362670526581
Chi-Squared Distribution
Probability density function
chi2.pdf(x, df)
Probability density function for the chi-squared distribution X~X²(df)
,
where df
is the degrees of the freedom.
Cumulative distribution function
chi2.cdf(x, df)
Cumulative distribution function for the chi-squared distribution X~X²(df)
,
where df
is the degrees of the freedom.
Example
To calculate P(0≤X≤0.556)
for the chi-squared distribution X~X²(3)
:
>>> from promethium import chi2
>>> chi2.cdf(0.556, 3)
0.09357297231516998
Normal Distribution
Probability density function
normal.pdf(x, µ, σ)
Probability density function for the normal distribution X~N(µ, σ)
.
Where µ
is the mean, and σ
is the standard deviation.
Cumulative distribution function
normal.cdf(x, µ, σ)
Cumulative distribution function for the normal distribution X~N(µ, σ)
.
Where µ
is the mean, and σ
is the standard deviation.
Example
To calculate P(X≤0.891)
for the normal distribution X~N(0.734, 0.114)
:
>>> from promethium import normal
>>> normal.cdf(0.891, 0.734, 0.114)
0.9157737045522477
Inverse cumulative distribution function
normal.ppf(y, µ, σ)
Inverse cumulative distribution function for the normal distribution X~N(µ, σ)
.
Where µ
is the mean, and σ
is the standard deviation.
normal.ppf(y, µ, σ)
returns the smallest integer x
such that normal.cdf(x, µ, σ)
is greater than or equal to y
.
Example
To calculate the corresponding value for x
given the value for y
:
>>> from promethium import normal
>>> normal.ppf(0.9157737045522477, 0.734, 0.114)
0.891
>>> normal.cdf(0.891, 0.734, 0.114)
0.9157737045522477
Poisson Distribution
Probability mass function
poisson.pmf(r, m)
For the random variable X
with the poisson distribution Po(m)
, calculate the probability mass function.
Where r
is the number of occurrences, and m
is the mean rate of occurrence.
Example
To calculate P(X=7)
for the poisson distribution X~Po(11.556)
:
>>> from promethium import poisson
>>> poisson(11, 23.445)
0.0019380401123575617
Cumulative distribution function
poisson.cdf(r, m)
For the random variable X
with the poisson distribution Po(m)
, calculate the cumulative distribution function.
Where r
is the number of occurrences, and m
is the mean rate of occurrence.
Example
To calculate P(X≤7)
for the poisson distribution X~Po(11.556)
:
>>> from promethium import poisson
>>> poisson.cdf(11, 23.445)
0.0034549033698374467
Inverse cumulative distribution
poisson.ppf(q, m)
For the random variable X
with the poisson distribution Po(m)
, calculate the inverse for the cumulative distribution function.
Where q
is the cumulative probability, and m
is the mean rate of occurrence.
poisson.ppf(q, m)
returns the smallest integer x
such that poisson.cdf(x, m)
is greater than or equal to q
.
Example
To calculate the corresponding value for r
(number of occurrences) given the values for q
(cumulative probability):
>>> from promethium import poisson
>>> poisson.ppf(0.0034549033698374467, 23.445)
11
>>> poisson.cdf(11, 23.445)
0.0034549033698374467
Geometric Distribution
Probability mass function
geometric.pmf(x, p)
Probability mass function for the geometric distribution X~G(p)
.
Where x
is the number of trials before the first success, and p
is the probability of success.
Example
To calculate P(X=3)
for the geometric distribution X~G(0.491)
:
>>> from promethium import geometric
>>> geometric.pmf(3, 0.491)
0.127208771
Cumulative distribution function
geometric.cdf(x, p)
Cumulative distribution function for the geometric distribution X~G(p)
.
Where x
is the number of trials before the first success, and p
is the probability of success.
Example
To calculate P(X≤3)
for the geometric distribution X~G(0.491)
:
>>> from promethium import geometric
>>> geometric.cdf(3, 0.491)
0.868127771
Inverse cumulative distribution function
geometric.ppf(area, p)
Inverse cumulative distribution function for the geometric distribution X~G(p)
.
Where x
is the number of trials before the first success, and p
is the probability of success.
geometric.ppf(area, p)
returns the smallest integer x
such that geometric.cdf(x, p)
is greater than or equal to area
.
Example
To calculate the corresponding value for x
given the value for area
:
>>> from promethium import geometric
>>> geometric.ppf(0.868, 0.491)
3
>> geometric.cdf(3, 0.491)
0.868127771
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file promethium-0.7.4.tar.gz
.
File metadata
- Download URL: promethium-0.7.4.tar.gz
- Upload date:
- Size: 24.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.26.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b606cbf7f903d6f0ea573ca02d40e037d469f48fb79e05b3648bdd37495a759 |
|
MD5 | 0348c744ae663ef4b34010e2e25ee97c |
|
BLAKE2b-256 | f5095d9a14267bf71a49c23738f78ec350947b29d2bafa29dd3a22308f4755ae |
File details
Details for the file promethium-0.7.4-py3-none-any.whl
.
File metadata
- Download URL: promethium-0.7.4-py3-none-any.whl
- Upload date:
- Size: 23.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.26.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5dc4bd29274e2012670686545b877bfcbfadbffcbd7aa991f24b7b67b2cac06 |
|
MD5 | 322108d579e5f1fdd430e4f980e27eb5 |
|
BLAKE2b-256 | 16572583d19fce763cecd9b80aa3c4647983a3899dffbebc934b6e93cbf22e03 |