Одно из условий применимости рассмотренного ранее критерия \(\chi^2\) состоит в том, что ожидаемые частоты в любой из ячеек таблицы сопряженности не должны быть меньше 5 (Гланц 1999). При небольшом числе наблюдений, это условие может не выполняться, и тогда более корректным подходом (с точки зрения получаемых Р-значений) будет использование точного теста Фишера (Fisher’s exact test). Он основан на переборе всех возможных вариантов заполнения таблицы сопряженности при имеющейся численности групп, и поэтому чем эта численность меньше, тем проще выполнить соотвествующие вычисления. Так, вероятность получить некоторую таблицу сопряженности размером 2х2 равна
\[P = \frac{{R}_{1}!{R}_{2}!{C}_{1}!{C}_{2}!}{N!({O}_{11}!{O}_{12}!{O}_{21}!{O}_{22}!)}\]


Столбец 1
Столбец 2
Суммы по строкам
Строка 1
\({O}_{11}\)
\({O}_{12}\)
\({R}_{1}\)
Строка 2
\({O}_{21}\)
\({O}_{22}\)
\({R}_{2}\)
Суммы по столбцам
\({C}_{1}\)
\({C}_{2}\)
\(N\)


В приведенной формуле \({R}_{1}\) и \({R}_{1}\) – маргинальные суммы по строкам, а \({C}_{1}\) и \({C}_{1}\) – маргинальные суммы по столбцам таблицы сопряженности. \({O}_{11}\), \({O}_{12}\), \({O}_{21}\) и \({O}_{22}\) – частоты в соответствующих ячейках таблицы. \(N\) - общее число наблюдений. Знак \(!\), как известно, означает факториал. Построив все остальные варианты заполнения таблицы, возможные при имеющихся маргинальных суммах, рассчитывают соответствующие вероятности по приведенной формуле. Вероятности, которые не превышают вероятность исходной таблицы, суммируют (включая вероятность исходной таблицы). Полученная сумма и будет вероятностью \(P\) для двустороннего варианта точного теста Фишера. Приведенный ниже пример из книги Стентона Гланца (Гланц 1999) поможет лучше понять суть того, как работает этот тест (изначально данные из этого примера были опубликованы в работе McKinney et al. 1989).





Точный тест Фишера, в отличие от критерия \(\chi^2\), имеет одно- и двусторонний варианты. Большинство авторов используют односторонний вариант - возможно потому, что он дает меньшие значения \(P\), что обычно выглядит более привлекательно в публикациях. Но даже при таком предвзятом подходе многие авторы, к сожалению, оставляют читателя в неведении по поводу того, каким именно вариантом теста они пользовались. McKinney et al. (1989) подсчитали, насколько часто в статьях из двух известных медицинских журналов указан вариант точного теста Фишера:

Журнал
Варинт теста указан
Вариант теста не указан
Всего
New England Journal of Medicine
1
8
9
Lancet
10
4
14
Всего
11
12
23

Как видим, число наблюдений невелико, и критерий \(\chi^2\) применять здесь нельзя. Поэтому для анализа использования точного теста Фишера мы применим сам этот тест. По приведенной выше формуле рассчитаем вероятность получить наблюдаемый набор чисел в клетках таблицы сопряженности при имеющихся значениях сумм по строкам и столбцам:

\[P = \frac{9!14!11!12!}{23!(1!8!10!4!)} = 0.00666\]

Теперь возьмем наименьшее из чисел в клетках таблицы сопряженности (это 1 - на пересечении первой строки и первого столбцв) и уменьшим его на 1. Числа в остальных клетках при этом должны быть изменены так, чтобы маргинальные суммы по строкам и столбцам остались неизменными:

Журнал
Варинт теста указан
Вариант теста не указан
Всего
New England Journal of Medicine
0
9
9
Lancet
11
3
14
Всего
11
12
23

Вероятность новой таблицы составит:

\[P = \frac{9!14!11!12!}{23!(0!9!11!3!)} = 0.00027\]

Поскольку наименьшее число в новой таблице равно 0, дальше его уменьшать невозможно. Соответственно, односторонний вариант точного теста Фишера даст \(P = 0.00666 + 0.00027 = 0.00693\).

Для получения двустороннего варианта теста необходимо перебрать и все остальные возможные варианты заполнения таблицы сопряженности (при неизменных маргинальных суммах), каждый раз рассчитывая соответствующую вероятность. Для рассматриваемого примера мы получили бы еще 8 таблиц, для двух из которых вероятности не превысили бы вероятность исходного заполнения таблицы - \(P = 0.00242\) и \(P = 0.00007\). Таким образом, кроме исходного у нас есть ещи три варианта "маловероятного" заполнения таблицы. Просуммировав все соответствующие вероятности, получим \(P = 0.00666+0.00027+0.00242+0.00007 = 0.0094\). Это и есть Р-значение двустороннего точного варианта критерия Фишера. Согласно полученному результату, мы можем заключить, что различие частоты правильного использования точного критерия Фишера в журналах New England Journal of Medicine и Lancet статистически значимо.

В R для выполнения точного теста Фишера служит функция fisher.test(). Подобно функции  chisq.test()fisher.test() принимает в качестве основного аргумента матрицу, соответствующую таблице сопряженности:


X <- matrix(c(1, 10, 8, 4), ncol = 2)
X
     [,1] [,2]
[1,]    1    8
[2,]   10    4
 
fisher.test(X)
 
 Fisher's Exact Test for Count Data
 
data:  X 
p-value = 0.009423
alternative hypothesis: true odds ratio is not equal to 1 
95 percent confidence interval:
 0.001034782 0.656954980 
sample estimates:
odds ratio 
0.05851868

Как видим, полученное Р-значение оказалось практически таким же, как и рассчитанное "вручную" (p-value = 0.009423). Таким образом, у нас, опять-таки, есть все основания отклонить нулевую гипотезу о том, что частоты правильного использования точного критерия Фишера в журналах New England Journal of Medicine и Lancet не различаются. Дополнительную информацию по функции fisher.test() можно найти в ее справочном файле (команда ?fisher.test).



2 Комментарии

Илья написал(а)…
Спасибо вам, очень помогло!
Сергей написал(а)…
Вы вручную перебрали все таблицы. А как программе определить в каких пределах изменяется a?
Спасибо.
Новые Старые