| [section:nmp Non-Member Properties] |
| |
| Properties that are common to all distributions are accessed via non-member |
| getter functions: non-membership allows more of these functions to be added over time, |
| as the need arises. Unfortunately the literature uses many different and |
| confusing names to refer to a rather small number of actual concepts; refer |
| to the [link concept_index concept index] to find the property you |
| want by the name you are most familiar with. |
| Or use the [link function_index function index] |
| to go straight to the function you want if you already know its name. |
| |
| [h4 [#function_index]Function Index] |
| |
| * [link math.dist.cdf cdf]. |
| * [link math.dist.ccdf cdf complement]. |
| * [link math.dist.chf chf]. |
| * [link math.dist.hazard hazard]. |
| * __kurtosis. |
| * __kurtosis_excess |
| * __mean. |
| * [link math.dist.median median]. |
| * __mode. |
| * [link math.dist.pdf pdf]. |
| * [link math.dist.range range]. |
| * [link math.dist.quantile quantile]. |
| * [link math.dist.quantile_c quantile from the complement]. |
| * __skewness. |
| * [link math.dist.sd standard_deviation]. |
| * [link math.dist.support support]. |
| * __variance. |
| |
| [h4 [#concept_index]Conceptual Index] |
| |
| * __ccdf. |
| * __cdf. |
| * __chf. |
| * [link cdf_inv Inverse Cumulative Distribution Function]. |
| * [link survival_inv Inverse Survival Function]. |
| * __hazard |
| * [link lower_critical Lower Critical Value]. |
| * __kurtosis. |
| * __kurtosis_excess |
| * __mean. |
| * [link math.dist.median median]. |
| * __mode. |
| * [link cdfPQ P]. |
| * [link percent Percent Point Function]. |
| * __pdf. |
| * [link pmf Probability Mass Function]. |
| * [link math.dist.range range]. |
| * [link cdfPQ Q]. |
| * __quantile. |
| * [link math.dist.quantile_c Quantile from the complement of the probability]. |
| * __skewness. |
| * __sd |
| * [link survival Survival Function]. |
| * [link math.dist.support support]. |
| * [link upper_critical Upper Critical Value]. |
| * __variance. |
| |
| [h4 [#math.dist.cdf]Cumulative Distribution Function] |
| |
| template <class RealType, class ``__Policy``> |
| RealType cdf(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist, const RealType& x); |
| |
| The __cdf is the probability that |
| the variable takes a value less than or equal to x. It is equivalent |
| to the integral from -infinity to x of the __pdf. |
| |
| This function may return a __domain_error if the random variable is outside |
| the defined range for the distribution. |
| |
| For example, the following graph shows the cdf for the |
| normal distribution: |
| |
| [$../graphs/cdf.png] |
| |
| [h4 [#math.dist.ccdf]Complement of the Cumulative Distribution Function] |
| |
| template <class Distribution, class RealType> |
| RealType cdf(const ``['Unspecified-Complement-Type]``<Distribution, RealType>& comp); |
| |
| The complement of the __cdf |
| is the probability that |
| the variable takes a value greater than x. It is equivalent |
| to the integral from x to infinity of the __pdf, or 1 minus the __cdf of x. |
| |
| This is also known as the survival function. |
| |
| This function may return a __domain_error if the random variable is outside |
| the defined range for the distribution. |
| |
| In this library, it is obtained by wrapping the arguments to the `cdf` |
| function in a call to `complement`, for example: |
| |
| // standard normal distribution object: |
| boost::math::normal norm; |
| // print survival function for x=2.0: |
| std::cout << cdf(complement(norm, 2.0)) << std::endl; |
| |
| For example, the following graph shows the __complement of the cdf for the |
| normal distribution: |
| |
| [$../graphs/survival.png] |
| |
| See __why_complements for why the complement is useful and when it should be used. |
| |
| [h4 [#math.dist.hazard]Hazard Function] |
| |
| template <class RealType, class ``__Policy``> |
| RealType hazard(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist, const RealType& x); |
| |
| Returns the __hazard of /x/ and distibution /dist/. |
| |
| This function may return a __domain_error if the random variable is outside |
| the defined range for the distribution. |
| |
| [equation hazard] |
| |
| [caution |
| Some authors refer to this as the conditional failure |
| density function rather than the hazard function.] |
| |
| [h4 [#math.dist.chf]Cumulative Hazard Function] |
| |
| template <class RealType, class ``__Policy``> |
| RealType chf(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist, const RealType& x); |
| |
| Returns the __chf of /x/ and distibution /dist/. |
| |
| This function may return a __domain_error if the random variable is outside |
| the defined range for the distribution. |
| |
| [equation chf] |
| |
| [caution |
| Some authors refer to this as simply the "Hazard Function".] |
| |
| [h4 [#math.dist.mean]mean] |
| |
| template<class RealType, class ``__Policy``> |
| RealType mean(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist); |
| |
| Returns the mean of the distribution /dist/. |
| |
| This function may return a __domain_error if the distribution does not have |
| a defined mean (for example the Cauchy distribution). |
| |
| [h4 [#math.dist.median]median] |
| |
| template<class RealType, class ``__Policy``> |
| RealType median(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist); |
| |
| Returns the median of the distribution /dist/. |
| |
| [h4 [#math.dist.mode]mode] |
| |
| template<class RealType, ``__Policy``> |
| RealType mode(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist); |
| |
| Returns the mode of the distribution /dist/. |
| |
| This function may return a __domain_error if the distribution does not have |
| a defined mode. |
| |
| [h4 [#math.dist.pdf]Probability Density Function] |
| |
| template <class RealType, class ``__Policy``> |
| RealType pdf(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist, const RealType& x); |
| |
| For a continuous function, the probability density function (pdf) returns |
| the probability that the variate has the value x. |
| Since for continuous distributions the probability at a single point is actually zero, |
| the probability is better expressed as the integral of the pdf between two points: |
| see the __cdf. |
| |
| For a discrete distribution, the pdf is the probability that the |
| variate takes the value x. |
| |
| This function may return a __domain_error if the random variable is outside |
| the defined range for the distribution. |
| |
| For example, for a standard normal distribution the pdf looks like this: |
| |
| [$../graphs/pdf.png] |
| |
| [h4 [#math.dist.range]Range] |
| |
| template<class RealType, class ``__Policy``> |
| std::pair<RealType, RealType> range(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist); |
| |
| Returns the valid range of the random variable over distribution /dist/. |
| |
| [h4 [#math.dist.quantile]Quantile] |
| |
| template <class RealType, class ``__Policy``> |
| RealType quantile(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist, const RealType& p); |
| |
| The quantile is best viewed as the inverse of the __cdf, it returns |
| a value /x/ such that `cdf(dist, x) == p`. |
| |
| This is also known as the /percent point function/, or a /percentile/, it is |
| also the same as calculating the ['lower critical value] of a distribution. |
| |
| This function returns a __domain_error if the probability lies outside [0,1]. |
| The function may return an __overflow_error if there is no finite value |
| that has the specified probability. |
| |
| The following graph shows the quantile function for a standard normal |
| distribution: |
| |
| [$../graphs/quantile.png] |
| |
| [h4 [#math.dist.quantile_c]Quantile from the complement of the probability.] |
| [link complements complements] |
| |
| |
| template <class Distribution, class RealType> |
| RealType quantile(const ``['Unspecified-Complement-Type]``<Distribution, RealType>& comp); |
| |
| This is the inverse of the __ccdf. It is calculated by wrapping |
| the arguments in a call to the quantile function in a call to |
| /complement/. For example: |
| |
| // define a standard normal distribution: |
| boost::math::normal norm; |
| // print the value of x for which the complement |
| // of the probability is 0.05: |
| std::cout << quantile(complement(norm, 0.05)) << std::endl; |
| |
| The function computes a value /x/ such that |
| `cdf(complement(dist, x)) == q` where /q/ is complement of the |
| probability. |
| |
| [link why_complements Why complements?] |
| |
| This function is also called the inverse survival function, and is the |
| same as calculating the ['upper critical value] of a distribution. |
| |
| This function returns a __domain_error if the probablity lies outside [0,1]. |
| The function may return an __overflow_error if there is no finite value |
| that has the specified probability. |
| |
| The following graph show the inverse survival function for the normal |
| distribution: |
| |
| [$../graphs/survival_inv.png] |
| |
| [h4 [#math.dist.sd]Standard Deviation] |
| |
| template <class RealType, class ``__Policy``> |
| RealType standard_deviation(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist); |
| |
| Returns the standard deviation of distribution /dist/. |
| |
| This function may return a __domain_error if the distribution does not have |
| a defined standard deviation. |
| |
| [h4 [#math.dist.support]support] |
| |
| template<class RealType, class ``__Policy``> |
| std::pair<RealType, RealType> support(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist); |
| |
| Returns the supported range of random variable over the distribution /dist/. |
| |
| The distribution is said to be 'supported' over a range that is |
| [@http://en.wikipedia.org/wiki/Probability_distribution |
| "the smallest closed set whose complement has probability zero"]. |
| Non-mathematicians might say it means the 'interesting' smallest range |
| of random variate x that has the cdf going from zero to unity. |
| Outside are uninteresting zones where the pdf is zero, and the cdf zero or unity. |
| |
| [h4 [#math.dist.variance]Variance] |
| |
| template <class RealType, class ``__Policy``> |
| RealType variance(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist); |
| |
| Returns the variance of the distribution /dist/. |
| |
| This function may return a __domain_error if the distribution does not have |
| a defined variance. |
| |
| [h4 [#math.dist.skewness]Skewness] |
| |
| template <class RealType, class ``__Policy``> |
| RealType skewness(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist); |
| |
| Returns the skewness of the distribution /dist/. |
| |
| This function may return a __domain_error if the distribution does not have |
| a defined skewness. |
| |
| [h4 [#math.dist.kurtosis]Kurtosis] |
| |
| template <class RealType, class ``__Policy``> |
| RealType kurtosis(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist); |
| |
| Returns the 'proper' kurtosis (normalized fourth moment) of the distribution /dist/. |
| |
| kertosis = [beta][sub 2][space]= [mu][sub 4][space] / [mu][sub 2][super 2] |
| |
| Where [mu][sub i][space] is the i'th central moment of the distribution, and |
| in particular [mu][sub 2][space] is the variance of the distribution. |
| |
| The kurtosis is a measure of the "peakedness" of a distribution. |
| |
| Note that the literature definition of kurtosis is confusing. |
| The definition used here is that used by for example |
| [@http://mathworld.wolfram.com/Kurtosis.html Wolfram MathWorld] |
| (that includes a table of formulae for kurtosis excess for various distributions) |
| but NOT the definition of |
| [@http://en.wikipedia.org/wiki/Kurtosis kurtosis used by Wikipedia] |
| which treats "kurtosis" and "kurtosis excess" as the same quantity. |
| |
| kurtosis_excess = 'proper' kurtosis - 3 |
| |
| This subtraction of 3 is convenient so that the ['kurtosis excess] |
| of a normal distribution is zero. |
| |
| This function may return a __domain_error if the distribution does not have |
| a defined kurtosis. |
| |
| 'Proper' kurtosis can have a value from zero to + infinity. |
| |
| [h4 [#math.dist.kurtosis_excess]Kurtosis excess] |
| |
| template <class RealType, ``__Policy``> |
| RealType kurtosis_excess(const ``['Distribution-Type]``<RealType, ``__Policy``>& dist); |
| |
| Returns the kurtosis excess of the distribution /dist/. |
| |
| kurtosis excess = [gamma][sub 2][space]= [mu][sub 4][space] / [mu][sub 2][super 2][space]- 3 = kurtosis - 3 |
| |
| Where [mu][sub i][space] is the i'th central moment of the distribution, and |
| in particular [mu][sub 2][space] is the variance of the distribution. |
| |
| The kurtosis excess is a measure of the "peakedness" of a distribution, and |
| is more widely used than the "kurtosis proper". It is defined so that |
| the kurtosis excess of a normal distribution is zero. |
| |
| This function may return a __domain_error if the distribution does not have |
| a defined kurtosis excess. |
| |
| Kurtosis excess can have a value from -2 to + infinity. |
| |
| kurtosis = kurtosis_excess +3; |
| |
| The kurtosis excess of a normal distribution is zero. |
| |
| [h4 [#cdfPQ]P and Q] |
| |
| The terms P and Q are sometimes used to refer to the __cdf |
| and its [link math.dist.ccdf complement] respectively. |
| Lowercase p and q are sometimes used to refer to the values returned |
| by these functions. |
| |
| [h4 [#percent]Percent Point Function] |
| |
| The percent point function, also known as the percentile, is the same as |
| the __quantile. |
| |
| [h4 [#cdf_inv]Inverse CDF Function.] |
| |
| The inverse of the cumulative distribution function, is the same as the |
| __quantile. |
| |
| [h4 [#survival_inv]Inverse Survival Function.] |
| |
| The inverse of the survival function, is the same as computing the |
| [link math.dist.quantile_c quantile |
| from the complement of the probability]. |
| |
| [h4 [#pmf]Probability Mass Function] |
| |
| The Probability Mass Function is the same as the __pdf. |
| |
| The term Mass Function is usually applied to discrete distributions, |
| while the term __pdf applies to continuous distributions. |
| |
| [h4 [#lower_critical]Lower Critical Value.] |
| |
| The lower critical value calculates the value of the random variable |
| given the area under the left tail of the distribution. |
| It is equivalent to calculating the __quantile. |
| |
| [h4 [#upper_critical]Upper Critical Value.] |
| |
| The upper critical value calculates the value of the random variable |
| given the area under the right tail of the distribution. It is equivalent to |
| calculating the [link math.dist.quantile_c quantile from the complement of the |
| probability]. |
| |
| [h4 [#survival]Survival Function] |
| |
| Refer to the __ccdf. |
| |
| [endsect][/section:nmp Non-Member Properties] |
| |
| |
| [/ non_members.qbk |
| Copyright 2006 John Maddock and Paul A. Bristow. |
| Distributed under the Boost Software License, Version 1.0. |
| (See accompanying file LICENSE_1_0.txt or copy at |
| http://www.boost.org/LICENSE_1_0.txt). |
| ] |
| |