Skip to content

PERT DISTRIBUTION ​

Phitter implementation ​

Distribution Definition

python
import phitter

distribution = phitter.continuous.Pert({"a": *, "b": *, "c": *})

💡 The distribution's parameters are defined equation section below

Distribution Methods and Attributes

python
## CDF, PDF, PPF receive float or numpy.ndarray.
distribution.cdf(float | numpy.ndarray) # -> float | numpy.ndarray
distribution.pdf(float | numpy.ndarray) # -> float | numpy.ndarray
distribution.ppf(float | numpy.ndarray) # -> float | numpy.ndarray
distribution.sample(int) # -> numpy.ndarray

## STATS
distribution.mean # -> float
distribution.variance # -> float
distribution.standard_deviation # -> float
distribution.skewness # -> float
distribution.kurtosis # -> float
distribution.median # -> float
distribution.mode # -> float

Equations ​

Distribution Definition

X∼Pert(a,b,c)

Distribution Domain

x∈[a,c]

Parameters Domain and Constraints

a∈R,b∈R,c∈R,a<b<c

Cumulative Distribution Function

FX(x)=I(z(x),α1,α2)

Probability Density Function

fX(x)=(x−a)α1−1(c−x)α2−1Beta(α1,α2)(c−a)α1+α2−1

Percent Point Function / Sample

FX−1(u)=a+(c−a)⋅I−1(u,α1,α2)

Parametric Centered Moments

μk′=E[Xk]=∫acxkfX(x)dx

Parametric Mean

Mean(X)=μ1′=a+4b+c6

Parametric Variance

Variance(X)=μ2′−μ1′2=(Mean(X)−a)(c−Mean(X))7

Parametric Skewness

Skewness(X)=μ3′−3μ2′μ1′+2μ1′3(μ2′−μ1′2)1.5=2(α2−α1)α1+α2+1(α1+α2+2)α1α2

Parametric Kurtosis

Kurtosis(X)=μ4′−4μ1′μ3′+6μ1′2μ2′−3μ1′4(μ2′−μ1′2)2=6[(α1−α2)2(α1+α2+1)−α1α2(α1+α2+2)]α1α2(α1+α2+2)(α1+α2+3)+3

Parametric Median

Median(X)=a+(c−a)⋅I−1(12,α1,α2)

Parametric Mode

Mode(X)=b

Additional Information and Definitions

  • z(x)=(x−a)/(c−a)
  • u:Uniform[0,1] random varible
  • α1=4b+c−5ac−a,α2=5c−a−4bc−a
  • I(x,a,b):Regularized incomplete beta function
  • I−1(x,a,b):Inverse of regularized incomplete beta function
  • Beta(x,y):Beta function

Spreadsheet Documents