假設我將6面模具捲成60次,並分別爲數字1至6分別獲得16,5,9,7,6,15個角色。數字1和6顯示太多,並且there's only about a 1.8% chance of that being random。如果我使用Statistics::ChiSquare,它打印出:對Perl更好的卡方檢驗?
There's a >1% chance, and a <5% chance, that this data is random.
所以它不僅是一個糟糕的界面(我不能讓這些數字直接返回),但舍入誤差是顯著。
更糟的是,如果我滾動2個六方骰子怎麼辦?獲得任何特定數字的機率爲:
Sum Frequency Relative Frequency
2 1 1/36
3 2 2/36
4 3 3/36
5 4 4/36
6 5 5/36
7 6 6/36
8 5 5/36
9 4 4/36
10 3 3/36
11 2 2/36
12 1 1/36
Statistics::ChiSquare used to have a chisquare_nonuniform() function,但它被刪除。
所以數字四捨五入,我不能用它來分配不均勻。給出一個實際頻率的列表和一個預期的頻率列表,在Perl中計算卡方檢驗的最佳方法是什麼?我在CPAN上找到的各種模塊並不能幫助我,所以我猜我錯過了一些明顯的東西。
卡方檢驗是很簡單的數學直接,也許20行代碼來實現,我希望大多數人想要更直接的控制將做到這一點。對於1%,5%等的誤差範圍更難以計算,所以簡單的utils可能只是硬編碼P <0.01,P <0.05等值。我不會感到驚訝的是,在http://search.cpan.org/~mikek/Statistics-Distributions-1.02/Distributions.pm –