Создание функции сегментации для A/B-теста
На предыдущем уроке вы убедились, что ваш эксперимент с персонализацией обладает высокой статистической значимостью. Однако при проведении экспериментов важно проверять, как новые функции влияют на отдельные демографические группы. Иногда то, что привлекательно для одной группы, оказывается менее интересным для другой.
Поскольку вам потребуется сегментировать данные несколько раз, вы создадите функцию ab_segmentation(), которая анализирует влияние A/B-тестов на сегменты данных. Её можно будет использовать повторно всякий раз, когда понадобится провести подобный анализ.
Функция будет принимать название столбца и перебирать каждое уникальное значение в этом столбце, вычисляя прирост (lift) и статистическую значимость.
Это упражнение является частью курса
Анализ маркетинговых кампаний с помощью pandas
Инструкции к упражнению
- Добавьте цикл
forвнутрь функцииab_segmentation(), который перебирает каждое уникальное значение в столбцеsegment, указанном пользователем. - Выделите строки из
marketing, где маркетинговый канал равен'Email', а значение столбцаsegment, указанного пользователем, совпадает сsubsegment. - Выведите на экран результаты функций
lift()иstats.ttest_ind().
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
def ab_segmentation(segment):
# Build a for loop for each subsegment in marketing
for subsegment in ____:
print(subsegment)
# Limit marketing to email and subsegment
email = marketing[(marketing['marketing_channel'] == ____) & (marketing[segment] == ____)]
subscribers = email.groupby(['user_id', 'variant'])['converted'].max()
subscribers = pd.DataFrame(subscribers.unstack(level=1))
control = subscribers['control'].dropna().astype(float)
personalization = subscribers['personalization'].dropna().astype(float)
print('lift:', ____)
print('t-statistic:', ____, '\n\n')