Как выполнить биномиальный тест в Python


Биномиальный тест сравнивает пропорцию выборки с гипотетической пропорцией.

Например, предположим, что у нас есть шестигранный кубик. Если мы бросим его 12 раз, мы ожидаем, что число «3» появится в 1/6 случаев, что будет 12 * (1/6) = 2 раза.

Если число «3» на самом деле выпадает 4 раза, является ли это доказательством того, что кубик смещен в сторону числа «3»? Мы могли бы выполнить биномиальный тест, чтобы ответить на этот вопрос.

В Python мы можем выполнить биномиальный тест, используя функцию binom_test() из библиотеки scipy.stats, которая использует следующий синтаксис:

binom_test(x, n=Нет, p=0,5, альтернатива='двусторонний')

куда:

  • x: количество «успехов»
  • n: общее количество испытаний
  • p: вероятность успеха в каждом испытании
  • альтернатива: альтернативная гипотеза. По умолчанию используется «двусторонний», но вы также можете указать «больше» или «меньше».

Эта функция возвращает p-значение теста. Мы можем загрузить эту функцию, используя следующий синтаксис:

from scipy.stats import binom_test

В следующих примерах показано, как выполнять биномиальные тесты в Python.

Пример 1: Мы бросаем шестигранный кубик 24 раза, и он выпадает на число «3» ровно 6 раз. Выполните биномиальный тест, чтобы определить, смещена ли кость в сторону числа «3».

Нулевая и альтернативная гипотезы для нашего теста следующие:

H 0 : π ≤ 1/6 (игральная кость не смещается в сторону числа «3»)

Н А : π > 1/6

* π - символ доли населения.

Мы введем следующую формулу в Python:

binom_test(x= 6 , n= 24 , p= 1/6 , alternative='greater')

0.1995295129479586

Поскольку это значение p (0,1995) не меньше 0,05, мы не можем отвергнуть нулевую гипотезу. У нас нет достаточных доказательств, чтобы сказать, что кость смещена в сторону числа «3».

Пример 2: Мы подбрасываем монету 30 раз, и она выпадает орлом ровно 19 раз. Выполните биномиальный тест, чтобы определить, смещена ли монета в сторону орла.

Нулевая и альтернативная гипотезы для нашего теста следующие:

H 0 : π ≤ 1/2 (монета не смещена в сторону орла)

Н А : π > 1/2

Мы введем следующую формулу в Python:

binom_test(x= 19 , n= 30 , p= 1/2 , alternative='greater')

0.10024421103298661

Поскольку это значение p (0,10024) не меньше 0,05, мы не можем отвергнуть нулевую гипотезу. У нас нет достаточных доказательств, чтобы сказать, что монета смещена в сторону орла.

Пример 3: Магазин производит виджеты с эффективностью 80%. Они внедряют новую систему, которая, как они надеются, повысит эффективность. Они случайным образом выбирают 50 виджетов из недавнего производственного цикла и обнаруживают, что 47 из них эффективны. Выполните биномиальный тест, чтобы определить, приводит ли новая система к более высокой эффективности.

Нулевая и альтернативная гипотезы для нашего теста следующие:

H 0 : π ≤ 0,80 (новая система не приводит к увеличению эффективности)

Н А : π > 0,80

Мы введем следующую формулу в Python:

binom_test(x= 47 , n= 50 , p= 0.8 , alternative='greater')

0.005656361012155314

Поскольку это значение p (0,00565) меньше 0,05, мы отвергаем нулевую гипотезу. У нас есть достаточно доказательств, чтобы сказать, что новая система ведет к повышению эффективности.