Точный тест Фишера (точный критерий Фишера, Fisher's exact test)
20 августа 2026 Время чтения ≈ 11 мин.
Точный тест Фишера проверяет связь между двумя признаками в маленькой таблице, где приближённые методы уже врут. Вероятность он считает не по приближению, а перебором всех вариантов, отсюда и слово «точный» в названии.
Тест почти всегда приходит на замену другому, поэтому начать стоит с карточки про критерий хи-квадрат, а практика анализа таблиц разобрана в статье Хи-квадрат по данным опроса.
Что делает точный тест Фишера
Проверяемая гипотеза та же, что у хи-квадрата: признаки независимы, доли в группах равны, отношение шансов равно единице. Отличается только способ получить вероятность.
Тест закрепляет итоги таблицы сопряжённости по строкам и столбцам, а затем перебирает все таблицы, которые с такими итогами вообще возможны. У каждой считается вероятность выпасть при отсутствии связи, эти вероятности берутся из гипергеометрического распределения. Дальше складываются вероятности вашей таблицы и всех, чья вероятность не больше её, и полученная сумма это и есть p-значение.
Слово «точный» тут техническое и означает ровно одно: распределение, по которому считается вероятность, известно целиком, а не приближается другим распределением. У хи-квадрата вероятность берётся из непрерывного распределения, которое к дискретным частотам подходит тем хуже, чем меньше числа в ячейках. У Фишера приближения нет вообще.
Откуда взялось название
Тест придумал Рональд Фишер и впервые изложил в 1934 году, в пятом издании «Статистических методов для исследователей», а годом позже разобрал его на примере спора за чаем в «Дизайне эксперимента». Коллега Фишера Мюриэль Бристол утверждала, что на вкус различает, налили в чашку сначала молоко или сначала чай. Фишер предложил проверку: восемь чашек, в четырёх молоко налито первым, испытуемая знает пропорцию и должна назвать эти четыре. Угадать все четыре случайно можно с вероятностью один к семидесяти, то есть около 0,014, и именно эта арифметика перебора вариантов стала тестом.
Насколько вероятно, что вы порекомендуете нас коллеге?
Вот и всё — такой опрос собирается за пару минут, а индекс WebAsk считает сам.
Создать свой опросВ литературе встречается имя «тест Фишера-Ирвина»: к той же идее независимо пришёл Джозеф Ирвин в 1935 году. Ещё годом раньше её описал Фрэнк Йейтс, но в название теста он не попал, зато его имя носит та самая поправка на непрерывность для хи-квадрата. И не стоит путать этот тест с F-критерием Фишера, который сравнивает дисперсии и работает в ANOVA, это разные инструменты одного автора.
Как он считается
Проще один раз посмотреть на маленькую таблицу. Допустим, вы сравниваете два филиала по пять сотрудников в каждом, и условиями довольны четверо из десяти. При таких закреплённых итогах возможны всего пять таблиц: от «в первом филиале нет ни одного довольного» до «в первом филиале довольны четверо». Тест считает вероятность каждой и складывает те, что не вероятнее вашей.
Разница с приближением видна сразу. Точный тест даёт p = 0,048, результат едва проходит порог. Хи-квадрат на той же таблице выдаёт 0,010 и выглядит гораздо убедительнее, хотя ожидаемые частоты здесь всего 2 и 3.
Дальше начинается путаница с поправками. У хи-квадрата есть поправка Йейтса на непрерывность, придуманная как раз для того, чтобы подтянуть приближение к точному тесту, и часть программ применяет её на таблицах 2×2 по умолчанию, в том числе функция chisq.test в R. С поправкой то же расхождение даёт уже p = 0,053, то есть результат оказывается консервативнее самого Фишера. Вывод практический: на мелких числах считайте точный тест и указывайте в отчёте, какой вариант применяли, иначе числа не сойдутся у вас и у коллеги.
Односторонний и двусторонний вариант
Как и у других тестов, у Фишера есть сторона. Односторонний вариант отвечает на вопрос «не выше ли доля в первой группе», двусторонний на вопрос «различаются ли группы вообще». В примере выше это 0,024 против 0,048. Ровно вдвое получилось потому, что итоги таблицы там симметричны, и зеркальный перекос имеет ту же вероятность. В общем случае двусторонний p не равен удвоенному одностороннему.
Двусторонний вариант считают по-разному, и это регулярный источник расхождений между программами. Самый частый способ, он же по умолчанию в R, складывает вероятности всех таблиц, у которых вероятность не больше наблюдаемой. Другой способ просто удваивает односторонний результат. На несимметричных таблицах числа получаются разными, поэтому сторону и способ выбирают до расчёта, а не после того, как увидели p.
Когда его берут вместо хи-квадрата
- Ожидаемая частота меньше пяти на таблице 2×2. Классический случай и самый частый повод. Смотрят именно на ожидаемые частоты: пустая ячейка в ваших данных сама по себе не повод менять тест.
- Маленькая выборка целиком. При нескольких десятках ответов приближение шатко почти всегда, независимо от того, как разложились частоты.
- Редкий сегмент. Выборка большая, но интересующая группа крошечная: тридцать корпоративных клиентов против трёх тысяч частных, десять уволившихся против двух сотен работающих.
Для таблиц больше 2×2 существует обобщение, тест Фишера-Фримена-Холтона, но перебор там растёт быстро, поэтому в статпакетах он либо считается долго, либо заменяется симуляцией методом Монте-Карло. Порог «меньше пяти» тоже относится к таблицам 2×2: у больших таблиц свои требования к разреженным ячейкам, они собраны в карточке про критерий хи-квадрат.
Ограничения
- Тест консервативен. Из-за того, что итоги таблицы закреплены, а вероятностей конечное число, фактическая доля ложных срабатываний оказывается ниже заявленной. На практике это означает, что реальный эффект тест иногда не замечает. Причина глубже, чем дискретность: закрепляя оба итога таблицы, тест считает заданным то, что в опросе на самом деле случайно, ведь число подписавшихся вы заранее не назначали. Отсюда и растут альтернативы: mid-p, который берёт половину вероятности наблюдённой таблицы вместо целой, и более мощный тест Барнарда для таблиц 2×2.
- Наблюдения должны быть независимыми. Один респондент попадает в одну ячейку. Если у вас два замера одной группы, нужен тест Макнемара, а не Фишер.
- Силу связи он не измеряет. Рядом с тестом приводят отношение шансов с точным доверительным интервалом: на таблице 2×2 это штатный размер эффекта. Если в одной из ячеек ноль, само отношение уходит в бесконечность, и смысл несёт только интервал. На таблицах больше 2×2 силу связи меряют V Крамера.
- Малые числа остаются малыми. Точный расчёт не добавляет данных: на выборке из десяти человек честный p просто окажется большим. Тест защищает от ложного вывода, но не заменяет нужный объём выборки.
Как получают p на мелкой таблице
| Способ | Что делает | Чем платит |
|---|---|---|
| Точный тест Фишера | перебирает все таблицы с теми же итогами | консервативен, теряет мощность |
| Mid-p | берёт половину вероятности вашей таблицы | строгой гарантии уровня уже нет |
| Тест Барнарда | не закрепляет второй итог таблицы | считается дольше |
| Хи-квадрат с поправкой Йейтса | подтягивает приближение к точному тесту | часто перестраховывается |
| Фишер-Фримен-Холтон | тот же перебор для таблиц больше 2×2 | вариантов становится слишком много |
| Симуляция Монте-Карло | оценивает вероятность случайными таблицами | ответ чуть меняется при повторе |
Выбор почти всегда сводится к первым двум строкам таблицы и к самой верхней альтернативе: если данных хватает, берут хи-квадрат, он проще и работает на таблицах любого размера, а если не хватает, берут точный тест и не пытаются починить приближение поправками. Всё остальное нужно в двух случаях: когда точному тесту не хватает мощности и когда таблица больше 2×2. Весь список проверок до расчёта собран в статье про хи-квадрат.
Как это сделано в WebAsk
Собрать данные можно любым закрытым вопросом, а дальше всё решает размер частот. Калькулятор хи-квадрата сам предупредит, что на вашей таблице приближение уже неточно. Перебор он не делает, поэтому такие таблицы считают в статпакете или в онлайн-калькуляторе точного теста, а из WebAsk забирают выгрузку с частотами.
Проще всего до этой ситуации не доводить. Прикиньте объём выборки заранее калькулятором размера выборки, соберите ответы в конструкторе WebAsk и проверьте, что в каждом сегменте, который планируете сравнивать, набралось хотя бы несколько десятков человек.
Частые вопросы
Что такое точный тест Фишера простыми словами?
Это способ проверить связь в маленькой таблице, честно перебрав все расклады, которые могли бы получиться при тех же итогах. Тест считает, насколько редким оказался ваш расклад, если между признаками связи нет. В отличие от хи-квадрата он ничего не приближает, поэтому на мелких числах не завышает значимость. Платит он за это мощностью: реальный, но небольшой эффект такой тест скорее пропустит.
Почему тест называется точным?
Потому что вероятность считается по известному распределению целиком, а не приближается другим. Хи-квадрат подставляет непрерывное распределение вместо дискретных частот, и на мелких числах это даёт заметную ошибку. Точный тест такой подстановки не делает, но и стоит дороже: приходится перебирать варианты.
Когда брать Фишера, а когда хи-квадрат?
Ориентир один: ожидаемые частоты. Если на таблице 2×2 хотя бы одна ожидаемая частота меньше пяти, берут Фишера. Если частоты крупные, берут хи-квадрат, он проще и работает на таблицах любого размера, хотя и там за разреженными ячейками надо следить. Считают при этом ожидаемые частоты, а не те, что видны в таблице.
Можно ли применять точный тест к большой таблице?
Формально да, обобщение называется тестом Фишера-Фримена-Холтона. Но число возможных таблиц растёт очень быстро, поэтому расчёт становится тяжёлым, и программы либо считают его долго, либо оценивают ответ симуляцией. На крупных частотах в этом нет смысла: там хи-квадрат даёт практически тот же результат.
Почему у меня в R и в онлайн-калькуляторе разные p?
Чаще всего из-за стороны теста и способа считать двусторонний вариант. R по умолчанию складывает вероятности всех таблиц, не превосходящих наблюдаемую по вероятности, а часть калькуляторов просто удваивает односторонний результат. На несимметричных таблицах эти числа расходятся, поэтому в отчёте стоит указывать, какой вариант вы применяли.
Тест Фишера точнее, значит он лучше?
Не всегда. Из-за закреплённых итогов тест консервативен: он реже ошибается в сторону ложной находки, но чаще пропускает реальный эффект. На крупных частотах хи-квадрат даёт тот же вывод и считается проще, а если мощности не хватает, берут mid-p или более мощный тест Барнарда.
Что делать, если данных совсем мало?
Точный тест сохранит честность вывода, но не добавит информации: скорее всего p окажется большим, и различие останется недоказанным. Правильный ход это планировать объём выборки заранее, а решение объединить мелкие категории принимать до расчёта и по содержательной логике, а не после того, как увидели p.
Опубликовано 20 августа 2026
Алексей Логинов 