Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
標準差的置信區間(Confidence Intervals on the Standard Deviation)

一旦你已經計算了數據的標準差,要問的一個合理的問題是「這個計算出的標準差的可信度有多高?」。在這種情況下,χ方形分佈(Chi Squared distribution)可以用來計算標準差的置信區間。

完整的代碼以及樣本輸出在chi_square_std_deviation_test.cpp中。

我們通過定義計算和打印置信區間(confidence interval)的函數開始:

void confidence_limits_on_std_deviation(
     double Sd,    // 樣本標準差(Sample Standard Deviation)
     unsigned N)   // 樣本大小(Sample size)
{

我們將打印一些基本信息:

cout <<
   "________________________________________________\n"
   "2-Sided Confidence Limits For Standard Deviation\n"
   "________________________________________________\n\n";
cout << setprecision(7);
cout << setw(40) << left << "Number of Observations" << "=  " << N << "\n";
cout << setw(40) << left << "Standard Deviation" << "=  " << Sd << "\n";

然後我們定義了將計算置信區間的顯著性水平(significance level)表。

double alpha[] = { 0.5, 0.25, 0.1, 0.05, 0.01, 0.001, 0.0001, 0.00001 };

我們用於計算置信區間的分佈是自由度(degree of freedom)為(N-1)的χ方形分佈(Chi Squared distribution):

chi_squared dist(N - 1);

對於每一個 alpha 值,置信區間的方程由下面的的等式給定:

其中是χ方形分佈( Chi Squared distribution)的上臨界值( upper critical value),且是下臨界值( lower critical value)。

在代碼中,我們通過打印表頭開始:

cout << "\n\n" "_____________________________________________\n" "Confidence Lower Upper\n" " Value (%) Limit Limit\n" "_____________________________________________\n";

然後循環計算每個 alpha 值對應的區間:記住,下臨界值(lower critical value)與分位點(quantile)相同,而上臨界值(upper critical value)與概率補集的分位點相同:

for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i)
{
   // Confidence value:
   cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]);
   // 計算界限:
   double lower_limit = sqrt((N - 1) * Sd * Sd / quantile(complement(dist, alpha[i] / 2)));
   double upper_limit = sqrt((N - 1) * Sd * Sd / quantile(dist, alpha[i] / 2));
   // 打印界限值:
   cout << fixed << setprecision(5) << setw(15) << right << lower_limit;
   cout << fixed << setprecision(5) << setw(15) << right << upper_limit << endl;
}
cout << endl;

了查看一些樣本輸出,我們使用來自於NIST/SEMATECH e-Handbook of Statistical Methods.gear data ,這些數據表示來自於一個製造過程(manufacturing process)中測量的齒輪直徑( gear diameter)。

________________________________________________
2-Sided Confidence Limits For Standard Deviation
________________________________________________

Number of Observations                  =  100
Standard Deviation                      =  0.006278908


_____________________________________________
Confidence          Lower          Upper
 Value (%)          Limit          Limit
_____________________________________________
    50.000        0.00601        0.00662
    75.000        0.00582        0.00685
    90.000        0.00563        0.00712
    95.000        0.00551        0.00729
    99.000        0.00530        0.00766
    99.900        0.00507        0.00812
    99.990        0.00489        0.00855
    99.999        0.00474        0.00895

因此在 95% 的置信水平(confidence level),我們判定標準差在 0.00551 到 0.00729之間。

置信區間作為觀測數目的函數(Confidence intervals as a function of the number of observations)

類似地,對於增長的觀測數量,我們也可以計算通常的置信水平為95%時標準差的置信區間。

用於計算這些值的標準差為1,因此對於任何特定的標準差,這裡列舉的界限都是乘積 。給定一個標準差0.0062789 ,就像在上面的例子中顯示的那樣;對於100次觀測,乘積是 0.8780,給定下置信界限(lower confidence limit) 0.8780 * 0.006728 = 0.00551。

____________________________________________________
Confidence level (two-sided)            =  0.0500000
Standard Deviation                      =  1.0000000
________________________________________
Observations        Lower          Upper
                    Limit          Limit
________________________________________
         2         0.4461        31.9102
         3         0.5207         6.2847
         4         0.5665         3.7285
         5         0.5991         2.8736
         6         0.6242         2.4526
         7         0.6444         2.2021
         8         0.6612         2.0353
         9         0.6755         1.9158
        10         0.6878         1.8256
        15         0.7321         1.5771
        20         0.7605         1.4606
        30         0.7964         1.3443
        40         0.8192         1.2840
        50         0.8353         1.2461
        60         0.8476         1.2197
       100         0.8780         1.1617
       120         0.8875         1.1454
      1000         0.9580         1.0459
     10000         0.9863         1.0141
     50000         0.9938         1.0062
    100000         0.9956         1.0044
   1000000         0.9986         1.0014

對於 2 次觀測,界限從0.44531.9,所以標準差可能是觀測值的一半 到觀測值的30 倍 !

使用少量的數據來估算標準差留下了相當大的不確定性,尤其是上界限(upper limit)。注意:尤其是上界限(upper limit)與最可能的標準差偏移太遠。

即使對於 10 次觀測, 通常認為是一個合理的數值,範圍仍然是從 0.69 到 1.8,大約是一個從 0.7 到 2的範圍,並且仍然是嚴重歪斜的,上邊界(upper limit)是均值的兩倍

當我們有 1000 次觀測時, 估算的標準差開始看起來具有說服力,範圍為 0.95 到 1.05 - 現在接近對稱,但仍然偏移 + 或 - 5%。

僅當我們有 10000 或更多重複的觀測時,我們才能夠開始合理的自信(reasonably confident) 。 (假定我們確信其它的因素,例如,漂移(drift),不會出現)

對於 10000 次觀測,區間為 0.99 到 1.1 - 最終的具有說服力的 + or -1% 置信度。


PrevUpHomeNext