StatMath.PmfPdfFunctions
Probability Mass Functions (PMF) and Probability Density Functions (PDF) This class provides static methods to calculate probability mass functions for discrete distributions and probability density functions for continuous distributions.
The PMF/PDF gives the probability (or density) of a random variable taking on a specific value. Distribution Categories:
PMF for discrete distributions (Binomial, Poisson, Negative Binomial)
PDF for continuous distributions (Normal, Exponential, Uniform, Gamma, Beta, Chi-squared, Student’s t, F-distribution)
Uses logarithmic calculations for numerical stability
Calculates the PMF of a binomial distribution: P(X = k | n, p).
Returns the probability of observing exactly k successes in n
Usage
# Access via StatMath singleton
var result = StatMath.PmfPdfFunctions.function_name(parameters)
Functions
- binomial_pmf(k_successes: int, n_trials: int, p_prob: float) float:
Calculates the PMF of a binomial distribution: P(X = k | n, p).
Returns the probability of observing exactly
ksuccesses innindependent Bernoulli trials, each with success probabilityp. Uses logarithmic calculations for numerical stability.Mathematical Note:
P(X = k) = (n choose k) p^k (1-p)^(n-k)
- poisson_pmf(k_events: int, lambda_param: float) float:
Calculates the PMF of a Poisson distribution: P(X = k | λ).
Returns the probability of observing exactly
kevents in a fixed interval, given an average rateλof events. Uses logarithmic calculations for numerical stability.Mathematical Note:
P(X = k) = (λ^k e^(-λ)) / k!
- negative_binomial_pmf(k_trials: int, r_successes: int, p_prob: float) float:
Calculates the PMF of a negative binomial distribution: P(X = k | r, p).
Returns the probability that the
r-th success occurs on exactly thek-th trial in independent Bernoulli trials with success probabilityp. Uses logarithmic calculations for numerical stability.Mathematical Note:
P(X = k) = (k-1 choose r-1) p^r (1-p)^(k-r)
- geometric_pmf(k_trial: int, p_prob: float) float:
Calculates the PMF of a geometric distribution: P(X = k | p).
Returns the probability that the first success occurs on exactly the
k-th trial in independent Bernoulli trials with success probabilityp. Uses standard parameterization where k ≥ 1.Mathematical Note:
P(X = k) = (1-p)^(k-1) * pfork ≥ 1
- normal_pdf(x: float, mu: float = 0.0, sigma: float = 1.0) float:
Calculates the PDF of a normal distribution: f(x; μ, σ).
Returns the probability density at
xfor a normal (Gaussian) distribution with meanμand standard deviationσ.Mathematical Note:
f(x) = (1/σ√(2π)) e^(-(x-μ)²/(2σ²))
- exponential_pdf(x: float, lambda_param: float) float:
Calculates the PDF of an exponential distribution: f(x; λ).
Returns the probability density at
xfor an exponential distribution with rate parameterλ. Used for modeling waiting times and decay processes.Mathematical Note:
f(x) = λe^(-λx)forx ≥ 0,0otherwise
- uniform_pdf(x: float, a: float, b: float) float:
Calculates the PDF of a uniform distribution: f(x; a, b).
Returns the probability density at
xfor a uniform distribution on the interval[a, b].Mathematical Note:
f(x) = 1/(b-a)fora ≤ x ≤ b,0otherwise
- gamma_pdf(x: float, k_shape: float, theta_scale: float) float:
Calculates the PDF of a gamma distribution: f(x; k, θ).
Returns the probability density at
xfor a gamma distribution with shape parameterkand scale parameterθ.Mathematical Note:
f(x) = (1/(Γ(k)θ^k)) x^(k-1) e^(-x/θ)forx ≥ 0
- beta_pdf(x: float, alpha: float, beta_param: float) float:
Calculates the PDF of a beta distribution: f(x; α, β).
Returns the probability density at
xfor a beta distribution with shape parametersαandβ. Defined on [0, 1].Mathematical Note:
f(x) = (Γ(α+β)/(Γ(α)Γ(β))) x^(α-1) (1-x)^(β-1)
- weibull_pdf(x: float, scale_param: float, shape_param: float) float:
Calculates the PDF of a Weibull distribution: f(x; λ, k).
Returns the probability density at
xfor a Weibull distribution with scale parameterλand shape parameterk. Widely used in reliability analysis, survival analysis, and failure modeling.Mathematical Note:
f(x) = (k/λ)(x/λ)^(k-1) e^(-(x/λ)^k)forx ≥ 0
- lognormal_pdf(x: float, mu: float, sigma: float) float:
Calculates the PDF of a lognormal distribution: f(x; μ, σ).
Returns the probability density at
xfor a lognormal distribution with location parameterμand scale parameterσ. If X ~ Lognormal(μ, σ), then ln(X) ~ Normal(μ, σ).Mathematical Note:
f(x) = (1/(xσ√(2π))) e^(-((ln(x)-μ)²)/(2σ²))forx > 0
- chi_squared_pdf(x: float, k_df: float) float:
Calculates the PDF of a chi-squared distribution: f(x; k).
Returns the probability density at
xfor a chi-squared distribution withkdegrees of freedom. This is a special case of the gamma PDF. See gamma_pdf() for the general gamma PDF implementation.Mathematical Note:
f(x) = (1/(2^(k/2)Γ(k/2))) x^(k/2-1) e^(-x/2)forx ≥ 0
- t_pdf(x: float, df_nu: float) float:
Calculates the PDF of a Student’s t-distribution: f(x; ν).
Returns the probability density at
xfor a Student’s t-distribution withν(nu) degrees of freedom.Mathematical Note:
f(x) = (Γ((ν+1)/2)/(√(νπ)Γ(ν/2))) (1 + x²/ν)^(-(ν+1)/2)
- f_pdf(x: float, d1_df: float, d2_df: float) float:
Calculates the PDF of an F-distribution: f(x; d1, d2).
Returns the probability density at
xfor an F-distribution with numerator degrees of freedomd1and denominator degrees of freedomd2.Mathematical Note: Uses beta_function() relationship for numerical stability
- cauchy_pdf(x: float, location: float = 0.0, scale: float = 1.0) float:
Calculates the PDF of a Cauchy (Lorentzian) distribution: f(x; x₀, γ).
Returns the probability density at
xfor a Cauchy distribution with location parameterx₀and scale parameterγ. The Cauchy distribution has undefined mean and variance due to heavy tails.Mathematical Note:
f(x) = 1/(πγ(1 + ((x-x₀)/γ)²))
- pareto_pdf(x: float, scale_param: float, shape_param: float) float:
Calculates the PDF of a Pareto distribution: f(x; xₘ, α).
Returns the probability density at
xfor a Pareto distribution with scale parameterxₘand shape parameterα. Used to model the “80/20 rule” and power-law distributions.Mathematical Note:
f(x) = (α×xₘᵅ)/x^(α+1)forx ≥ xₘ