File Exchange

image thumbnail

MyFisher24

version 2.0.0.0 by Giuseppe Cardillo
A very compact routine to compute Fisher's exact test on a 2x4 matrix

3 Downloads

Updated 06 Apr 2018

GitHub view license on GitHub

Fisher's exact test of 2x4 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. This computations is very easy in Matlab because x!=gamma(x+1) and log(x!)=gammaln(x+1). This function is now fully vectorized to speed up the computation. Actually, the function also computes the mid-P correction to make the test less conservative.

Comments and Ratings (3)

Jon

Giuseppe thank you for your quick response.
Your routine takes all my data now.
Jon

Jon was right. I have fixed the bug and uploaded the new version

Jon

I get error messages for some data.
For instance:
y =
27 13 9 15
12 10 3 16
>> myfisher24(y)
??? Attempted to access idxBstart(15); index out of bounds because
numel(idxBstart)=14.
Error in ==> myfisher24 at 116
Tables(idxBstart(J+1):idxBstop(J+1),2)=J;

I hope this can be fixed?
Jon

Updates

2.0.0.0

inputparser; table implementation; github link

1.5.0.0

Changes in description

1.4.0.0

Actually, the function also computes the mid-P correction to make the test less conservative.

1.3.0.0

Bug fixed after Jon comment

1.2.0.0

little improvements in tables enumeration

1.1.0.0

Changes in help section

1.0.0.0

Speeding up using gammaln function and vectorization

MATLAB Release Compatibility
Created with R2014b
Compatible with any release
Platform Compatibility
Windows macOS Linux