[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,[' ''' &#x3BC; '''] 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]:

[$../graphs/students_t.png]

[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).
]

