When should you execute Fisher exact test, not chi-square test?

You should not execute chi-square test but Fisher exact probability test when gland total of cross tabulation was smaller than 20 or one or greater than one cells had smaller than 5 expected value. In this article, I would like to describe how to solve expected value. Expected value is calculated with marginal total.

We have cross tabulation below;

  TRUE FALSE Marginal total
POSITIVE a b a + b
NEGATIVE c d c + d
Marginal total a + c b + d N 

Expected value of each cells is below;

  TRUE FALSE Marginal total
POSITIVE (a + b)*(a + c)/N (a + b)*(b + d)/N a + b
NEGATIVE (c + d)*(a + c)/N (c + d)*(b + d)/N c + d
Marginal total a + c b + d N 

How to calculate Fisher’s exact test with logarithm?

χ二乗検定ではなく Fisher の直接確率検定を行うべき状況とは

 クロス表(四分表)を見て,各セルの期待値が 5 未満の割合が 20 % 以上存在する場合や,総数 N が 20 未満の場合にはχ二乗検定ではなく Fisher の直接確率検定を行うべきであるとされています.この辺り,本来なら Fisher の直接確率検定を行いたいが計算コストが高すぎてχ二乗検定で代用せざるを得なかった経緯があるのではないかと考えます.

 ここでは各セルの期待値を求める方法を述べます.一見して明らかですが,期待値は周辺度数 (marginal total) のみから算出されます.

 下表のようなクロス表があるとします.

  TRUE FALSE Marginal total
POSITIVE a b a + b
NEGATIVE c d c + d
Marginal total a + c b + d N 

 各セルの期待値は下記の通りです.

  TRUE FALSE Marginal total
POSITIVE (a + b)*(a + c)/N (a + b)*(b + d)/N a + b
NEGATIVE (c + d)*(a + c)/N (c + d)*(b + d)/N c + d
Marginal total a + c b + d N 

参照記事
対数を用いてFisherの直接確率検定を計算するには