Центральная предельная теорема простыми словами
Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.
Зачем это знать
ЦПТ — причина, по которой работают почти все ваши A/B-тесты. Данные могут быть любыми (bimodal, skewed, censored), но среднее выборки всё равно будет почти нормально распределено — и это позволяет использовать t-test, z-test, confidence intervals.
На собесах middle+ аналитика вопрос «почему t-test работает на non-normal данных?» — проверка понимания ЦПТ. Без ответа — downgrade.
Короткое объяснение
Центральная предельная теорема (ЦПТ): среднее N независимых случайных величин распределено приблизительно normally, если N достаточно велико — независимо от исходного распределения.
Ключевое слово: среднее. Не сами значения, а их средние.
Формальная запись
Если X1, X2, ..., XN — IID с mean μ и variance σ²:
(X̄ - μ) / (σ / √N) → N(0, 1) при N → ∞Или: X̄ ≈ Normal(μ, σ² / N) для большого N.
Визуально
Бросайте кубик 1 раз — distribution: uniform от 1 до 6.
Бросайте кубик 10 раз, берите среднее, повторите 1000 раз — distribution этих средних: bell curve.
Даже uniform → normal через averaging. Вот магия.
Что значит «достаточно велико»
Rule of thumb: N ≥ 30.
Для почти normal данных — хватит 10. Для сильно skewed — нужно 100+.
Пример: e-commerce
Order value на вашем сайте:
- Minimum 100 ₽, maximum 50 000 ₽
- Distribution: heavy right tail (mostly маленькие, редко большие)
Это НЕ normal. Но:
Средний чек за день — для N = 100 заказов в день — будет approximately normal.
Вот почему мы можем строить CI для среднего чека, делать A/B-тесты.
В Python
import numpy as np
import matplotlib.pyplot as plt
# Исходное: uniform
data = np.random.uniform(0, 10, 100000)
# Средние по 30 значений, 10000 раз
means = [np.mean(np.random.choice(data, 30)) for _ in range(10000)]
# means — normal, хотя data — uniform!Где используется
A/B-тесты
Даже если метрика не normal (conversion, revenue), средние по группам — normal. Т-тест ok.
Confidence интервалы
CI для среднего строится на allowance нормальности:
CI = X̄ ± 1.96 × (σ / √N)Hypothesis testing
Z-test, t-test полагаются на ЦПТ.
Bootstrap
Альтернатива ЦПТ для малых N или сложных статистик.
Условия
- Независимость — наблюдения не влияют друг на друга
- Конечная дисперсия — σ² < ∞ (Cauchy нарушает)
- Identical distribution — все из одного распределения (IID)
Если условия нарушены — ЦПТ может не работать.
Пример когда не работает
Cauchy distribution — no mean, no variance. Среднее Cauchy — тоже Cauchy, не normal.
В практике встречается редко, но важно помнить.
На собесе
«Что такое ЦПТ?» Среднее из IID величин → normal при N → ∞.
«Зачем?» Позволяет использовать t-test на non-normal данных.
«Какое N достаточно?» Обычно 30+. Для skewed — больше.
«Что если variance бесконечен?» ЦПТ не работает. Использовать Cauchy-тесты или transformations.
Частые ошибки
ЦПТ про данные, не про средние
Даже если X не normal, X̄ для большого N — normal. Но сами X остаются не-normal.
Игнорировать IID
Если наблюдения зависимы (time series), ЦПТ может требовать корректировки.
Too small N
Для N = 5 на exponential — распределение средних ещё не normal. Нужно N = 50+.
Связанные темы
- Нормальное распределение
- p-value простыми словами
- Bootstrap простыми словами
- t-test простыми словами
- Доверительный интервал
FAQ
Всегда N ≥ 30?
Нет, это rule of thumb. Для символьно skewed данных — 100+.
ЦПТ для медианы?
Медиана тоже стремится к normal, но с другой variance.
Почему именно normal?
Из-за mathematics: сумма многих независимых эффектов → normal из-за convolutions.
Тренируйте статистику — откройте тренажёр с 1500+ вопросами для собесов.