Нормальное распределение и правило 68–95–99.7

Колоколообразная кривая — самое важное распределение в статистике. Понять её — значит понять половину статистического вывода.

Нормальное (гауссово) распределение — симметричное колоколообразное распределение, полностью задаваемое двумя числами: средним μ (центр) и стандартным отклонением σ (ширина).

Почему нормальное везде

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

Форма колокола

У нормального распределения:

  • оно симметрично относительно μ (среднее = медиане = моде);
  • большинство значений кучкуется около центра, хвосты быстро тают;
  • σ задаёт ширину: маленькое σ — узкий острый колокол, большое — широкий пологий.

Сгенерируем нормальные данные и убедимся, что среднее и медиана почти совпадают.

import random
from statistics import mean, median, stdev
random.seed(5)

# gauss(mu, sigma) даёт нормальную случайную величину
data = [random.gauss(100, 15) for _ in range(100000)]
print("Среднее:", round(mean(data), 2))
print("Медиана:", round(median(data), 2))
print("Стандартное отклонение:", round(stdev(data), 2))

Вывод:

Среднее: 99.98
Медиана: 99.96
Стандартное отклонение: 14.96

Мы задали μ = 100, σ = 15 — и выборка их аккуратно воспроизвела, а среднее с медианой почти совпали (признак симметрии).

Правило 68–95–99.7

Главная практическая формула про нормальное распределение. В пределах:

  • от среднего лежит ≈ 68% данных;
  • — ≈ 95%;
  • — ≈ 99.7%.

Проверим это прямо на нашей выборке: посчитаем долю значений в каждом интервале.

import random
from statistics import mean, stdev
random.seed(5)

data = [random.gauss(100, 15) for _ in range(100000)]
mu, sigma = mean(data), stdev(data)

for k in (1, 2, 3):
    lo, hi = mu - k * sigma, mu + k * sigma
    inside = sum(1 for x in data if lo <= x <= hi)
    print(f"В пределах {k} сигма: {inside / len(data) * 100:.1f}%")

Вывод:

В пределах 1 сигма: 68.3%
В пределах 2 сигма: 95.4%
В пределах 3 сигма: 99.7%

Точно как обещано: 68.3%, 95.4%, 99.7%. Это правило — мгновенный «детектор аномалий»: значение дальше 3σ от среднего бывает реже чем в 0.3% случаев, поэтому его стоит проверить.

Z-оценка: на сколько сигм отклонение

Z-оценка переводит любое значение в «число стандартных отклонений от среднего»: z = (x − μ) / σ. Она позволяет сравнивать величины из разных распределений на одном языке.

# Рост 190 см при среднем 175 и σ = 7
mu, sigma = 175, 7
x = 190
z = (x - mu) / sigma
print("Z-оценка роста 190:", round(z, 2))

# Балл теста 130 при среднем 100 и σ = 15
z2 = (130 - 100) / 15
print("Z-оценка балла 130:", round(z2, 2))

Вывод:

Z-оценка роста 190: 2.14
Z-оценка балла 130: 2.0

Рост 190 см отклоняется на 2.14σ, а балл 130 — на 2σ. Обе величины «примерно одинаково необычны», хотя измеряются в разных единицах — в этом и сила z-оценки. По правилу 68–95–99.7 оба значения попадают в редкие 5% хвостов.

Итог

  • Нормальное распределение — симметричный колокол, заданный μ (центр) и σ (ширина).
  • Правило 68–95–99.7: в 1σ/2σ/3σ от среднего лежит ≈68%/95%/99.7% данных.
  • Значение дальше 3σ крайне редко — повод заподозрить аномалию.
  • Z-оценка (x−μ)/σ выражает отклонение в сигмах и позволяет сравнивать разные шкалы.
Проверьте себя
1. Какими двумя параметрами полностью задаётся нормальное распределение?
AМинимумом и максимумом
BСредним μ и стандартным отклонением σ
CМедианой и модой
DРазмахом и IQR
2. Сколько примерно данных нормального распределения лежит в пределах 2σ от среднего?
A68%
B95%
C99.7%
D50%
3. Что показывает z-оценка значения?
AЕго абсолютную величину
BНа сколько стандартных отклонений оно отклоняется от среднего
CЕго вероятность
DЕго ранг в выборке
Поддержать проект