Перебор функцией уникальных значений в АБ тестировании
Подскажите, пожалуйста, мне необходимо создать функцию по перебору различных event_name для проверки гипотезы в ААБ тестировании. Есть составленные сводные таблицы, где А1 - первая контрольная группа, А2 - вторая контрольная, АА - общая контрольная, В - экспериментальная группа. Их все нужно сравнить по долям пользователей между собой. Вот пример сводной для А1
a1_pivot = a1.pivot_table(index='event_name', values = 'user_id', aggfunc = {'user_id':'nunique'})
Требуется перебрать следующие значения event_name:
CartScreenAppear
MainScreenAppear
OffersScreenAppear
PaymentScreenSuccessful
Tutorial
Пример код для единичного event_name:
alpha = .05 # критический уровень статистической значимости
successes = np.array([a1_pivot.query('event_name == "MainScreenAppear"'), a2_pivot.query('event_name == "MainScreenAppear"')])
trials = np.array([a1_pivot.sum(), a2_pivot.sum()])
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
print('p-значение: ', p_value)
if p_value < alpha:
print('Отвергаем нулевую гипотезу: между долями есть значимая разница')
else:
print('Не получилось отвергнуть нулевую гипотезу, нет оснований считать доли разными')