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 function is not feasible. However, it is possible to calculate the Percentile Point Function by approximating it to the nearest integer.
  • u:Uniform[0,1] random varible
  • x:Floor function
  • x:Ceiling Function

Spreadsheet Documents