This is related to the question posed here. If I have a 2x2 table where the cell counts are small (i.e. < 5), then I should use a Fisher's exact test. However, what motivates using simulate.p.value = TRUE (i.e. Monte Carlo simulation in this case)?

We resort to MC when we assume that the test conditions are not met, but what exactly are these conditions for the Fisher's exact test?

  • 1
    $\begingroup$ Fisher's test assumes row and column totals are fixed. $\endgroup$ Commented Apr 25, 2017 at 18:30

1 Answer 1


Literally, Fisher's exact test requires you to count all of the possible tables with the marginal totals you have. You then compute the proportion that are as extreme or more extreme than your observed dataset. That proportion is the p-value. If your $N$ is moderately high, it becomes too onerous to form and count all the possible permutations. However, simulating will give you an empirical estimate of the proportion that is very good. So at a certain point, simulating is a more convenient option. That is, this isn't really about the assumptions.

On the other hand, your belief that you have to use Fisher's test when you have small cell counts is common, but incorrect. For more on that, see: Alternatives for chi-squared test for independence for tables more than 2 x 2.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.