# Хто потрапляє в тест: тригери й кластерна рандомізація

> Хто має бути в A/B-тесті: включення за тригером, розбавлення і кластерна рандомізація цілих груп, коли користувачі впливають одне на одного.

- Курс: [Продуктова аналітика: від даних до рішень](https://productovi.com/uk/courses/product-analytics.md)
- Модуль: Чи спрацювала зміна?
- Урок 19/32, ~29 хв
- Джерело: https://productovi.com/uk/courses/product-analytics/who-is-in-the-test

## Розбавлення: чому тест нічого не знайшов

**Alex Tutor:** Maya має старий результат тесту в Halves, який розчарував команду, і просить тебе подивитися на нього ще раз: хто взагалі мав бути в цьому A/B-тесті?

**Maya:** Навесні ми тестували підказку «Зробити регулярним?». Коли хтось додає рахунок, що повторює рахунок минулого місяця з тією самою назвою й сумою, Halves пропонує повторювати його автоматично. Усіх, хто відкривав застосунок, ділили 50/50. Результат: частка пункту, інтервал перетинає нуль.

**Alex Tutor:** Подивімося, хто в ньому був. Із приблизно 34 000 щотижневих активних користувачів лише близько 5100 на тиждень додають рахунок, що повторює попередній. Це 15%. Решта 85% були в тесті, але ніяк не могли побачити підказку.

**Sofia:** Але ці 85% теж поділили порівну. Хіба вони просто не взаємно знищуються?

**Alex Tutor:** Вони знищуються в різниці, але не в шумі. Це **розбавлення (dilution)**: більша частина вибірки несе розкид і нульовий ефект, тож справжня зміна розмазується так тонко, що інтервал її ковтає.

![Одна крапля помаранчевої фарби майже зникає у великій ванні з водою, але помітно забарвлює маленьку склянку поруч.](https://productovi.com/courses/product-analytics/inline/who-is-in-the-test-illustration-2.webp)

*Розбавлення: користувачі, які не стикаються зі зміною, ховають її ефект у шумі.*

**Alex Tutor:** Спробуй. Серед тих, хто додає повторний рахунок, 24% налаштовують регулярний протягом тижня, а підказка додає 3 пункти. Який ефект серед усіх учасників тесту?

> **Вправа:** Навесні Halves тестував підказку «Зробити регулярним?», яка пропонує автоматично повторювати рахунок, коли користувач додає такий самий, як минулого місяця. Тест поділив усіх **34 000** щотижневих активних користувачів. **5100** з них додали повторний рахунок і могли побачити підказку; серед них вона підвищила налаштування регулярних рахунків на **+3 п. п.** На інших вона не впливала. Який ефект серед **усіх** учасників тесту, у відсоткових пунктах?

**Maya:** Ми тоді записали цей тест як «підказка не працює» і пішли далі. Це було хибно?

> **Вправа:** Навесні Halves тестував підказку «Зробити регулярним?», яку показують лише тоді, коли користувач додає рахунок, що повторює минуломісячний. Тест поділив усіх 34 000 щотижневих активних користувачів, з яких такий рахунок додали близько 5100. Результат — частка пункту, інтервал перетинає нуль. Яке речення **правильно** описує цей результат?

## Включення за тригером: рахувати з моменту, де починається зміна

**Alex Tutor:** Рішення — **включення за тригером (triggered enrollment)**: користувач потрапляє в аналіз у перший момент, коли дві версії можуть відрізнятися, тут — коли додає повторний рахунок. Фіксуй цей момент і в контролі, де підказка не з’являється. Варіант можна призначити раніше, але рахувати починаємо з тригера.

**Theo:** А скільки насправді коштувало ділити всіх?

**Alex Tutor:** Скористайся формулою з попереднього уроку. За тригером 24% → 27% потребує **3306** користувачів на варіант — два тижні повторних рахунків. Серед усіх частки стають 5,3% → 5,75%, і потрібно **40 414** на варіант, приблизно вдванадцятеро більше.

![Підказку можуть побачити лише 15% користувачів; якщо рахувати з тригера, потрібно 3306 користувачів на варіант замість 40 414 при поділі всіх.](https://productovi.com/courses/product-analytics/diagrams/m5-l3-triggered-enrollment-uk.png)

**Sofia:** А тригером може бути налаштування регулярного рахунку? Це ж саме ті, для кого функція.

**Alex Tutor:** Ні: підказка змінює, **хто** це робить. Тригер має відбуватися однаково в обох версіях, ще до того, як зміна почне діяти. Наш тест paywall живе за тим самим правилом: користувачі потрапляють у нього при першому `paywall_viewed`, а не при `trial_started`.

> **Вправа:** Підказка Halves «Зробити регулярним?» з'являється, коли користувач додає рахунок, що повторює минуломісячний, і пропонує повторювати його автоматично. Який тригер включення правильний для повторного тесту цієї підказки?

## Мережеві ефекти в A/B-тестах: коли користувачі ділять екран

**Maya:** Наступного кварталу хочемо протестувати **груповий план**: платить один учасник, а Plus отримують усі в групі. Так само ділимо 50/50 за користувачами?

**Alex Tutor:** Так не вийде. Уяви квартиру на трьох, розділену між варіантами. Один сусід у новому варіанті купує груповий план, і двоє в контролі отримують Plus безкоштовно. Контроль більше не контроль.

**Sofia:** А ще вони спілкуються. «Чому твій paywall пропонує груповий план, а мій — ні?»

**Alex Tutor:** Це **мережевий ефект (network effect)**: варіант одного користувача «протікає» в досвід іншого. Рішення — **кластерна рандомізація (cluster randomization)**: підкидаємо монетку для цілих груп, щоб усі учасники групи отримали той самий варіант.

![При поділі за користувачами груповий план одного сусіда дає Plus сусідам у контролі; при поділі за групами всі в квартирі отримують той самий варіант.](https://productovi.com/courses/product-analytics/diagrams/m5-l3-cluster-randomization-uk.png)

![Троє сусідів по квартирі на одному дивані зазирають у телефони одне одного; на одному екрані помаранчева пропозиція, якої в інших немає.](https://productovi.com/courses/product-analytics/inline/who-is-in-the-test-illustration-3.webp)

*Коли група має спільний баланс, ділити тест треба за групами, а не за людьми.*

> **Вправа:** Які зміни в Halves варто рандомізувати **цілими групами**, а не за користувачами? Вибери усі правильні варіанти.

## Скільки коштує кластерна рандомізація: дизайн-ефект

**Alex Tutor:** За це доводиться платити. Учасники однієї групи поводяться схоже: разом подорожують, разом платять оренду, разом ідуть. Троє сусідів дають менше інформації, ніж троє незнайомців.

![Троє сусідів по квартирі крокують вулицею в ногу з однаковими пакетами й однаковими чеками.](https://productovi.com/courses/product-analytics/inline/who-is-in-the-test-illustration-4.webp)

*Учасники однієї групи поводяться схоже, тож тест за групами потребує більше користувачів.*

**Alex Tutor:** **Дизайн-ефект (design effect)** показує, у скільки разів більше користувачів потрібно. m — середній розмір групи в тесті; ICC — наскільки схожі учасники, від 0 (незнайомці) до 1 (однакові).

$$
\text{DE} = 1 + (m - 1)\times \text{ICC}
$$

*Дизайн-ефект: помнож кількість користувачів, потрібну для тесту за користувачами, на DE.*

**Sofia:** Для Halves, скажімо, групи по 3 і ICC 0,15 з минулих даних про групи?

**Alex Tutor:** Тоді порахуй, починаючи з 6735 користувачів на варіант, які потрібні для тесту за користувачами.

> **Вправа:** Тесту за користувачами потрібно **6735** користувачів на варіант. Halves тестує груповий план (платить один учасник, Plus отримують усі в групі), рандомізований за групами: середній розмір **m = 3**, **ICC = 0,15**. Скільки **користувачів** на варіант потрібно? Округли угору.

**Alex Tutor:** Розмір групи важить не менше за ICC. Спробуй ринок, де групи трохи більші.

> **Вправа:** Halves тестує груповий план (платить один, Plus отримують усі), рандомізований за групами, на ринку, де в групі в середньому **m = 4** учасники. ICC так само **0,15**, а тесту за користувачами потрібно **6735** на варіант. Скільки **користувачів** на варіант? Округли угору.

## Аналізуй на рівні одиниці рандомізації

**Alex Tutor:** Ще одне правило. Якщо монетку підкидали для груп, в аналізі одиницею має бути група. Звичайний інтервал «за користувачами» вийде завузьким: надто впевненим щодо ефекту, який насправді хиткіший.

**Maya:** А тригер для групового плану?

**Alex Tutor:** Ті самі правила, що й раніше, тільки для групи. Спершу обміркуй самостійно.

> **Вправа:** Halves тестує груповий план, який пропонує paywall: платить один учасник, Plus отримують усі в групі. Тест рандомізують за групами. Коли **група** має потрапляти в тест?

**Alex Tutor:** Та сама ідея на рівні групи: група потрапляє в тест, коли будь-хто з учасників уперше бачить paywall. Відтоді в тесті вся група.

**Sofia:** Отже, перед кожним тестом: на кого зміна може вплинути, коли ці люди потрапляють у тест і для чого ми підкидаємо монетку: одиниця рандомізації.

> **Вправа:** У тесті, рандомізованому за групами, можна аналізувати користувачів так, ніби кожного рандомізували окремо: 8756 користувачів у групах по 3 (ICC 0,15) дають ту саму точність в обох випадках.

## Твоя черга

**Theo:** Моя ідея на літо: коли **групу для поїздки** створюють за кордоном, нові витрати за замовчуванням вносяться в місцевій валюті, а не в домашній валюті користувача.

**Alex Tutor:** Добрий кандидат для планування. Усі учасники додають витрати в ту саму групу і всі бачать ті самі баланси.

**Sofia:** Отже, знову три питання: хто, коли і яка одиниця.

> **Вправа:** Theo, маркетолог з росту в Halves, хоче протестувати влітку таку ідею: коли **групу для поїздки** створюють за кордоном, нові витрати за замовчуванням вносяться в місцевій валюті, а не в домашній валюті користувача. Усі учасники вносять витрати в ту саму групу й бачать ті самі баланси. Сплануй, хто потрапляє в тест Theo, у 3–5 реченнях: тригер включення, одиниця рандомізації і чому, а також що цей вибір означає для розміру тесту та його аналізу.

- Попередній урок: [Наскільки великий і наскільки довгий](https://productovi.com/uk/courses/product-analytics/test-size.md)
- Наступний урок: [Кейс: читаємо завершений тест](https://productovi.com/uk/courses/product-analytics/reading-a-test.md)

---
Productovi Learning. Безкоштовно, читати можна без реєстрації.
