Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from scipy import stats
- import numpy as np
- import math
- def check_hypothesis(successes1, successes2, trials1, trials2, alpha=0.01):
- # пропорция успехов в первой группе:
- p1 = successes1/trials1
- # пропорция успехов во второй группе:
- p2 = successes2/trials2
- # пропорция успехов в комбинированном датасете:
- p_combined = (successes1 + successes2) / (trials1 + trials2)
- # разница пропорций в датасетах
- difference = p1 - p2
- # считаем статистику в ст.отклонениях стандартного нормального распределения
- z_value = difference / math.sqrt(p_combined * (1 - p_combined) * (1/trials1 + 1/trials2))
- # задаем стандартное нормальное распределение (среднее 0, ст.отклонение 1)
- distr = stats.norm(0, 1)
- # считаем статистику в ст.отклонениях стандартного нормального распределения
- z_value = difference / math.sqrt(p_combined * (1 - p_combined) * (1/trials1 + 1/trials2))
- p_value = (1 - distr.cdf(abs(z_value))) * 2
- print('p-значение: ', p_value)
- if (p_value < alpha):
- print("Отвергаем нулевую гипотезу: между долями есть значимая разница")
- else:
- print("Не получилось отвергнуть нулевую гипотезу, нет оснований считать доли разными")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement