![](/img/trans.png)
[英]How to use rayleigh_distribution<> from boost library in c++?
[英]How do I use chi square distribution with C++ Boost library?
我查看了Boost網站上的例子,但它們並不是我想要的。
簡單來說,我想看一下骰子上的數字是否有利於使用600卷,所以每個數字(1到6)的平均外觀應為100。
我想使用卡方分布檢查模具是否公平。
救命!,我該怎么辦呢?
假設e [i]和o [i]是保持6種可能性中的每種可能性的預期和觀察到的滾數的陣列。 在您的情況下,每個箱子的e [i]為100,o [i]是您在600次試驗中滾動的次數。
然后,通過在6個區間上求和(e [i] -o [i]) 2 / e [i]來計算卡方統計量。 讓我們說你的o [i]陣列在進行了600次試驗后得出了105,95,102,98,98和102個計數。
志2 = 5 2/100 + 5 2/100 + 2 2/100 + 2 2/100 + 2 2/100 + 2 一百分之二 = 0.660
你有五個自由度(箱數減去1)。 所以你會有一個類似的聲明
boost::math::chi_squared mydist(5);
創建表示卡方分布的Boost對象。
此時,您將使用來自Boost庫的cdf
訪問器函數(累積分布函數)來查找對應於具有五個自由度的.660的卡方分數的p值。
p = boost::math::cdf(mydist,.660);
你應該得到接近0.015的東西,這將被解釋為(1 - .015)= 98.5%觀察卡方評分的概率至少與0.660一樣極端,如果假設零假設(死是公平的)持有。 因此,對於這組數據,不能以任何合理的置信水平拒絕零假設。 (免責聲明:未經測試的代碼!但如果我正確理解Boost文檔,那么它應該如何工作。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.