Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
估算二項分佈(Binomial Distribution)的樣本大小.

設想你有一個關鍵部件(critical component),你知道它的故障可能性為每N次中發生一次 。 你可能想要安排這個部件的運行時替換使得這個部件在兩次運行時替換中發生故障的概率小於 P%。如果這種故障發生遵循二項分佈(binomial distribution) (每次使用這個部件時,它要麼不出故障,要麼出故障),那麼靜態成員函數binomial_distibution<>::find_maximum_number_of_trials 可以用來估算針對某個風險水平(risk level) alpha 的部件的最大使用次數.

例子程序binomial_sample_sizes.cpp 顯示了使用方法。 對於不同的概率值,它打印最大樣本大小:

void find_max_sample_size(
   double p,              // 成功比(success ratio).
   unsigned successes)    // 總共的可能觀察的成功次數(Total number of observed successes permitted).
{

這個程序然後定義了一個概率起始值表:這是成功事件successes或更少的成功事件將被觀察到的最大的可接受概率。在我們的例子中,在我們的例子中,successes一直為0,因為我們不想有任何的組件故障,但在其它的情況下,非0的值可能也有意義:

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

這個程序大部分代碼都是打印,重要的部分是對每個alpha值計算最大可能試驗次數(maximum number of permitted trials):

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 t = binomial::find_maximum_number_of_trials(
                  successes, p, alpha[i]);
   t = floor(t);
   // 打印試驗次數:
   cout << fixed << setprecision(5) << setw(15) << right << t << endl;
}

注意:因為我們在計算最大可能試驗次數(maximum number of permitted trials),我們將會在安全的一邊(safe side)犯錯誤並取向下捨入的值。我們使用函數find_minimum_number_of_trials計算要求觀察一定數量的成功事件的的最小 的試驗次數,我們將會使用向上捨入的值。

我們將通過查看樣本輸出作為結束,首先,對於在每次使用中組件故障率為1/1000的情況:

________________________
Maximum Number of Trials
________________________

Success ratio                           =  0.001
Maximum Number of "successes" permitted =  0


____________________________
Confidence        Max Number
 Value (%)        Of Trials
____________________________
    50.000            692
    75.000            287
    90.000            105
    95.000             51
    99.000             10
    99.900              0
    99.990              0
    99.999              0

使用組件51次可以產生沒有觀察到組件故障的機會為95%。

與 百萬分之一的組件故障可能性進行比較:

________________________
Maximum Number of Trials
________________________

Success ratio                           =  0.0000010
Maximum Number of "successes" permitted =  0


____________________________
Confidence        Max Number
 Value (%)        Of Trials
____________________________
    50.000         693146
    75.000         287681
    90.000         105360
    95.000          51293
    99.000          10050
    99.900           1000
    99.990            100
    99.999             10

在這種情況下,即使使用這個組件 1000 次仍然會產生一個小於1/1000的組件故障率(換句話說,沒有故障的可能性為99.9% )。


PrevUpHomeNext