Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
學生t分佈(Students t Distribution)

#include <boost/math/distributions/students_t.hpp>

namespace boost{ namespace math{ 
   
template <class RealType = double, 
          class Policy   = policies::policy<> >
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;
   
   // 構造:
   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

由William Gosset 在 1908年發表的一種統計分佈。 他的僱主, Guinness Breweries, 要求他以一個假名(pseudonym)來發佈這種統計分佈,所以他選擇了"學生(Student)"。給定 N 個獨立的測量(measurements),假設:

其中M 是總體均值(population mean),μ 是樣本均值(sample mean), 且 s 是樣本方差( sample variance)。

學生t分佈(Student's t-distribution)定義為隨機變數( random variable)t的分佈,在不知道樣本的標準差的情況下,這個隨機變數( random variable)是我們可以算出的-非常鬆散地-「最優的。PDF函數為:

學生t分佈(Student's t-distribution)帶有一個參數:樣本的自由度(degree of freedom)。當自由度(degree of freedom)為1時,這個分佈與柯西分佈(Cauchy Distribution)是一樣的。隨著自由度(degree of freedom)趨向於無窮,這個分佈趨近於正態分佈(normal distribution)。下面的圖像顯示了隨著自由度(degree of freedom)的變化,函數PDF發生的變化 :

成員函數
students_t_distribution(const RealType& v);

使用自由度(degree of freedom)v構造一個學生t分佈(Student's t-distribution)。

要求: v > 0,否則調用定義域錯誤。注意:也支持非整數的自由度(degree of freedom),並且在特定情況下是有意義的(meaningful)。

RealType degrees_of_freedom()const;

返回這個分佈的自由度數(degree of freedom)。

static RealType find_degrees_of_freedom(
   RealType difference_from_mean,
   RealType alpha,
   RealType beta,
   RealType sd,
   RealType hint = 100);

返回當均值(mean)與「真實」均值(mean)之間的差值為difference_from_mean時在學生t分佈(Student's t Distribution)中觀測一個有效的結果所需要的自由度(degree of freedom)。

difference_from_mean

我們希望顯示為有效的(significant)真實均值(true mean)與樣本均值(sample mean)之間的差值。

alpha

當實際為真(true)時否決(reject)虛假設(null hypothesis)的最大的可接受概率(maximum acceptable probability) 。

beta

當實際為假(false)時而沒有否決(reject)虛假設(null hypothesis)的最大的可接受概率(maximum acceptable probability) 。

sd

樣本標準差( sample standard deviation)。

hint

從哪個位置(location)開始查找結果的提示值(hint),一個好的選擇是一個先前邊界學生t測試的樣本大小( sample size of a previous borderline Student's t test)。

[Note] 注意

記住:對於一個雙面測試( two-sided test),在調用這個函數之前,你必須用2除以alpha。

參考NIST Engineering Statistics Handbook瞭解更多關於這個函數的信息。

非成員訪問函數(Non-member Accessors)

支持所有的分佈都通用的 常見的非成員訪問函數累積分佈函數(Cumulative Distribution Function)概率密度函數(Probability Density Function)分位點(Quantile)故障率函數(Hazard Function)累積危險函數(Cumulative Hazard Function)均值(mean)中位數(median)眾數(mode)方差(variance)標準差(standard deviation)偏斜(skewness)峰態(kurtosis)峰態超越(kurtosis_excess)值域(range) 以及 支持(support)

隨機變量的定義域為:[-∞, +∞]。

例子

有多個說明如何使用學生t分佈( Student's t distribution)的可運行的例子

精確度

學生t分佈(normal distribution)使用不完全β函數 以及 其反函數實現,參考這些函數瞭解精度信息。

實現

在下面的表中:v 是自由度( degrees of freedom),t 是隨機變量,p 是概率且q = 1-p

函數

實現註解

pdf

使用關係: pdf = (v / (v + t2))(1+v)/2 / (sqrt(v) * beta(v/2, 0.5))

cdf

使用關係:

p = 1 - z 如果 t > 0

p = z 否則

其中 z下面的運算給定 :

ibeta(v / 2, 0.5, v / (v + t2)) / 2 如果 v < 2t2

ibetac(0.5, v / 2, t2 / (v + t2) / 2 否則

cdf 補集(complement)

使用關係: q = cdf(-t)

分位點(quantile)

使用關係: t = sign(p - 0.5) * sqrt(v * y / x)

其中:

x = ibeta_inv(v / 2, 0.5, 2 * min(p, q))

y = 1 - x

分位點(quantities) xy 都由函數ibeta_inv 返回而沒有上面顯示的減法運算。

補集的分位點(quantile from the complement)

使用關係: t = -quantile(q)

均值(mean)

0

方差(variance)

v / (v - 2)

眾數(mode)

0

偏斜(skewness)

0

峰態(kurtosis)

3 * (v - 2) / (v - 4)

峰態超越(kurtosis excess )

6 / (df - 4)


PrevUpHomeNext