<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Students t Distribution</title>
<link rel="stylesheet" href="../../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../../../../index.html" title="Math Toolkit">
<link rel="up" href="../dists.html" title="Distributions">
<link rel="prev" href="rayleigh.html" title="Rayleigh Distribution">
<link rel="next" href="triangular_dist.html" title="Triangular Distribution">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="rayleigh.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="triangular_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="math_toolkit.dist.dist_ref.dists.students_t_dist"></a><a class="link" href="students_t_dist.html" title="Students t Distribution">
          Students t Distribution</a>
</h5></div></div></div>
<p>
            
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
<p>
          </p>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> 
   
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> 
          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../../policy/pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">students_t_distribution</span><span class="special">;</span>

<span class="keyword">typedef</span> <span class="identifier">students_t_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">students_t</span><span class="special">;</span>

<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Policies">Policy</a><span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">students_t_distribution</span>
<span class="special">{</span>
   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
   
   <span class="comment">// Construct:
</span>   <span class="identifier">students_t_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
   
   <span class="comment">// Accessor:
</span>   <span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
   
   <span class="comment">// degrees of freedom estimation:
</span>   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
      <span class="identifier">RealType</span> <span class="identifier">difference_from_mean</span><span class="special">,</span>
      <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
      <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span>
      <span class="identifier">RealType</span> <span class="identifier">sd</span><span class="special">,</span>
      <span class="identifier">RealType</span> <span class="identifier">hint</span> <span class="special">=</span> <span class="number">100</span><span class="special">);</span>
<span class="special">};</span>

<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<p>
            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
          </p>
<p>
            <span class="inlinemediaobject"><img src="../../../../../equations/students_t_dist.png"></span>
          </p>
<p>
            where <span class="emphasis"><em>M</em></span> is the population mean,<span class="emphasis"><em>&#956;</em></span>
            is the sample mean, and <span class="emphasis"><em>s</em></span> is the sample variance.
          </p>
<p>
            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:
          </p>
<p>
            <span class="inlinemediaobject"><img src="../../../../../equations/students_t_ref1.png"></span>
          </p>
<p>
            The Student's t-distribution takes a single parameter: the number of
            degrees of freedom of the sample. When the degrees of freedom is <span class="emphasis"><em>one</em></span>
            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 &#957;:
          </p>
<p>
            <span class="inlinemediaobject"><img src="../../../../../graphs/students_t_pdf.png" align="middle"></span>
          </p>
<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.member_functions"></a><h5>
<a name="id1057694"></a>
            <a class="link" href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.member_functions">Member
            Functions</a>
          </h5>
<pre class="programlisting"><span class="identifier">students_t_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
</pre>
<p>
            Constructs a Student's t-distribution with <span class="emphasis"><em>v</em></span> degrees
            of freedom.
          </p>
<p>
            Requires v &gt; 0, otherwise calls <a class="link" href="../../../main_overview/error_handling.html#domain_error">domain_error</a>.
            Note that non-integral degrees of freedom are supported, and meaningful
            under certain circumstances.
          </p>
<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
            Returns the number of degrees of freedom of this distribution.
          </p>
<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
   <span class="identifier">RealType</span> <span class="identifier">difference_from_mean</span><span class="special">,</span>
   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
   <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span>
   <span class="identifier">RealType</span> <span class="identifier">sd</span><span class="special">,</span>
   <span class="identifier">RealType</span> <span class="identifier">hint</span> <span class="special">=</span> <span class="number">100</span><span class="special">);</span>
</pre>
<p>
            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 <span class="emphasis"><em>difference_from_mean</em></span>.
          </p>
<div class="variablelist">
<p class="title"><b></b></p>
<dl>
<dt><span class="term">difference_from_mean</span></dt>
<dd><p>
                  The difference between the true mean and the sample mean that we
                  wish to show is significant.
                </p></dd>
<dt><span class="term">alpha</span></dt>
<dd><p>
                  The maximum acceptable probability of rejecting the null hypothesis
                  when it is in fact true.
                </p></dd>
<dt><span class="term">beta</span></dt>
<dd><p>
                  The maximum acceptable probability of failing to reject the null
                  hypothesis when it is in fact false.
                </p></dd>
<dt><span class="term">sd</span></dt>
<dd><p>
                  The sample standard deviation.
                </p></dd>
<dt><span class="term">hint</span></dt>
<dd><p>
                  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.
                </p></dd>
</dl>
</div>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../../doc/src/images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>
              Remember that for a two-sided test, you must divide alpha by two before
              calling this function.
            </p></td></tr>
</table></div>
<p>
            For more information on this function see the <a href="http://www.itl.nist.gov/div898/handbook/prc/section2/prc222.htm" target="_top">NIST
            Engineering Statistics Handbook</a>.
          </p>
<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.non_member_accessors"></a><h5>
<a name="id1057985"></a>
            <a class="link" href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.non_member_accessors">Non-member
            Accessors</a>
          </h5>
