Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.66 KB | None | 0 0
  1. from scipy import stats
  2. import numpy as np
  3. import math
  4.  
  5. def check_hypothesis(successes1, successes2, trials1, trials2, alpha=0.01):
  6.     # пропорция успехов в первой группе:
  7.     p1 = successes1/trials1
  8.  
  9.     # пропорция успехов во второй группе:
  10.     p2 = successes2/trials2
  11.  
  12.     # пропорция успехов в комбинированном датасете:
  13.     p_combined = (successes1 + successes2) / (trials1 + trials2)
  14.  
  15.     # разница пропорций в датасетах
  16.     difference = p1 - p2
  17.    
  18.     # считаем статистику в ст.отклонениях стандартного нормального распределения
  19.     z_value = difference / math.sqrt(p_combined * (1 - p_combined) * (1/trials1 + 1/trials2))
  20.  
  21.     # задаем стандартное нормальное распределение (среднее 0, ст.отклонение 1)
  22.     distr = stats.norm(0, 1)
  23.  
  24.     # считаем статистику в ст.отклонениях стандартного нормального распределения
  25.     z_value = difference / math.sqrt(p_combined * (1 - p_combined) * (1/trials1 + 1/trials2))
  26.  
  27.  
  28.     p_value = (1 - distr.cdf(abs(z_value))) * 2
  29.  
  30.     print('p-значение: ', p_value)
  31.  
  32.     if (p_value < alpha):
  33.         print("Отвергаем нулевую гипотезу: между долями есть значимая разница")
  34.     else:
  35.         print("Не получилось отвергнуть нулевую гипотезу, нет оснований считать доли разными")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement