Множественные Эксперименты: Теория И Практика

В современном мире сложно представить разработку продукта без A/B-тестирования.

Для успешного запуска продукта или нового функционала необходимо грамотно спроектировать A/B, просчитать и интерпретировать его результаты.

Иногда нам необходимо тестирование более чем двух групп.

В этой статье мы рассмотрим именно такой случай — множественное тестирование:

  • Давайте поговорим о том, когда и почему следует проводить несколько тестов;
  • Давайте рассмотрим основные методы расчета результатов испытаний и математические принципы, на которых основаны эти методы;
  • Приведем примеры программной реализации методов; Вы можете использовать эти примеры в своих проектах.

Итак, давайте начнем.



Множественные эксперименты: теория и практика



Множественные эксперименты: когда и почему

Очевидно, что любое техническое усложнение эксперимента должно быть оправдано практической необходимостью.

Это также относится к множественным тестам.

Если аудитория разделена более чем на две подгруппы, вероятность получения ошибки I рода в ходе эксперимента возрастает в геометрической прогрессии:

Множественные эксперименты: теория и практика

Где

Множественные эксперименты: теория и практика

- количество подгрупп,

Множественные эксперименты: теория и практика

— заданный уровень статистической значимости.

Таким образом, добавив к обычному парному тесту всего лишь одну дополнительную подгруппу (

Множественные эксперименты: теория и практика

) на заданном стандартном уровне

Множественные эксперименты: теория и практика

мы получаем вероятность ошибки I рода

Множественные эксперименты: теория и практика

, что значительно превышает заданное нами

Множественные эксперименты: теория и практика

.

Зачем проводить многочисленные эксперименты, если они снижают точность результатов исследования? Причин может быть несколько:

  1. Вы хотите протестировать несколько изменений и их совокупное влияние на показатели продукта.

    Пример — показ пользователю на странице сервиса двух новых элементов, расположенных по-разному относительно друг друга.

  2. Изменения можно тестировать только в течение одного периода времени, поскольку они взаимозависимы и чувствительны к еженедельной сезонности.

    Примером может служить отключение рекламных каналов для расчета эффекта межканальной каннибализации.

  3. Заказчик хочет максимально быстро и дешево получить ответ о том, какой вариант выбрать, при этом сэкономив время на разработке и реализации эксперимента.

Если мы столкнулись с одной из этих проблем и нам необходимо вычислить статистическую значимость для теста, нам необходимо принять во внимание необходимость внесения поправок на множественное тестирование.

Что это такое и как это правильно сделать, речь пойдет ниже.



Множественные эксперименты: особенности расчета



Базовые концепты

Рассмотрим общий случай, когда мы имеем дело с

Множественные эксперименты: теория и практика

гипотезы

Множественные эксперименты: теория и практика

,

Множественные эксперименты: теория и практика

о попарном равенстве медианы или среднего

Множественные эксперименты: теория и практика

подгруппы.

В этом случае возможны как правильные, так и неправильные результаты.



Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика

для каждого

Множественные эксперименты: теория и практика

гипотезы.

Представим результаты в виде эксперимента с матрицей путаницы:



Множественные эксперименты: теория и практика

не отклонен


Множественные эксперименты: теория и практика

отклоненный


Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика

истинный


Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика

неправильный


Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика

Таким образом, ошибочно отклонено

Множественные эксперименты: теория и практика

от

Множественные эксперименты: теория и практика

отвергли основные гипотезы.

На основе этих параметров мы введем два важных понятия ошибок, которые контролируются при многократном тестировании:

Множественные эксперименты: теория и практика

И

Множественные эксперименты: теория и практика

.

Вероятность групповой ошибки

Множественные эксперименты: теория и практика

Коэффициент семейных ошибок — это вероятность получения хотя бы одной ошибки типа I, которая определяется как:

Множественные эксперименты: теория и практика



Множественные эксперименты: теория и практика

(False Discovery Rate) – математическое ожидание отношения ошибок I рода к общему числу отклонений основной гипотезы:

Множественные эксперименты: теория и практика

Рассмотрим методы контроля этих ошибок на примере стандартного корпуса продукта.



Описание случая

В качестве простого примера рассмотрим эксперимент, в котором трем изолированным, непересекающимся группам пользователей были показаны три версии страницы с просьбой нажать кнопку вызова для получения рекламы.

Для удобства расчета в качестве основного показателя возьмем общее количество звонков в каждой группе.

Давайте посмотрим, как менялась исследуемая метрика:

Множественные эксперименты: теория и практика

Рис.

1. График динамики кликов по кнопке вызова Воспользуемся стандартным методом

Множественные эксперименты: теория и практика

чтобы привести распределение целевой метрики в выборках к нормальному виду, и посмотреть на гистограммы и диаграммы диапазона средних значений в выборках:

Множественные эксперименты: теория и практика

Рис.

2. Гистограмма распределения средних значений по группам

Множественные эксперименты: теория и практика

Рис.

3. Диаграмма размаха средних значений по группам Судя по графикам, группа С выигрывает по количеству нажатий кнопки вызова.

Однако необходимо убедиться, что результаты статистически значимы.

Для этого приведем расчетную метрику к виду нормального распределения и воспользуемся обычным t-критерием Стьюдента для попарного сравнения групп в эксперименте, а затем воспользуемся методами контроля.



Множественные эксперименты: теория и практика

И

Множественные эксперименты: теория и практика

для учета поправки на множественные сравнения.



ФВЭР-контроль

Существует множество способов борьбы с этой ошибкой, но наиболее распространенными являются два: 1) одноэтапная процедура с одновременной регулировкой

Множественные эксперименты: теория и практика

для всех гипотез, проверенных по методу Бонферрони; 2) последовательная итеративная корректировка