<p>
            All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member
            accessor functions</a> that are generic to all distributions are supported:
            <a class="link" href="../nmp.html#math.dist.cdf">Cumulative Distribution Function</a>,
            <a class="link" href="../nmp.html#math.dist.pdf">Probability Density Function</a>, <a class="link" href="../nmp.html#math.dist.quantile">Quantile</a>, <a class="link" href="../nmp.html#math.dist.hazard">Hazard
            Function</a>, <a class="link" href="../nmp.html#math.dist.chf">Cumulative Hazard Function</a>,
            <a class="link" href="../nmp.html#math.dist.mean">mean</a>, <a class="link" href="../nmp.html#math.dist.median">median</a>,
            <a class="link" href="../nmp.html#math.dist.mode">mode</a>, <a class="link" href="../nmp.html#math.dist.variance">variance</a>,
            <a class="link" href="../nmp.html#math.dist.sd">standard deviation</a>, <a class="link" href="../nmp.html#math.dist.skewness">skewness</a>,
            <a class="link" href="../nmp.html#math.dist.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math.dist.kurtosis_excess">kurtosis_excess</a>,
            <a class="link" href="../nmp.html#math.dist.range">range</a> and <a class="link" href="../nmp.html#math.dist.support">support</a>.
          </p>
<p>
            The domain of the random variable is [-&#8734;, +&#8734;].
          </p>
<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.examples"></a><h5>
<a name="id1058084"></a>
            <a class="link" href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.examples">Examples</a>
          </h5>
<p>
            Various <a class="link" href="../../stat_tut/weg/st_eg.html" title="Student's t Distribution Examples">worked examples</a>
            are available illustrating the use of the Student's t distribution.
          </p>
<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.accuracy"></a><h5>
<a name="id1058111"></a>
            <a class="link" href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.accuracy">Accuracy</a>
          </h5>
<p>
            The normal distribution is implemented in terms of the <a class="link" href="../../../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">incomplete
            beta function</a> and <a class="link" href="../../../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">it's
            inverses</a>, refer to accuracy data on those functions for more information.
          </p>
<a name="math_toolkit.dist.dist_ref.dists.students_t_dist.implementation"></a><h5>
<a name="id1058142"></a>
            <a class="link" href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.implementation">Implementation</a>
          </h5>
<p>
            In the following table <span class="emphasis"><em>v</em></span> is the degrees of freedom
            of the distribution, <span class="emphasis"><em>t</em></span> is the random variate, <span class="emphasis"><em>p</em></span>
            is the probability and <span class="emphasis"><em>q = 1-p</em></span>.
          </p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Function
                    </p>
                  </th>
<th>
                    <p>
                      Implementation Notes
                    </p>
                  </th>
</tr></thead>
<tbody>
<tr>
<td>
                    <p>
                      pdf
                    </p>
                  </td>
<td>
                    <p>
                      Using the relation: pdf = (v / (v + t<sup>2</sup>))<sup>(1+v)/2 </sup> / (sqrt(v)
                      * <a class="link" href="../../../special/sf_beta/beta_function.html" title="Beta">beta</a>(v/2,
                      0.5))
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      cdf
                    </p>
                  </td>
<td>
                    <p>
                      Using the relations:
                    </p>
                    <p>
                      p = 1 - z <span class="emphasis"><em>iff t &gt; 0</em></span>
                    </p>
                    <p>
                      p = z <span class="emphasis"><em>otherwise</em></span>
                    </p>
                    <p>
                      where z is given by:
                    </p>
                    <p>
                      <a class="link" href="../../../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>(v
                      / 2, 0.5, v / (v + t<sup>2</sup>)) / 2 <span class="emphasis"><em>iff v &lt; 2t<sup>2</sup></em></span>
                    </p>
                    <p>
                      <a class="link" href="../../../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>(0.5,
                      v / 2, t<sup>2 </sup> / (v + t<sup>2</sup>) / 2 <span class="emphasis"><em>otherwise</em></span>
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      cdf complement
                    </p>
                  </td>
<td>
                    <p>
                      Using the relation: q = cdf(-t)
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      quantile
                    </p>
                  </td>
<td>
                    <p>
                      Using the relation: t = sign(p - 0.5) * sqrt(v * y / x)
                    </p>
                    <p>
                      where:
                    </p>
                    <p>
                      x = <a class="link" href="../../../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>(v
                      / 2, 0.5, 2 * min(p, q))
                    </p>
                    <p>
                      y = 1 - x
                    </p>
                    <p>
                      The quantities <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span>
                      are both returned by <a class="link" href="../../../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>
                      without the subtraction implied above.
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      quantile from the complement
                    </p>
                  </td>
<td>
                    <p>
                      Using the relation: t = -quantile(q)
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      mean
                    </p>
                  </td>
<td>
                    <p>
                      0
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      variance
                    </p>
                  </td>
<td>
                    <p>
                      v / (v - 2)
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      mode
                    </p>
                  </td>
<td>
                    <p>
                      0
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      skewness
                    </p>
                  </td>
<td>
                    <p>
                      0
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      kurtosis
                    </p>
                  </td>
<td>
                    <p>
                      3 * (v - 2) / (v - 4)
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      kurtosis excess
                    </p>
                  </td>
<td>
                    <p>
                      6 / (df - 4)
                    </p>
                  </td>
</tr>
</tbody>
</table></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2006 , 2007, 2008, 2009, 2010 John Maddock, Paul A. Bristow,
      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani and
      Thijs van den Berg<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="rayleigh.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="triangular_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
