Advertisement
Guest User

Untitled

a guest
Jan 1st, 2020
348
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.41 KB | None | 0 0
  1. def z_test(trials, successes, alpha):
  2.     p1 = successes[0]/trials[0]
  3.     p2 = successes[1]/trials[1]
  4.     p_combined = (successes[0] + successes[1]) / (trials[0] + trials[1])
  5.     difference = p1 - p2
  6.     z_value = difference / mth.sqrt(p_combined * (1 - p_combined) * (1/trials[0] + 1/trials[1]))
  7.     distr = st.norm(0, 1)
  8.     p_value = (1 - distr.cdf(abs(z_value))) * 2
  9.     if p_value > alpha:
  10.         return [True, p_value]
  11.     else:
  12.         return [False,p_value]
  13.  
  14. exp = [248, 246]
  15. alpha = 0.05
  16. trials = [int(events_pivot[events_pivot['exp_id'] == i]['Total']) for i in exp]
  17. for event in events:
  18.     succes = [int(events_pivot[events_pivot['exp_id'] == i][event]) for i in exp]
  19.     result = z_test(trials, succes, alpha)
  20.     print(f'Тест на равенство долей для групп {exp} и события {event}')
  21.     dif_loc = round((succes[0] / trials[0] - succes[1] / trials[1]) * 100, 2)
  22.     print(f'Метрика по данному событию отличается от комбинированнай контрольной группы на {dif_loc}%')
  23.     print(f'Alpha={alpha}')
  24.     print(f'P-value={result[1]}')
  25.     if result[0]:
  26.         print('Нет оснований считать доли неравными')
  27.     else:
  28.         print('Между долями есть существенная разница')
  29.     print('-------------------------------------------')
  30.     print('')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement