Зарегистрируйтесь, чтобы продолжить обучение

AB-тесты Статистическая значимость

В этом уроке мы обсудим AB-тестирование.

Как и ранее в курсе, возьмем два интерфейса — A и B. Попробуем определить, какой из них больше нравится пользователям. Для этого проведем эксперимент — покажем оба интерфейса двум независимым группам клиентов, а затем соберем данные об изменениях в их поведении.

Наша задача — выбрать самый лучший вариант и обосновать этот выбор. Чтобы это сделать нужно оценить надежность данных, собранных для обоих интерфейсов.

Нулевой гипотезой в нашем случае будет отсутствие зависимости между данными по кликам, а альтернативной - что между интерфейсами A и B есть разница.

Расчет статистических параметров

Представим, что по итогам тестирования мы получились следующую таблицу для версии A. Поле user_id - id пользователя сайта, а clicks - число кликов, которое он совершил на странице до ключевого действия, например, добавления товара в корзину.

user_id clicks
1 10
2 7
3 8
4 10
5 10
6 7
7 8
8 9
9 5
10 7

И аналогичную таблицу для версии В:

user_id clicks
11 12
12 11
13 10
14 11
15 13
16 9
17 12
18 11
19 10
20 14

Агрегируем данные:

clicks count_of_clicks
5 1
7 3
8 2
9 1
10 3

И также для второй таблицы

clicks count_of_clicks
9 1
10 2
11 3
12 2
13 1
14 1

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

clicks count_of_clicks probability P(x)
5 1 0.1
7 3 0.3
8 2 0.2
9 1 0.1
10 3 0.3

Теперь рассчитаем математическое ожидание как сумму произведений значений на их вероятности.

Также рассчитаем дисперсию выборки как

где X(i) значения в оригинальной (не агрегированной) таблице, M(x) мат.ожидание, а N размер оригинальной выборки, равный 10

Тогда, стандартное отклонение σ, корень из дисперсии, будет равно 1.663329993

Если вы работаете в Google таблицах, то стандартное отклонение можно получить с помощью функции STDEV(<диапазон выборки>)

