Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def z_test(trials, successes, alpha):
- p1 = successes[0]/trials[0]
- p2 = successes[1]/trials[1]
- p_combined = (successes[0] + successes[1]) / (trials[0] + trials[1])
- difference = p1 - p2
- z_value = difference / mth.sqrt(p_combined * (1 - p_combined) * (1/trials[0] + 1/trials[1]))
- distr = st.norm(0, 1)
- p_value = (1 - distr.cdf(abs(z_value))) * 2
- if p_value > alpha:
- return [True, p_value]
- else:
- return [False,p_value]
- exp = [248, 246]
- alpha = 0.05
- trials = [int(events_pivot[events_pivot['exp_id'] == i]['Total']) for i in exp]
- for event in events:
- succes = [int(events_pivot[events_pivot['exp_id'] == i][event]) for i in exp]
- result = z_test(trials, succes, alpha)
- print(f'Тест на равенство долей для групп {exp} и события {event}')
- dif_loc = round((succes[0] / trials[0] - succes[1] / trials[1]) * 100, 2)
- print(f'Метрика по данному событию отличается от комбинированнай контрольной группы на {dif_loc}%')
- print(f'Alpha={alpha}')
- print(f'P-value={result[1]}')
- if result[0]:
- print('Нет оснований считать доли неравными')
- else:
- print('Между долями есть существенная разница')
- print('-------------------------------------------')
- print('')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement