Точный критерий Фишера#
В [1], эффективная доза ацетазоламида для профилактики острой горной болезни была исследована. Исследование примечательно тем, что пришло к выводу:
Ацетазоламид 250 мг, 500 мг и 750 мг ежедневно были эффективны для предотвращения острой горной болезни. Ацетазоламид 250 мг был самой низкой эффективной дозой с доступными доказательствами для этого показания.
Следующая таблица суммирует результаты эксперимента, в котором некоторые участники принимали ежедневную дозу ацетазоламида 250 мг, а другие принимали плацебо.
Случаи острой горной болезни были зарегистрированы::
Ацетазоламид |
Контроль/Плацебо V |
|
|---|---|---|
Острая горная болезнь |
7 |
17 |
Нет |
15 |
5 |
Есть ли доказательства того, что ацетазоламид 250 мг снижает риск острой горной болезни?
Мы начинаем с формулировки нулевой гипотезы \(H_0\):
Шансы испытать острую горную болезнь одинаковы при лечении ацетазоламидом и при плацебо.
Оценим правдоподобность этой гипотезы с помощью
Fisher's test.
from scipy.stats import fisher_exact
res = fisher_exact([[7, 17], [15, 5]], alternative='less')
res.statistic
np.float64(0.13725490196078433)
res.pvalue
np.float64(0.0028841933752349743)
Используя уровень значимости 5%, мы отвергли бы нулевую гипотезу в пользу альтернативной гипотезы: «Шансы возникновения острой горной болезни при лечении ацетазоламидом меньше, чем шансы возникновения острой горной болезни при плацебо.»
Примечание#
Поскольку нулевое распределение точного критерия Фишера формируется в предположении, что суммы по строкам и столбцам фиксированы, результат теста является консервативным при применении к эксперименту, в котором суммы по строкам не фиксированы.
В этом случае суммы по столбцам фиксированы; в каждой группе 22 субъекта. Но количество случаев острой горной болезни не (и не может быть) фиксировано до проведения эксперимента. Это следствие.
Boschloo's test не зависит от
предположения, что суммы строк фиксированы, и, следовательно, предоставляет более
мощный тест в этой ситуации.
from scipy.stats import boschloo_exact
res = boschloo_exact([[7, 17], [15, 5]], alternative='less')
res.statistic
np.float64(0.0028841933752349743)
res.pvalue
np.float64(0.0015141406667567101)
Мы проверяем, что p-значение меньше, чем с fisher_exact.