Презентацию от Дмитрия Дерябина можно

advertisement
Практические аспекты
AB-тестирования
Дерябин Дмитрий
18 апреля 2016
О себе
2

Data Scientist в компании Derivco
(программное обеспечение для азартных игр)
В прошлом:
 Data Analyst в студии Hardlight, Sega of Europe
(разработка игр для мобильных устройств)
 Аналитик
в компании Xsolla (платежные
решения для онлайн игр)
О чем пойдет речь
3

Что и как мы тестировали в Hardlight

Что мы собираемся тестировать в Derivco

Чем опасен «классический» подход к
оцениванию результатов AB-тестов

Альтернативы классике
Студия Hardlight
4



Студия разрабатывает free to play игры для
мобильных устройств на iOS, Android, Windows
Входит в корпорацию Sega
Sonic Dash – самая популярная игра на сегодня
AB-тесты в Hardlight: система
5

Своя
разработка:
система
AB-тестирования
построена с нуля исключительно собственными
силами.

Начали с простого: первая версия системы для Sonic
Dash состояла из двух таблиц в БД и одного конфиг
файла.

Система стала внутренним стандартом: любая новая
игра по определению содержит функционал для
проведения экспериментов.
AB-тесты в Hardlight
6




Последовательные эксперименты: как правило,
новый тест запускался только после окончания
предыдущего.
Относительно большие группы: от 50 до 500 тысяч
пользователей в одной экспериментальной группе.
Размер экспериментальных групп фиксирован еще
до начала теста.
Основные метрики оценки: выручка, конверсия,
количество игр.
AB-тесты в Hardlight: выводы и ошибки
7
1.
Нет смысла тестировать
«оттенки серого». Только
ключевой функционал и
интерфейсы.
2.
При экспериментах на малых
выборках велик риск получить
«нестабильные» результаты. И
что еще хуже, об этом никто не
узнает.
AB-тесты в Hardlight: выводы и ошибки
8
3.
4.
Любой новый функционал
лучше протестировать, имея
несколько вариантов – ABC при
прочих равных
предпочтительней AB.
Главная ошибка:
использование только
стандартных методов
проверки статистических
гипотез.
Что и как мы собираемся тестировать в
Derivco
9

Если коротко, то всё: UI, UX, весь новый функционал

Планируем разработать гибкий инструмент в
сочетании с «виджетированием» продукта

Также планируем использовать:


Разные методики проведения экспериментов
Непараметрические методы оценки вместо стандартного
метода проверки гипотез
Классический метод оценивания тестов
10
1.
2.
3.
4.
5.
Формирование нулевой гипотезы H0 (например, что
разница конверсий между группами A и B статистически
не значима).
Формирование конкурирующей гипотезы H1 (разница
конверсий статистически значима).
Задание уровня значимости α – вероятность отклонить
H0, если она верна (5% и 1% - самые распространенные)
Расчет статистики теста (реальная разница конверсий,
полученная в рамках теста)
Допущение о виде распределения статистики теста (как
правило, нормальное или t-распределение)
Классический метод оценивания тестов
11
6.
Расчет доверительных интервалов для выбранного
ранее уровня значимости
7.
Если расчетное значение
статистики находится в
пределах доверительного
интервала, принимается
нулевая гипотеза H0. В
обратном случае,
отклоняется H0 и
принимается H1.
H1
H0
H1
Чем опасен такой подход?
12
Как правило, в реальных
экспериментах
[выборочные]
распределения интересующих
статистик (Conversion, ARPU, LTV,
Retention и т.д.) очень далеки от
нормального
или
tраспределения
=>
тест
неприменим.
Что же с этим делать?
13
1.
2.
3.
4.
Логарифмировать (если точно знаем,
что имеем дело с логнормальным
распределением).
Использовать другие распределения
(бета для конверсии, к примеру).
Другие тесты (критерий χ2, точный
тест Фишера)
Использовать “непараметрические”
методы (например, bootstrap или
Causal Impact)
Логарифмировать
14
Бета распределение
15
Бета-распределение (Wiki)
N = [количество пользователей]
α = [количество конверсий]
β=N–α
Бета-распределение для оптимизации CTR (англ.)
Критерий χ2, точный тест Фишера
16
Критерий χ2:
 Биномиальные величины
 Относительно большие выборки
Пример с кодом на R (автор - С. Мастицкий)
1.
Точный тест Фишера
 Биномиальные величины
 Нелинейный рост вычислительных затрат
 Есть одно- и двусторонние варианты
Пример с кодом на R (автор - С. Мастицкий)
2.
Bootstrap
17
Есть 2 группы: A и B, для которых мы хотим измерить
статистическую значимость разницы конверсий Δ = [СA – CB]
1. «Сваливаем» все наблюдения в одну кучу
2. Делаем выборки с возвращением в новые группы A1 и B1
того же размера, что A и B
4.
Считаем разницу конверсий Δ1 = [СA1 – CB1]
Повторяем 2 и 3 много раз (например, 105)
5.
Строим выборочное распределение значений Δi
6.
Если исходное значение Δ = [СA – CB] выходит за границы
доверительного интервала (выбор уровня значимости – за
вами), то разница конверсий значима. В обратном случае –
нет.
3.
Google Causal Impact
18
Описание пакета для R на GitHub (англ.)
Оригинальная статья (англ.): Brodersen et al., Annals of
Applied Statistics (2015).
На этом все
19
Спасибо!
Вопросы можно сюда: d.v.deryabin@gmail.com
Download