Fisher's exact test of 3x3 contingency tables permits calculation of precise probabilities in situation where, as a consequence of small cell frequencies, the much more rapid normal approximation and chi-square calculations are liable to be inaccurate. The Fisher's exact test involves the computations of several factorials to obtain the probability of the observed and each of the more extreme tables. Factorials growth quickly, so it's necessary use logarithms of factorials. In Matlab this is very easy using the Gammaln function. The function uses preallocation and vectorization to speed-up the computations. Actually, the function also computes the mid-P correction to make the test less conservative.
in my PC version it is correct. Bah! I uploaded it again
line 146: you must use "<=" not "<"
i.e., the line should read:
(You want to sum across all probabilities that are less than or equal to the observed probability)
Thank you. If you need fisher onto 2x3 matrix it is on FEX: http://www.mathworks.com/matlabcentral/fileexchange/15399
In any case, you can use Myfisher that it is able to manage any kind of matrix
Elegant, fast, clean and accurate. Thanks!
Why not have myfisher32.m? Best wishes, B.-
Minor bug correction
Changes in description
Actually, the function also computes the mid-P correction to make the test less conservative.
Improvements in table enumeration
Changes in help section
6-fold speed up using preallocation