Множественные эксперименты: теория и практика

с принятием решения на каждом шаге в соответствии с результатом метода Холма.



1. Поправка Бонферрони

Эта одноэтапная процедура снижает вероятность ложноположительного результата эксперимента.

Суть метода заключается в принятии альтернативной гипотезы, если:

Множественные эксперименты: теория и практика

Где

Множественные эксперименты: теория и практика

— количество проверенных гипотез.

Метод можно довольно просто реализовать с помощью стандартной библиотеки.



Множественные эксперименты: теория и практика

:

  
  
   

from bootstrapped import bootstrap as bs from bootstrapped import compare_functions as bs_cmp from bootstrapped import stats_functions as bs_st bs_ab_estims = bs.bootstrap_ab(np.array(group_A), np.array(group_B), bs_st.mean bs_cmp.difference, num_iterations=5000, alpha=0.05/3, iteration_batch_size=100, scale_test_by=1, num_threads=4) bs_bc_estims = bs.bootstrap_ab(np.array(group_B), np.array(group_C), bs_st.mean bs_cmp.difference, num_iterations=5000, alpha=0.05/3, iteration_batch_size=100, scale_test_by=1, num_threads=4) bs_ac_estims = bs.bootstrap_ab(np.array(group_A), np.array(group_C), bs_st.mean bs_cmp.difference, num_iterations=5000, alpha=0.05/3, iteration_batch_size=100, scale_test_by=1, num_threads=4)

После получения результатов статистической оценки можно сделать выводы о том, различаются группы или нет. Основной недостаток подхода: чем больше подгрупп, тем ниже мощность критерия, что увеличивает вероятность принятия неверной гипотезы.

Например, для десяти тестов и

Множественные эксперименты: теория и практика

нужно получить

Множественные эксперименты: теория и практика

сказать, что разница существенная.

Чтобы смягчить эти недостатки, можно выбрать метод Холма.



2. Метод Холма

Это процедура последовательного изменения сверху вниз.



Множественные эксперименты: теория и практика

.

На первом шаге алгоритма метода реальные

Множественные эксперименты: теория и практика

отсортировано по возрастанию:

Множественные эксперименты: теория и практика

затем корректируется изначально указанный

Множественные эксперименты: теория и практика

-уровень:

Множественные эксперименты: теория и практика

после чего проверяется условие

Множественные эксперименты: теория и практика

и делается вывод, верна ли основная гипотеза

Множественные эксперименты: теория и практика

.

Точкой останова алгоритма является момент i, когда принимается первая основная гипотеза.



Множественные эксперименты: теория и практика

и все последующие

Множественные эксперименты: теория и практика

.

Этот метод можно реализовать с помощью процедуры

Множественные эксперименты: теория и практика

из библиотеки

Множественные эксперименты: теория и практика

с параметром

Множественные эксперименты: теория и практика

:

from bootstrapped import bootstrap as bs from bootstrapped import stats_functions as bs_st from scipy.stats import ttest_ind from statsmodels.sandbox.stats.multicomp import multipletests bs_a = bs.bootstrap(np.array(group_A), stat_func=bs_st.mean, num_iterations=10000, iteration_batch_size=300, return_distribution=True) bs_b = bs.bootstrap(np.array(group_B), stat_func=bs_st.mean, num_iterations=10000, iteration_batch_size=300, return_distribution=True) bs_c = bs.bootstrap(np.array(group_C), stat_func=bs_st.mean, num_iterations=10000, iteration_batch_size=300, return_distribution=True) stat_ab, p_ab = stats.ttest_ind(pd.DataFrame(bs_a), pd.DataFrame(bs_b)) stat_bc, p_bc = stats.ttest_ind(pd.DataFrame(bs_b), pd.DataFrame(bs_c)) stat_ac, p_ac = stats.ttest_ind(pd.DataFrame(bs_a), pd.DataFrame(bs_c)) print(sorted([p_ab, p_bc, p_ac])) print("FWER: " + str(multipletests(sorted([p_ab, p_bc, p_ac]), alpha=0.05, method='holm', is_sorted = True)))



контроль Рузвельта

Контроль

Множественные эксперименты: теория и практика

означает, что условие выполнено

Множественные эксперименты: теория и практика

.

В которой

Множественные эксперименты: теория и практика

, т.е.

вероятность получения ошибки I рода при контроле

Множественные эксперименты: теория и практика

уменьшается.



Метод Беньямини-Хохберга

Эта восходящая процедура предполагает последовательные изменения.



Множественные эксперименты: теория и практика

, предварительно отсортированные по возрастанию:

Множественные эксперименты: теория и практика

Тогда оригинал

Множественные эксперименты: теория и практика

-уровень корректируется по формуле:

Множественные эксперименты: теория и практика

затем, как и в методе Холма, проверяется условие

Множественные эксперименты: теория и практика

и делается вывод, верна ли основная гипотеза

Множественные эксперименты: теория и практика

и все последующие

Множественные эксперименты: теория и практика

.

Метод Беньямини-Хохберга, как и метод Холма, можно реализовать с помощью процедуры

Множественные эксперименты: теория и практика

:

print("FDR: " + str(multipletests([p_ab, p_bc, p_ac], alpha=0.05, method='fdr_bh', is_sorted = False)))



Заключение

В статье мы рассказали об основных методах оценки результатов множественных тестов и привели примеры программного кода, реализующего эти методы.

Надеемся, что вы провели время с пользой и интересом и сможете применить описанные процедуры на практике.

А если у вас возникнут вопросы, мы будем рады на них ответить.

Спасибо за внимание! Теги: #математика #Большие данные #аналитика #анализ данных #Аналитика мобильных приложений #ИТ-статистика #аналитика продуктов #A/B-тестирование #ab-тестирование #Bootstrap

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.