| [section:students_t_dist Students t Distribution] |
| |
| ``#include <boost/math/distributions/students_t.hpp>`` |
| |
| namespace boost{ namespace math{ |
| |
| template <class RealType = double, |
| class ``__Policy`` = ``__policy_class`` > |
| class students_t_distribution; |
| |
| typedef students_t_distribution<> students_t; |
| |
| template <class RealType, class ``__Policy``> |
| class students_t_distribution |
| { |
| typedef RealType value_type; |
| typedef Policy policy_type; |
| |
| // Construct: |
| students_t_distribution(const RealType& v); |
| |
| // Accessor: |
| RealType degrees_of_freedom()const; |
| |
| // degrees of freedom estimation: |
| static RealType find_degrees_of_freedom( |
| RealType difference_from_mean, |
| RealType alpha, |
| RealType beta, |
| RealType sd, |
| RealType hint = 100); |
| }; |
| |
| }} // namespaces |
| |
| A statistical distribution published by William Gosset in 1908. |
| His employer, Guinness Breweries, required him to publish under a |
| pseudonym, so he chose "Student". Given N independent measurements, let |
| |
| [equation students_t_dist] |
| |
| where /M/ is the population mean,[' ''' μ '''] is the sample mean, and /s/ is the |
| sample variance. |
| |
| Student's t-distribution is defined as the distribution of the random |
| variable t which is - very loosely - the "best" that we can do not |
| knowing the true standard deviation of the sample. It has the PDF: |
| |
| [equation students_t_ref1] |
| |
| The Student's t-distribution takes a single parameter: the number of |
| degrees of freedom of the sample. When the degrees of freedom is |
| /one/ then this distribution is the same as the Cauchy-distribution. |
| As the number of degrees of freedom tends towards infinity, then this |
| distribution approaches the normal-distribution. The following graph |
| illustrates how the PDF varies with the degrees of freedom [nu]: |
| |
| [graph students_t_pdf] |
| |
| [h4 Member Functions] |
| |
| students_t_distribution(const RealType& v); |
| |
| Constructs a Student's t-distribution with /v/ degrees of freedom. |
| |
| Requires v > 0, otherwise calls __domain_error. Note that |
| non-integral degrees of freedom are supported, and |
| meaningful under certain circumstances. |
| |
| RealType degrees_of_freedom()const; |
| |
| Returns the number of degrees of freedom of this distribution. |
| |
| static RealType find_degrees_of_freedom( |
| RealType difference_from_mean, |
| RealType alpha, |
| RealType beta, |
| RealType sd, |
| RealType hint = 100); |
| |
| Returns the number of degrees of freedom required to observe a significant |
| result in the Student's t test when the mean differs from the "true" |
| mean by /difference_from_mean/. |
| |
| [variablelist |
| [[difference_from_mean][The difference between the true mean and the sample mean |
| that we wish to show is significant.]] |
| [[alpha][The maximum acceptable probability of rejecting the null hypothesis |
| when it is in fact true.]] |
| [[beta][The maximum acceptable probability of failing to reject the null hypothesis |
| when it is in fact false.]] |
| [[sd][The sample standard deviation.]] |
| [[hint][A hint for the location to start looking for the result, a good choice for this |
| would be the sample size of a previous borderline Student's t test.]] |
| ] |
| |
| [note |
| Remember that for a two-sided test, you must divide alpha by two |
| before calling this function.] |
| |
| For more information on this function see the |
| [@http://www.itl.nist.gov/div898/handbook/prc/section2/prc222.htm |
| NIST Engineering Statistics Handbook]. |
| |
| [h4 Non-member Accessors] |
| |
| All the [link math_toolkit.dist.dist_ref.nmp usual non-member accessor functions] that are generic to all |
| distributions are supported: __usual_accessors. |
| |
| The domain of the random variable is \[-[infin], +[infin]\]. |
| |
| [h4 Examples] |
| |
| Various [link math_toolkit.dist.stat_tut.weg.st_eg worked examples] are available illustrating the use of the Student's t |
| distribution. |
| |
| [h4 Accuracy] |
| |
| The normal distribution is implemented in terms of the |
| [link math_toolkit.special.sf_beta.ibeta_function incomplete beta function] |
| and [link math_toolkit.special.sf_beta.ibeta_inv_function it's inverses], |
| refer to accuracy data on those functions for more information. |
| |
| [h4 Implementation] |
| |
| In the following table /v/ is the degrees of freedom of the distribution, |
| /t/ is the random variate, /p/ is the probability and /q = 1-p/. |
| |
| [table |
| [[Function][Implementation Notes]] |
| [[pdf][Using the relation: pdf = (v \/ (v + t[super 2]))[super (1+v)\/2 ] / (sqrt(v) * __beta(v\/2, 0.5)) ]] |
| [[cdf][Using the relations: |
| |
| p = 1 - z /iff t > 0/ |
| |
| p = z /otherwise/ |
| |
| where z is given by: |
| |
| __ibeta(v \/ 2, 0.5, v \/ (v + t[super 2])) \/ 2 ['iff v < 2t[super 2]] |
| |
| __ibetac(0.5, v \/ 2, t[super 2 ] / (v + t[super 2]) \/ 2 /otherwise/]] |
| [[cdf complement][Using the relation: q = cdf(-t) ]] |
| [[quantile][Using the relation: t = sign(p - 0.5) * sqrt(v * y \/ x) |
| |
| where: |
| |
| x = __ibeta_inv(v \/ 2, 0.5, 2 * min(p, q)) |
| |
| y = 1 - x |
| |
| The quantities /x/ and /y/ are both returned by __ibeta_inv |
| without the subtraction implied above.]] |
| [[quantile from the complement][Using the relation: t = -quantile(q)]] |
| [[mean][0]] |
| [[variance][v \/ (v - 2)]] |
| [[mode][0]] |
| [[skewness][0]] |
| [[kurtosis][3 * (v - 2) \/ (v - 4)]] |
| [[kurtosis excess][6 \/ (df - 4)]] |
| ] |
| |
| [endsect][/section:students_t_dist Students t] |
| |
| [/ students_t.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). |
| ] |
| |