Особенности A/B-тестирования

A/B-тестирование в R

Lauryn Burleigh

Data Scientist

Особенности A/B-тестирования

Используйте A/B, только если...

  • Достаточно субъектов/трафика
  • Есть время на разработку и тесты
  • Сформулирована чёткая гипотеза

Что учитывать при A/B-тестировании

  • Колебания данных
  • Количество переменных
  • Регрессия к среднему
A/B-тестирование в R

Колебания в данных

  • Для точности нужна репрезентативная выборка
  • Колебания влияют на результаты
    • Изменение состава участников
    • День недели
    • Праздники
    • Общественное мнение

Линейный график: сначала число вернувшихся пользователей падает, затем восстанавливается, а число новых растёт.

Число продаж возрастает в период зимних праздников.

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

A/B-тестирование в R

Пример колебаний

normaldist <- rnorm(10000) 
datasample <- sample(normaldist, 10)
ggplot() + 
    aes(datasample) +
    geom_histogram(bins = 8)

Гистограмма из 10 точек данных, распределённых по всей оси X.

Гистограмма из 10 точек данных со столбцами в начале, середине и конце оси X.

Гистограмма из 10 точек данных со столбцами преимущественно в середине оси X.

A/B-тестирование в R

Количество переменных

  • Одна переменная — оптимально
  • Одна начинка/одна переменная
    • Оценка отдельной начинки/условия
    • Сыр: контрольная переменная
    • Пепперони: тестируемая переменная
  • Две начинки/несколько переменных
    • Оценка сочетаний
    • Пары: болгарский перец и лук, оливки и чеснок
    • Нет контрольной группы

Пиццы с одной начинкой — сыр и пепперони — по 3 участника в группе; пиццы с двумя начинками — болгарский перец с луком и оливки с чесноком — по 3 участника в группе.

A/B-тестирование в R

Переменные и ошибка I рода

  • Больше переменных → больше анализов
    • Выше вероятность ошибки I рода
  • Стандартный уровень значимости: 5%
    • alpha: 0.05
    • Вероятность ошибки I рода — 5%
  • Уровень доверия: 100 − значимость
    • Используется для расчёта семейного уровня ошибок
      • 1 − вероятность отсутствия ложноположительных результатов

Расчёт семейного уровня ошибок

  • Уровень значимости: 5%
  • Уровень доверия: 95%
  • Число тестов: 10
1 - (1-0.05)^10

1 - (0.95)^10
0.40126306076

40%

A/B-тестирование в R

Регрессия к среднему

  • Экстремальные значения усредняются по мере накопления данных
  • Риск ошибки I рода
  • Сравнение с контрольной группой

Линейный график: поначалу много новых заявок, затем происходит регрессия к среднему по мере роста числа наблюдений.

Линейный график: в оригинальной группе число заявок не меняется, а в изменённой сначала резко растёт, затем регрессирует к среднему, приближаясь к уровню контрольной группы.

A/B-тестирование в R

Регрессия к среднему

  • Малые выборки дают неточные результаты
  • Риск ошибки I рода
  • Больше данных → ближе к истинному среднему
ID Удовольствие [1–10]
01 1
02 10
03 9
mean(c(1, 10))
5.5
mean(c(1, 10, 9))
6.6666
A/B-тестирование в R

Давайте потренируемся!

A/B-тестирование в R

Preparing Video For Download...