.. highlight:: lua .. include:: Probability Distribution Functions ================================== .. module:: randist The module :mod:`randist` offer a set of functions that mirrors those available from the module :mod:`rnd`. Generally, for each kind of distribution a few functions are available to calculate the probability density, the cumulative probability and its inverse. Continuous random number distributions are defined by a probability density function, p(x), such that the probability of x occurring in the infinitesimal range x to x+dx is p dx. The cumulative distribution function for the lower tail P(x) is defined by the integral, .. math:: P(x) = \int_{-\infty}^{x} dx' p(x') and gives the probability of a variate taking a value less than x. The cumulative distribution function for the upper tail Q(x) is defined by the integral, .. math:: Q(x) = \int_{x}^{+\infty} dx' p(x') and gives the probability of a variate taking a value greater than x. The upper and lower cumulative distribution functions are related by :math:`P(x) + Q(x) = 1` and satisfy :math:`0 \le P(x) \le 1`, :math:`0 \le Q(x) \le 1`. The inverse cumulative distributions, :math:`x = P^{-1}(p)` and :math:`x = Q^{-1}(q)` give the values of x which correspond to a specific value of p or q. They can be used to find confidence limits from probability values. For discrete distributions the probability of sampling the integer value k is given by :math:`p(k)`, where :math:`\sum_k p(k) = 1`. The cumulative distribution for the lower tail P(k) of a discrete distribution is defined as, .. math:: P(k) = \sum_{i \le k} p(i) where the sum is over the allowed range of the distribution less than or equal to k. The cumulative distribution for the upper tail of a discrete distribution Q(k) is defined as .. math:: Q(k) = \sum_{i > k} p(i) giving the sum of probabilities for all values greater than k. These two definitions satisfy the identity :math:`P(k) + Q(k) = 1`. If the range of the distribution is 1 to n inclusive then :math:`P(n)=1`, :math:`Q(n)=0` while :math:`P(1) = p(1)`, :math:`Q(1)=1-p(1)`. Naming Conventions ~~~~~~~~~~~~~~~~~~ The probability functions are named following an uniform naming convention. The probability density function end with the suffix ``_pdf``. The cumulative functions :math:`P(x)` and :math:`Q(x)` ends with the suffix ``_P`` and ``_Q`` respectively. The inverse cumulative functions :math:`P^{-1}(x)` and :math:`Q^{-1}(x)` ends with the suffix ``_Pinv`` and ``_Qinv`` respectively. Functions Index ~~~~~~~~~~~~~~~ We present here the list of the available probability functions. .. note:: Actually GSL Shell implements all the functions provided by the GSL library but some of them are not listed here. Please consult the GSL reference manual if you need a complete list of all the distributions available. .. function:: gaussian_pdf(x, sigma) gaussian_P(x, sigma) gaussian_Q(x, sigma) gaussian_Pinv(x, sigma) gaussian_Qinv(x, sigma) See :ref:`Gaussian distribution `. .. function:: exponential_pdf(x, mu) exponential_P(x, mu) exponential_Q(x, mu) exponential_Pinv(x, mu) exponential_Qinv(x, mu) See :ref:`Exponential Distribution `. .. function:: chisq_pdf(x, nu) chisq_P(x, nu) chisq_Q(x, nu) chisq_Pinv(x, nu) chisq_Qinv(x, nu) See :ref:`Chi square Distribution `. .. function:: laplace_pdf(x, a) laplace_P(x, a) laplace_Q(x, a) laplace_Pinv(x, a) laplace_Qinv(x, a) See :ref:`Laplace Distribution `. .. function:: tdist_pdf(x, nu) tdist_P(x, nu) tdist_Q(x, nu) tdist_Pinv(x, nu) tdist_Qinv(x, nu) See :ref:`t- Distribution `. .. function:: cauchy_pdf(x, a) cauchy_P(x, a) cauchy_Q(x, a) cauchy_Pinv(x, a) cauchy_Qinv(x, a) See :ref:`Cauchy Distribution `. .. function:: rayleigh_pdf(x, sigma) rayleigh_P(x, sigma) rayleigh_Q(x, sigma) rayleigh_Pinv(x, sigma) rayleigh_Qinv(x, sigma) See :ref:`Rayleigh Distribution `. .. function:: fdist_pdf(x, nu1, nu2) fdist_P(x, nu1, nu2) fdist_Q(x, nu1, nu2) fdist_Pinv(x, nu1, nu2) fdist_Qinv(x, nu1, nu2) See :ref:`F- Distribution `. .. function:: gamma_pdf(x, a, b) gamma_P(x, a, b) gamma_Q(x, a, b) gamma_Pinv(x, a, b) gamma_Qinv(x, a, b) See :ref:`Gamma Distribution `. .. function:: beta_pdf(x, a, b) beta_P(x, a, b) beta_Q(x, a, b) beta_Pinv(x, a, b) beta_Qinv(x, a, b) See :ref:`Beta Distribution `. .. function:: gaussian_tail_pdf(x, a, sigma) gaussian_tail_P(x, a, sigma) gaussian_tail_Q(x, a, sigma) gaussian_tail_Pinv(x, a, sigma) gaussian_tail_Qinv(x, a, sigma) See :ref:`Gaussian tail Distribution `. .. function:: exppow_pdf(x, a, b) exppow_P(x, a, b) exppow_Q(x, a, b) exppow_Pinv(x, a, b) exppow_Qinv(x, a, b) See :ref:`Exponential Power Distribution `. .. function:: lognormal_pdf(x, zeta, sigma) lognormal_P(x, zeta, sigma) lognormal_Q(x, zeta, sigma) lognormal_Pinv(x, zeta, sigma) lognormal_Qinv(x, zeta, sigma) See :ref:`Lognormal Distribution `. .. function:: binomial_pdf(x, p, n) binomial_P(x, p, n) binomial_Q(x, p, n) See :ref:`Binomial Distribution `. .. function:: poisson_pdf(x, mu) poisson_P(x, mu) poisson_Q(x, mu) See :ref:`Poisson Distribution `.