Распределение Бернулли простыми словами

Проверь себя · 1/3разбор после ответа
Что делает bootstrap на одном шаге, чтобы получить одну реплику статистики?

Зачем это знать

Распределение Бернулли — самое простое в статистике, но именно его структура лежит за всем: A/B-тесты, классификация, churn, конверсия. Любая бинарная метрика (купил/не купил, кликнул/не кликнул) — это Бернулли.

На собесах middle+ часто спрашивают про биномиальное распределение. А биномиальное — это сумма N независимых Bernoulli. Без Бернулли нет биномиального, без биномиального — нет A/B-теста.

Короткое объяснение

Бернулли — одна проба с двумя исходами: «успех» (1) с вероятностью p или «провал» (0) с вероятностью 1-p.

Пример: один подброс монеты. Орёл = 1 (p = 0.5), решка = 0 (1-p = 0.5).

Формула

P(X = 1) = p
P(X = 0) = 1 - p

Характеристики

  • Среднее (mean): p
  • Дисперсия (variance): p × (1 - p)
  • Стандартное отклонение: √(p × (1 - p))

Пример в аналитике

Конверсия сайта = 10%. Каждый пользователь либо купил (p = 0.1), либо нет (0.9).

Это Бернулли с p = 0.1.

Variance = 0.1 × 0.9 = 0.09. Std = 0.3.

Связь с биномиальным

Если N пользователей приходят независимо, и каждый — Bernoulli(p), то общее число покупок — биномиальное B(N, p):

Покупки = X1 + X2 + ... + XN
где Xi ~ Bernoulli(p)

Mean = N × p. Variance = N × p × (1-p).

Пример расчёта

10 пользователей, каждый конвертится с вероятностью 0.2. Сколько ожидаемых покупок?

E[X] = 10 × 0.2 = 2 покупки.

Подготовься к собесу по A/B и статистике
300+ вопросов с разбором: дизайн, размер выборки, p-value, ловушки
Тренировать A/B в Telegram

В A/B-тестах

Конверсия — эмпирическая оценка p в Bernoulli.

p̂ = число конвертировавшихся / N

Стандартная ошибка для разницы пропорций:

SE = √(p̂_1 × (1 - p̂_1) / N_1 + p̂_2 × (1 - p̂_2) / N_2)

Основано на дисперсии Бернулли.

В ML

Бинарная классификация — предсказываем Бернулли: вероятность класса 1.

Log-loss — это negative log-likelihood для Bernoulli.

В Python

from scipy.stats import bernoulli
import numpy as np

# Симуляция 1000 подбросов с p = 0.3
samples = bernoulli.rvs(p=0.3, size=1000)
print(samples.mean())  # ~0.3
print(samples.var())   # ~0.21 = 0.3 * 0.7

На собесе

«Что такое Бернулли?» Одна бинарная проба с вероятностью успеха p.

«Дисперсия Бернулли?» p × (1-p). Максимум при p = 0.5.

«Связь с биномиальным?» Сумма N независимых Bernoulli(p) = B(N, p).

«Где встречается?» Любая бинарная метрика: клик, покупка, ответ «да/нет».

Частые ошибки

Путать с биномиальным

Бернулли — одна проба. Биномиальное — сколько успехов в N пробах.

Дисперсия = p × q

Не p^2 и не p. Многие путают.

Максимум неопределённости

Максимум дисперсии при p = 0.5 (дисперсия = 0.25). При p → 0 или 1 дисперсия → 0.

Забыть про независимость проб

Если наблюдения зависимы (например, несколько кликов одного пользователя) — это уже не IID-Бернулли, формулы A/B ломаются.

Ожидать нормальности при малых N

При маленьком N распределение средних ещё далеко от нормального — z-test работает плохо.

Связанные темы

FAQ

Пример Бернулли в жизни?

Бросок монеты, конверсия, клик по баннеру, ответ «да/нет» в опросе.

Бернулли ≠ биномиальное?

Бернулли — одна проба. Биномиальное — сумма N Бернулли.

Зачем это аналитику?

Любая бинарная метрика — Бернулли. Основа A/B-тестов и классификации.