Нормальное распределение простыми словами
Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.
Короткое объяснение
Нормальное распределение (гауссово, bell curve) — самый частый шаблон распределения в природе и статистике.
Форма — «колокол»: много значений около центра, мало на краях.
Свойства
1. Симметричное
Левый и правый хвост одинаковые.
2. Определяется двумя параметрами
- μ (mu) — среднее (центр колокола)
- σ (sigma) — стандартное отклонение (ширина колокола)
3. Mean = Median = Mode
Все три характеристики центра совпадают.
4. Без границ
Теоретически от −∞ до +∞.
Правило 68-95-99.7
В нормальном распределении:
- 68% значений лежат в пределах μ ± 1σ
- 95% — в μ ± 2σ (точнее 1.96σ)
- 99.7% — в μ ± 3σ
Пример: средний чек 1000 ₽, σ = 200.
- 68% чеков: [800; 1200]
- 95%: [600; 1400]
- 99.7%: [400; 1600]
Чек 1800 ₽ — 4σ от среднего. Вероятность ~0.01%. Возможно, выброс.
Примеры из жизни
- Рост людей (примерно нормально)
- IQ (специально нормализовано)
- Ошибки измерений
- Суммы большого количества случайных величин (благодаря ЦПТ)
Примеры НЕ-нормальных данных
- Доход / зарплата — скошенные, хвост вправо
- Размер чека — скошенные (много мелких, мало крупных)
- Время отклика сервера — хвост вправо
- LTV — киты искажают
- Retention curve — падающая экспонента
Standard Normal — частный случай
Нормальное с μ = 0, σ = 1. Обозначается N(0, 1).
Любое нормальное можно нормализовать:
z = (x − μ) / σZ — стандартное отклонение от среднего.
Zачем нужно в статистике
1. A/B-тесты
Классические тесты (t-test, z-test) предполагают нормальность. Для пропорций (CR) работает при больших выборках (благодаря ЦПТ).
2. Доверительные интервалы
CI = mean ± z × SEГде z = 1.96 для 95% ДИ — из нормального распределения.
3. Многие алгоритмы ML
Линейная регрессия предполагает normal ошибки. GMM, PCA — тоже.
Проверка на нормальность
Визуально
Histogram, Q-Q plot, density plot.
import matplotlib.pyplot as plt
import scipy.stats as stats
stats.probplot(data, dist='norm', plot=plt)Если Q-Q plot похож на прямую — близко к нормальному.
Статистические тесты
- Shapiro-Wilk — для малых выборок
- Anderson-Darling — более чувствительный
- Kolmogorov-Smirnov — классика
Но эти тесты на больших выборках почти всегда отвергают нормальность (из-за мелких отклонений).
Central Limit Theorem (ЦПТ)
Главная причина популярности нормального: сумма большого количества случайных величин стремится к нормальному распределению.
Поэтому:
- Среднее выборки — нормально при достаточной N
- Суммы — тоже
- Многие биомедицинские показатели — тоже
Для A/B-тестов CR — дискретный, но при N > 30 биномиальное приближается к нормальному.
Работа с НЕ-нормальным
Если данные не нормальные:
1. Log-трансформация
y_log = np.log1p(y)Часто превращает скошенные (чек, время) в нормальное.
2. Box-Cox
from scipy.stats import boxcox
y_transformed, lam = boxcox(y)3. Непараметрические тесты
Mann-Whitney U вместо t-test.
4. Bootstrap
Работает без предположений о распределении.
Частые ошибки
1. Считать всё нормальным
Реальные данные часто не нормальные (доход, время, LTV).
2. Игнорировать normality test
Прогонять t-test на скошенных данных → неверные p-values.
3. Применять правило 68-95-99.7 к не-нормальному
«Мой чек 1800 — это 4σ, выброс!» А на самом деле чек — lognormal, 1800 вполне нормален.
4. Путать σ и SE
- σ — разброс данных
- SE = σ / sqrt(n) — разброс оценки среднего
Связанные темы
- Нормальное распределение
- Дисперсия vs SD
- Центральная предельная теорема
- Биномиальное распределение
- Доверительный интервал простыми словами
FAQ
Все ли данные распределены нормально?
Нет. Рост, IQ — да. Доход, LTV, время — нет.
Как проверить?
Q-Q plot визуально. Shapiro-Wilk / Anderson-Darling статистически.
Что делать с ненормальными?
Log-трансформация, Box-Cox, bootstrap, непараметрические тесты.
68-95-99.7 — только для нормального?
Да. Для других распределений — другие проценты.
Тренируйте статистику — откройте тренажёр с 1500+ вопросами для собесов.