Центральная предельная теорема

Центральная предельная теорема объясняет, почему нормальное распределение встречается повсюду: суммы и средние случайных величин стремятся к колоколу.

Центральная предельная теорема (ЦПТ): распределение среднего (или суммы) большого числа независимых случайных величин приближается к нормальному — независимо от того, как распределены сами величины.

Почему это поразительно

Это один из самых удивительных фактов математики. Исходные данные могут быть распределены как угодно — равномерно, кривобоко, дискретно. Но как только мы начинаем брать средние по выборкам, эти средние выстраиваются в аккуратный колокол. Поэтому нормальное распределение «вылезает» в стольких местах: рост, ошибки измерений, шум — всё это суммы множества мелких независимых вкладов.

Эксперимент: средние равномерных чисел

Возьмём заведомо НЕ нормальное распределение — равномерное на [0, 1] (плоское, никакого колокола). Будем много раз брать выборку из 30 чисел и считать её среднее. Посмотрим, как распределены эти средние.

import random, statistics
random.seed(0)

def sample_mean(n):
    return statistics.mean(random.random() for _ in range(n))   # равномерное [0,1]

# 10000 выборочных средних, каждое по 30 чисел
means = [sample_mean(30) for _ in range(10000)]

print("Среднее всех средних :", round(statistics.mean(means), 3), "(теория 0.5)")
print("Минимум и максимум   :", round(min(means), 3), "—", round(max(means), 3))

# Грубая гистограмма: считаем, сколько средних в каждой корзине
from collections import Counter
buckets = Counter(round(m, 1) for m in means)
for b in sorted(buckets):
    print(f"{b:.1f}: {'#' * (buckets[b] // 150)}".rstrip())

Вывод:

Среднее всех средних : 0.5 (теория 0.5)
Минимум и максимум   : 0.281 — 0.672
0.3:
0.4: ###########
0.5: ###########################################
0.6: ###########
0.7:

Хотя сами числа равномерны (плоские), их средние образуют колокол с пиком на 0.5 — ровно как предсказывает ЦПТ. Симметрично, с убыванием к краям.

Стандартная ошибка среднего

ЦПТ даёт и количественную формулу. Разброс выборочных средних (его называют стандартной ошибкой) меньше разброса исходных данных в sqrt(n) раз: SE = σ / sqrt(n). Чем больше выборка, тем кучнее средние вокруг истины — снова видим, почему «больше данных» означает «точнее оценка».

import random, statistics, math
random.seed(1)

# σ равномерного [0,1] равна 1/sqrt(12)
sigma = 1 / math.sqrt(12)

for n in [10, 30, 100]:
    means = [statistics.mean(random.random() for _ in range(n)) for _ in range(5000)]
    empirical_se = statistics.pstdev(means)
    theoretical_se = sigma / math.sqrt(n)
    print(f"n={n:3}: SE эмпирическая = {round(empirical_se, 4)}, теория = {round(theoretical_se, 4)}")

Вывод:

n= 10: SE эмпирическая = 0.0912, теория = 0.0913
n= 30: SE эмпирическая = 0.0533, теория = 0.0527
n=100: SE эмпирическая = 0.0286, теория = 0.0289

Эмпирический разброс средних почти точно совпал с формулой σ/sqrt(n), и с ростом n он падает: учетверишь выборку — вдвое точнее оценка.

Зачем это в ML

ЦПТ — фундамент статистического вывода в ML. На ней стоят доверительные интервалы и проверка значимости (A/B-тесты: «улучшение реально или это шум?»). Она же объясняет, почему ошибки моделей часто моделируют нормальным распределением, и почему усреднение предсказаний (ансамбли, бэггинг) снижает разброс по закону 1/sqrt(n).

Итог

  • ЦПТ: среднее многих независимых величин распределено почти нормально, какими бы ни были сами величины.
  • Поэтому колокол встречается везде — рост, шум, ошибки суть суммы мелких вкладов.
  • Стандартная ошибка среднего SE = σ/sqrt(n): больше выборка — кучнее средние.
  • ЦПТ — основа доверительных интервалов, A/B-тестов и ансамблей в ML.
Проверьте себя
1. Что утверждает центральная предельная теорема?
AВсе данные распределены нормально
BСреднее многих независимых величин распределено почти нормально, даже если сами величины — нет
CСумма вероятностей равна 1
DВыборка всегда равна совокупности
2. Как меняется стандартная ошибка среднего с ростом размера выборки n?
AРастёт пропорционально n
BУбывает как σ/sqrt(n) — больше выборка, кучнее средние
CНе зависит от n
DСтановится равной σ
3. Почему ЦПТ важна для ML?
AОна ускоряет обучение
BНа ней стоят доверительные интервалы, A/B-тесты и объяснение, почему усреднение (ансамбли) снижает разброс
CОна задаёт learning rate
DОна нужна только для линейной алгебры
Поддержать проект