Как маркетологу сделать бутстрэппинг и зачем?
Как обычно, начну с определения, что маркетологу нужно работать по наитию не опираясь на данные, чтобы не плодить конкурентов. Предположим, вы запустили, новый проект, и через 7 дней выяснили, что конверсия составляет 1.08%. В голове естественные вопросы: 1. Это много или мало? 2. Достаточно ли 7 дней, чтобы сделать верные выводы?
Загуглив находим, что бывает: Статистический бутстрапинг - метод многократной случайной выборке из исходных данных. Бутстрапинг в программировании — процесс инициализации системы или программы. Бизнес-бутстрапинг — запуск компании без внешних внешних средств, с минимальными ресурсами.
Т.к. бизнес и программирование маркетолога не особо интересует, будем делать выборки из данных, чтобы оценить распределение конверсии или любой другой случайной величины. Т.к. количество данных часто ограничено, то бутстрэппинг это полезный инструмент для работы с малыми выборками. Тем более, что знать форму распределения случайной величины совершенно не обязательно.
Возьмем данные из live-demo, которое показывает посещаемость страницы metrica.yandex.com/promo/product. Просто скачаем данные по прямой ссылке (нужно иметь аккаунт в Яндексе).
Я напишу код на Питоне. Сначала загрузим данные:
И выберем данные за последние 7 дней:
Результат:
(можно просто скопировать)
Визуализируем:
В pandas бутстрэппинг делается методом:
С параметрами:
n=n_size - количество элементов, которые нужно выбрать (если не указывать, выбирается по умолчанию одна строка)
Т.к. выборка довольно маленькая, укажем:
frac=1: доля от общего числа элементов, которые нужно выбрать. Если бы было указано, например, frac=0.5, то выбралось бы 50% от всех данных. Параметр frac конфликтует с параметром n, поэтому нужно указать или n или frac.
replace=True: выборка с возвращением. Это значит, что один элемент может быть выбран несколько раз.
Количество итераций можно взять достаточно большое, хоть 1 млн. На Маке М1 2020 года выпуска займет 40 секунд. Но и 10 тыс. итераций будет достаточно.
И итоговый код примет следующий вид:
Результат выполнения:
Оригинальное среднее: 1.0884%
Бутстрэппинг среднее: 1.0885%
Доверительный интервал 95%: 0.8946% - 1.2638%
Т.е. получается, что распределение вероятности конверсии лежит с уровнем значимости 95% лежит в интервале [0.89:1.26]? Проверим так ли это на самом деле, загрузив данные полностью:
Визуализируем:
Выполним код еще раз и получим:
Оригинальное среднее: 0.7541%
Бутстрэппинг среднее: 0.7542%
Доверительный интервал 95%: 0.6960% - 0.8156%
Видим, что новый доверительный интервал получился значительно уже, чем исходный, и первоначальное значение 1,08% лежит за переделами нового доверительного интервала, что намекает на следующие выводы:
1. 1,08% это довольно высокая конверсия, по сравнению с данными за 569 дней, т.к. средняя конверсия за этот период 0,75%.
2. Имея данные только за 7 дней, можно сделать выводы с определенной степенью уверенности, но в этом случае доверительный интервал будет шире, чем, чем за 569 дней.
3. Если взять данные за 1569 то доверительный интервал будет еще уже.
На этом все. Делайте правильные выводы основанные на данных.