Встречается на собеседованиях • сегодня

Как получить распределение конверсии в A/B тестах

Для получения распределения конверсии в A/B тестах можно использовать бутстреп или аналитическое приближение (нормальное/бета-распределение).

Бутстреп:

python
import numpy as np

def bootstrap_conversion(data, n_bootstrap=10000):
    bootstrapped_means = []
    for _ in range(n_bootstrap):
        sample = np.random.choice(data, size=len(data), replace=True)
        bootstrapped_means.append(np.mean(sample))
    return bootstrapped_means

Пример для группы A и B

conversion_A = np.random.binomial(1, 0.1, size=1000)
conversion_B = np.random.binomial(1, 0.12, size=1000)

dist_A = bootstrap_conversion(conversion_A)
dist_B = bootstrap_conversion(conversion_B)

text

**Бета-распределение (аналитически):**  
Если `conversions` – число успехов, `trials` – общее число наблюдений:  
```python
from scipy.stats import beta

conversions_A, trials_A = 100, 1000
conversions_B, trials_B = 120, 1000

beta_A = beta(conversions_A + 1, trials_A - conversions_A + 1)
beta_B = beta(conversions_B + 1, trials_B - conversions_B + 1)

Бета-распределение предпочтительнее для малых выборок, бутстреп – для непараметрических случаев.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы