Центральная предельная теорема простыми словами
users.phone иногда попадают значения с ведущими/хвостовыми пробелами. Вы фильтруете WHERE phone = '+79991234567', но часть пользователей не находится. Как исправить фильтр?Содержание:
Зачем это знать
ЦПТ — причина, по которой работают почти все ваши A/B-тесты. Данные могут быть любыми (бимодальные, скошенные, цензурированные), но среднее выборки всё равно будет почти нормально распределено — и это позволяет использовать t-test, z-test, доверительные интервалы.
На собесах middle+ аналитика вопрос «почему t-test работает на ненормальных данных?» — проверка понимания ЦПТ. Без ответа — минус.
Короткое объяснение
Центральная предельная теорема (ЦПТ): среднее N независимых случайных величин распределено приблизительно нормально, если N достаточно велико — независимо от исходного распределения.
Ключевое слово: среднее. Не сами значения, а их средние.
Формальная запись
Если X1, X2, ..., XN — независимы и одинаково распределены со средним μ и дисперсией σ²:
(X̄ - μ) / (σ / √N) → N(0, 1) при N → ∞Или: X̄ ≈ Normal(μ, σ² / N) для большого N.
Визуально
Бросьте кубик 1 раз — распределение равномерное от 1 до 6.
Бросьте кубик 10 раз, возьмите среднее, повторите 1000 раз — распределение этих средних уже похоже на колокол.
Даже равномерное → нормальное через усреднение. Вот магия.
Что значит «достаточно велико»
Правило большого пальца: N ≥ 30.
Для почти нормальных данных — хватит 10. Для сильно скошенных — нужно 100+.
Пример: e-commerce
Размер заказа на вашем сайте:
- Минимум 100 ₽, максимум 50 000 ₽
- Распределение: тяжёлый правый хвост (в основном маленькие, редко большие)
Это НЕ нормальное. Но:
Средний чек за день — для N = 100 заказов в день — будет приблизительно нормальным.
Вот почему мы можем строить доверительный интервал для среднего чека, делать A/B-тесты.
В Python
import numpy as np
import matplotlib.pyplot as plt
# Исходное: равномерное
data = np.random.uniform(0, 10, 100000)
# Средние по 30 значений, 10000 раз
means = [np.mean(np.random.choice(data, 30)) for _ in range(10000)]
# means — нормальное, хотя data — равномерное!Где используется
A/B-тесты
Даже если метрика не нормальная (конверсия, выручка), средние по группам — нормальные. t-test работает.
Доверительные интервалы
ДИ для среднего строится через допущение нормальности:
CI = X̄ ± 1.96 × (σ / √N)Проверка гипотез
Z-test, t-test полагаются на ЦПТ.
Bootstrap
Альтернатива ЦПТ для малых N или сложных статистик.
Условия
- Независимость — наблюдения не влияют друг на друга
- Конечная дисперсия — σ² < ∞ (Коши нарушает)
- Одинаковое распределение — все из одного распределения (IID)
Если условия нарушены — ЦПТ может не работать.
Пример, когда не работает
Распределение Коши — нет среднего, нет дисперсии. Среднее Коши — тоже Коши, не нормальное.
На практике встречается редко, но важно помнить.
На собесе
«Что такое ЦПТ?» Среднее из IID-величин → нормальное при N → ∞.
«Зачем?» Позволяет использовать t-test на ненормальных данных.
«Какое N достаточно?» Обычно 30+. Для скошенных — больше.
«Что если дисперсия бесконечна?» ЦПТ не работает. Использовать тесты для распределения Коши или преобразования.
Частые ошибки
ЦПТ про средние, а не про данные
Даже если X не нормальное, X̄ для большого N — нормальное. Но сами X остаются ненормальными.
Игнорировать IID
Если наблюдения зависимы (временные ряды), ЦПТ может требовать корректировки.
Слишком маленькое N
Для N = 5 на экспоненциальном распределении — распределение средних ещё не нормальное. Нужно N = 50+.
Применять ЦПТ к сильно тяжёлым хвостам при малом N
Доход, выручка на клиента — могут быть настолько скошены, что 30 не хватит. Проверяйте через QQ-plot или bootstrap.
Путать ЦПТ и закон больших чисел
ЗБЧ говорит: среднее сходится к матожиданию. ЦПТ говорит: распределение средних сходится к нормальному. Это разные вещи.
Связанные темы
- Нормальное распределение
- p-value простыми словами
- Bootstrap простыми словами
- t-test простыми словами
- Доверительный интервал
FAQ
Всегда N ≥ 30?
Нет, это правило большого пальца. Для сильно скошенных данных — 100+.
ЦПТ для медианы?
Медиана тоже стремится к нормальному, но с другой дисперсией.
Почему именно нормальное?
Из-за математики: сумма многих независимых эффектов → нормальное через свёртку распределений.