Сделаем аналогичные расчеты для второго теста и перейдем к расчету критерия Стьюдента. Получим `

  • M₂ = 11.3,
  • D₂ = 2.233333333,
  • σ₂ = 1.494434118

result

Критерий Стьюдента

Первый шаг — проверка распределения данных для определения их нормальности. В этом помогает t-распределение Стьюдента — это способ описания данных, которые при построении графика дает колоколообразную кривую (наибольшее число наблюдений находится вблизи среднего значения, наименьшее — в хвостах). Это разновидность нормального распределения, используемая при небольших объемах выборки, когда дисперсия данных неизвестна.

Критерий Стьюдента (t-коэффициент или t-критерий) — это количество стандартных отклонений от среднего значения в t-распределении. Обычно критерий Стьюдента можно найти в t-таблице или с помощью онлайн-калькулятора.

В статистике критерий Стьюдента помогает определить два параметра:

  • Верхнюю и нижнюю границу доверительного интервала, когда данные распределены приблизительно нормально
  • P-значение тестовой статистики для t-тестов и регрессионных тестов

Критерий Стьюдента позволяет определить, насколько случайны изменения в выборках и насколько они связаны друг с другом. Для примера представим, что при использовании интерфейса B появляются изменения в среднем чеке. Если вероятность ошибки невелика, то данные оказываются статистически значимыми — значит интерфейс B работает лучше.

Формула t-критерия Стьюдента для независимых выборок выглядит так:

crit student

Рассмотрим ее подробнее:

  • M₁ — среднее арифметическое первой выборки
  • M₁ — среднее арифметическое первой выборки
  • M₂ — среднее арифметическое второй выборки
  • σ₁ — стандартное отклонение первой выборки
  • σ₂ — стандартное отклонение второй выборки
  • N₁ — объем первой выборки
  • N₂ — объем второй выборки

Подставим полученные ранее данные, и рассчитаем критерий:

t statistic

P-значение

Далее мы рассмотрим P-значение. Это уровень значимости, который показывает, с какой вероятностью данные подтверждают нулевую гипотезу.

Уровень значимости задается на начальном этапе и определяет максимальную вероятность совершения ошибки. Критические значения также определяются на основе этого уровня значимости и степени свободы. Если t-статистика меньше критического значения, то гипотеза о случайном характере изменений подтверждается — интерфейс B считается предпочтительным. В противном случае, мы выбираем интерфейс A.

Уровень значимости обычно составляет 5% или 1%, в очень редких случаях это 0,1%. Этот уровень доверия определяет, какие значения t будут считаться статистически значимыми. Чем ниже уровень значимости P, тем более строго анализируются данные и тем меньший разброс данных считается значимым.

Анализ исключает 5% значений на краях — они не учитываются при использовании выбранного уровня значимости. Вместо этого, анализ фокусируется на 95% наиболее часто встречающихся значений в выборке. Это позволяет оценить статистическую значимость изменений, исключить случайные факторы и сделать точный вывод о том, какой из интерфейсов предпочтительнее.

Обычно для определения значимости полученное значение критерия Стьюдента сравнивается с табличным.

Наш критерий равен 4.5254834, что больше табличного значения 3.922 для количества степеней свободы (N1 + N2) - 2. Получается, что уровень значимости меньше 0.001. При уровне меньше 0.05 мы делаем вывод о наличии различий между тестами и подтверждаем альтернативную гипотезу — "интерфейс B отличается от интерфейса A".

Практика

Посчитаем дисперсию и мат.ожидание для каждого из интерфейсов

SELECT
    version,
    SUM(category_count * probability) AS mo1,
    SUM(POWER(category_count,2) * probability) - POWER(SUM(category_count * probability), 2) as d1
FROM clickstream_ab
WHERE version = 1
GROUP BY 1
ORDER BY 1;
version mo1 d1
1 389.1 16755.44

Ссылка на пример с вычислениями

Повторим расчеты для второго интерфейса

SELECT
    version,
    SUM(category_count * probability) AS mo2,
    SUM(POWER(category_count,2) * probability) - POWER(SUM(category_count * probability), 2) as d2
FROM clickstream_ab
WHERE version = 2
GROUP BY 1
ORDER BY 1;
version mo2 d2
2 489.1 16755.44

Ссылка на пример с вычислениями

Сведем значения в одну таблицу с помощью CROSS JOIN

v1 mo1 d1 v2 mo2 d2
1 389.1 16755.44 2 489.1 16755.44

Ссылка на пример с вычислениями

Теперь рассчитаем коэффициент Стьюдента.

t_stat
0.5462

Ссылка на пример с вычислениями

Следующее, что нам нужно было сделать, посчитать уровень степеней свободы. Оно из себя представляет сумму n1 плюс n2 минус 2. Получаем 18. Теперь нам нужно сравнить соответственно с критическим значением и сделать вывод для уровня значимости 0.05. И критическое значение на пересечении нужного на уровне значимости и степени свободы составляет 2.101.

Теперь давайте подведем небольшой итог. Итак, гипотеза h0. Т-тест не показывает расхождения между выборками, так как тест-статистика, вычисляемая меньше критического. Данные в обеих группах распределены нормально. И возмущение носит случайный характер. Утверждение о том, что данные в обеих группах распределены нормально, мы еще выяснили на прошлом вебинаре. Там мы строили как один из способов доказательства корректности AB-тестирования две гистограммы. И видели, что распределение нормальное.

Альтернативная гипотеза H1 была в том, что тест показывает значительное расхождение между выборками. Это произошло бы, если бы у нас статистика была больше критического. Это обозначало, что данные в обеих группах распределены ненормально, а их возмущение носит зависимый характер.

Мы приняли для наших тестовых данных гипотезу H0 и поняли, что AB-тестирование успешно. То есть мы по сути приняли гипотезу H0.


Дополнительные материалы

  1. Таблица p-значений для t-теста Стьюдента

Для полного доступа к курсу нужен базовый план

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

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff