Центральная предельная теорема простыми словами

Проверь себя · 1/3разбор после ответа
В 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 и статистике
300+ вопросов с разбором: дизайн, размер выборки, p-value, ловушки
Тренировать A/B в Telegram

Где используется

A/B-тесты

Даже если метрика не нормальная (конверсия, выручка), средние по группам — нормальные. t-test работает.

Доверительные интервалы

ДИ для среднего строится через допущение нормальности:

CI = X̄ ± 1.96 × (σ / √N)

Проверка гипотез

Z-test, t-test полагаются на ЦПТ.

Bootstrap

Альтернатива ЦПТ для малых N или сложных статистик.

Условия

  1. Независимость — наблюдения не влияют друг на друга
  2. Конечная дисперсия — σ² < ∞ (Коши нарушает)
  3. Одинаковое распределение — все из одного распределения (IID)

Если условия нарушены — ЦПТ может не работать.

Пример, когда не работает

Распределение Коши — нет среднего, нет дисперсии. Среднее Коши — тоже Коши, не нормальное.

На практике встречается редко, но важно помнить.

На собесе

«Что такое ЦПТ?» Среднее из IID-величин → нормальное при N → ∞.

«Зачем?» Позволяет использовать t-test на ненормальных данных.

«Какое N достаточно?» Обычно 30+. Для скошенных — больше.

«Что если дисперсия бесконечна?» ЦПТ не работает. Использовать тесты для распределения Коши или преобразования.

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

ЦПТ про средние, а не про данные

Даже если X не нормальное, X̄ для большого N — нормальное. Но сами X остаются ненормальными.

Игнорировать IID

Если наблюдения зависимы (временные ряды), ЦПТ может требовать корректировки.

Слишком маленькое N

Для N = 5 на экспоненциальном распределении — распределение средних ещё не нормальное. Нужно N = 50+.

Применять ЦПТ к сильно тяжёлым хвостам при малом N

Доход, выручка на клиента — могут быть настолько скошены, что 30 не хватит. Проверяйте через QQ-plot или bootstrap.

Путать ЦПТ и закон больших чисел

ЗБЧ говорит: среднее сходится к матожиданию. ЦПТ говорит: распределение средних сходится к нормальному. Это разные вещи.

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

FAQ

Всегда N ≥ 30?

Нет, это правило большого пальца. Для сильно скошенных данных — 100+.

ЦПТ для медианы?

Медиана тоже стремится к нормальному, но с другой дисперсией.

Почему именно нормальное?

Из-за математики: сумма многих независимых эффектов → нормальное через свёртку распределений.