Skip to content

HYPERGEOMETRIC DISTRIBUTION

Phitter implementation

Distribution Definition

python
import phitter

distribution = phitter.discrete.Hypergeometric({"N": *, "K": *, "p": *})

💡 The distribution's parameters are defined equation section below

Distribution Methods and Attributes

python
## CDF, PMF, PPF receive float or numpy.ndarray.
distribution.cdf(int | numpy.ndarray[int]) # -> float | numpy.ndarray
distribution.pmf(int | numpy.ndarray[int]) # -> float | numpy.ndarray
distribution.ppf(int | numpy.ndarray[int]) # -> 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 # -> int
distribution.mode # -> int

Equations

Distribution Definition

XHypergeometric(N,K,n)

Distribution Domain

x{max(0,n+KN),min(n,K)}

Parameters Domain and Constraints

NN,K{0N},n{0N}

Cumulative Distribution Function

FX(x)=i=0x(Ki)(NKni)/(Nn)

Probability Density Function

fX(x)=(Kx)(NKnx)/(Nn)

Percent Point Function / Sample

FX1(u)=argminx|FX(x)u|

Parametric Centered Moments

E[Xk]=μk=x=max(0,n+KN)min(n,K)xkfX(x)

Parametric Mean

Mean(X)=μ1=nKN

Parametric Variance

Variance(X)=(μ2μ12)=nKNNKNNnN1

Parametric Skewness

Skewness(X)=μ33μ2μ1+2μ13(μ2μ12)1.5=(N2K)(N1)12(N2n)[nK(NK)(Nn)]12(N2)

Parametric Kurtosis

Kurtosis(X)=μ44μ1μ3+6μ12μ23μ14(μ2μ12)2=3+1nK(NK)(Nn)(N2)(N3)

Parametric Median

Median(X)=FX1(0.5)

Parametric Mode

Mode(X)=(n+1)(K+1)N+2

Additional Information and Definitions

  • Computing an analytic expression for the inverse of the cumulative distribution functionis not feasible. However, it is possible to calculate the Percentile Point Function byapproximating it to the nearest integer.
  • u:Uniform[0,1] random varible
  • x:Floor function
  • x:Ceiling Function

Spreadsheet Documents