Створення функції сегментації для 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')