Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
測試樣本均值與真實均值的差(Testing a sample mean for difference from a "true" mean)

當校準或比較某種科學設備或測量方法的時候,我們需要回答「在某種有效的方式上,觀測到的樣本均值與真實均值是否有差別?」。如果確實有差別,那麼我們有一個系統差別的證據。這個問題的答案可以使用學生t測試來回答(Students-t test):更多信息可以在on the NIST site找到。

當然,將「真實值」賦給一個值均值可能有些武斷,這通常是一個「傳統的」測量方法。

下面的代碼取自於例子程序students_t_single_sample.cpp

我們將定義一個函數來判斷在某個顯著性水平哪一個可能的假設會被否決或不會被否決:

[Note] 注意

非統計學家可能會說 '不否決'意味著 '接受' (一般對於虛假設( null-hypothesis)) ,錯誤地認為這沒有差別。但統計學家避開這一點來迴避錯誤地暗示這是一個沒有差別的積極證據。「不否決」在這裡關這裡沒有存在差別的證據,但是仍然可能可能存在差別。例如,參考argument from ignorance 以及 Absence of evidence does not constitute evidence of absence.

// 需要的頭文件:
#include <boost/math/distributions/students_t.hpp>
#include <iostream>
#include <iomanip>
// Bring everything into global namespace for ease of use:
using namespace boost::math;
using namespace std;   

void single_sample_t_test(double M, double Sm, double Sd, unsigned Sn, double alpha)
{
   //
   // M = true mean.
   // Sm = Sample Mean.
   // Sd = Sample Standard Deviation.
   // Sn = Sample Size.
   // alpha = Significance Level.

函數大部分的代碼都在進行打印結果,因此我們僅關注計算過程,我們先計算t-statistic:

// 均值的差:
double diff = Sm - M;
// 自由度:
unsigned v = Sn - 1;
// t-statistic:
double t_stat = diff * sqrt(double(Sn)) / Sd;

最後計算來自於 t-statistic 的概率。如果我們僅僅只關注均值之間是否存在差別(較大或是較小),我們並不在意 t-statistic 的符號,並且我們取概率的補集來比較顯著性水平:

students_t dist(v);
double q = cdf(complement(dist, fabs(t_stat)));

然後這個函數針對各種測試打印測試結果,這可以總結在下面的表中:

假設(Hypothesis)

測試

虛假設(Null-hypothesis):均值之間沒有差別

對於: |t| < significance level顯著性水平 / 2:

cdf(complement(dist, fabs(t))) < alpha / 2 則否決

另一個假設:均值之間存在差別

對於: |t| > significance level顯著性水平 / 2:

cdf(complement(dist, fabs(t))) > alpha / 2

另一個假設:樣本均值小於 真實均值

對於: t > 顯著性水平

cdf(dist, t) > alpha 則否決

另一個假設:樣本均值大於 真實均值

Reject if complement of CDF of 對於:t > 顯著性水平

cdf(complement(dist, t)) > alpha 則否決

[Note] 注意

對於雙側測試(two-sided test)是與alpha / 2 比較,對於單側測試(single-sided test)是與alpha 比較

既然我們已經使得所有的部分都位於合適的位置,讓我們查看一下樣本輸出,首先使用來自於 NIST 網站的熱流數據(Heat flow data) 。這些數據由 Bob Zarr of NIST在January, 1990 從一個 heat flow meter calibration 的穩定性分析中收集到的。對應的這個測試的輸出結果可以在NIST/SEMATECH e-Handbook of Statistical Methods.中的 section 3.5.2 找到。

   __________________________________
   Student t test for a single sample
   __________________________________

   Number of Observations                                 =  195
   Sample Mean                                            =  9.26146
   Sample Standard Deviation                              =  0.02279
   Expected True Mean                                     =  5.00000

   Sample Mean - Expected Test Mean                       =  4.26146
   Degrees of Freedom                                     =  194
   T Statistic                                            =  2611.28380
   Probability that difference is due to chance           =  0.000e+000

   Results for Alternative Hypothesis and alpha           =  0.0500

   Alternative Hypothesis     Conclusion
   Mean != 5.000              NOT REJECTED
   Mean  < 5.000              REJECTED
   Mean  > 5.000              NOT REJECTED

由這些數據顯示,由於偶然機會而產生差別的概率為0。從哲學的角度看,當然,概率永遠不會為0。然而,在這種情況下,計算的概率值與最小的可表達的浮點數值還小,因此在這裡會出現0。不論真實值是什麼,我們知道它都非常之小,因此假設-均值之間有差別-沒有被否決。

為了作為比較 ,下一個例子的數據來自於 P.K.Hou, O. W. Lau & M.C. Wong, Analyst (1983) vol. 108, p 64. and from Statistics for Analytical Chemistry, 3rd ed. (1994), pp 54-55 J. C. Miller and J. N. Miller, Ellis Horwood ISBN 0 13 0309907. The values result from the determination of mercury by cold-vapour atomic absorption.

   __________________________________
   Student t test for a single sample
   __________________________________

   Number of Observations                                 =  3
   Sample Mean                                            =  37.80000
   Sample Standard Deviation                              =  0.96437
   Expected True Mean                                     =  38.90000

   Sample Mean - Expected Test Mean                       =  -1.10000
   Degrees of Freedom                                     =  2
   T Statistic                                            =  -1.97566
   Probability that difference is due to chance           =  1.869e-001

   Results for Alternative Hypothesis and alpha           =  0.0500

   Alternative Hypothesis     Conclusion
   Mean != 38.900             REJECTED
   Mean  < 38.900             REJECTED
   Mean  > 38.900             REJECTED

就如你所看到的,數量較小的測量次數(3次)將會給真實均值的位置帶來很大的不確定性。因此,即使在樣本均值和真實均值之間存在差別,我們推斷沒有明顯的差別,並且不能否決虛假設(null-hypothesis)。然而,如果我們將授受程度(acceptance)降低到 alpha = 0.1 ( 90% 的置信水平),我們可以看到以一個不同的輸出。

__________________________________
Student t test for a single sample
__________________________________

Number of Observations                                 =  3
Sample Mean                                            =  37.80000
Sample Standard Deviation                              =  0.96437
Expected True Mean                                     =  38.90000

Sample Mean - Expected Test Mean                       =  -1.10000
Degrees of Freedom                                     =  2
T Statistic                                            =  -1.97566
Probability that difference is due to chance           =  1.869e-001

Results for Alternative Hypothesis and alpha           =  0.1000

Alternative Hypothesis     Conclusion
Mean != 38.900            REJECTED
Mean  < 38.900            NOT REJECTED
Mean  > 38.900            REJECTED

在這種情況下,我們真的有了一個邊界值結果( borderline result ),並且對於一個更可信的推斷我們需要更多的數據。


PrevUpHomeNext