Дисперсия vs стандартное отклонение: разница
Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.
Короткий ответ
- Дисперсия (variance, σ² или s²) — средний квадрат отклонений от среднего
- Стандартное отклонение (SD, σ или s) — квадратный корень из дисперсии
- SD в тех же единицах, что и данные. Дисперсия — в квадратных единицах.
Формулы (для выборки):
variance = Σ(xᵢ − mean)² / (n − 1)
sd = sqrt(variance)Простой пример
Зарплаты 5 сотрудников: 50, 60, 70, 80, 90 тыс. ₽.
mean = 70
отклонения: -20, -10, 0, 10, 20
квадраты: 400, 100, 0, 100, 400
сумма: 1000
variance: 1000 / (5-1) = 250 (тыс. ₽²)
sd: sqrt(250) ≈ 15.8 (тыс. ₽)SD = 15.8 тыс. ₽ — в тех же единицах, что зарплата. Можно сказать: «зарплата отклоняется от среднего в среднем на 15.8 тыс. ₽».
Variance = 250 — в «тысячах рублей в квадрате». Физически сложно интерпретировать.
Когда использовать дисперсию
- Статистика на нижнем уровне: формулы A/B-тестов, ANOVA, регрессии — все работают с дисперсией
- Сложение независимых случайных величин: Var(X + Y) = Var(X) + Var(Y)
- Теория вероятностей: Var(aX) = a² Var(X)
- Когда важна математическая корректность (тесты, доверительные интервалы)
Когда использовать SD
- Описательная статистика: «в среднем зарплаты колеблются на ±16 тыс.»
- Визуализация: error bars на графиках
- Сравнение с mean: coefficient of variation = SD / mean
- Бизнес-отчёты: понятнее нетехническим стейкхолдерам
- Правило 68-95-99.7: в нормальном распределении 68% данных лежат в mean ± 1 SD
Связь через формулу
SD = sqrt(variance)
variance = SD²Это одна и та же информация в разных единицах.
Правило 68-95-99.7
В нормальном распределении:
- 68% данных в mean ± 1 SD
- 95% в mean ± 2 SD (точнее 1.96)
- 99.7% в mean ± 3 SD
Пример: средний чек 1000 ₽, SD = 200.
- 68% чеков в [800; 1200]
- 95% в [600; 1400]
- Чек 1800 — это 4 SD от среднего, бывает в <0.01% случаев (возможно выброс).
Sample vs population
В формулах есть нюанс:
Population variance: Σ(x − μ)² / N
Sample variance: Σ(x − x̄)² / (n − 1) ← делим на (n-1), не на nПочему n-1? Это поправка Бесселя. Делает оценку несмещённой (unbiased estimator).
В Python:
numpy.std(x)→ делит на n (population)numpy.std(x, ddof=1)→ делит на n-1 (sample)pandas .std()→ делит на n-1 (sample) по умолчанию
На собесе: если ddof не упомянули, обычно подразумевают sample (n-1).
Coefficient of variation (CV)
Относительный показатель разброса:
CV = SD / meanПолезен для сравнения разброса в разных масштабах:
- Чеки 100 ± 50 → CV = 0.5 (большой разброс)
- Чеки 10 000 ± 500 → CV = 0.05 (маленький относительный)
Без CV смотреть только SD обманчиво, если у метрик разные масштабы.
На A/B-тесте
В формулах A/B-тестов фигурирует именно variance (или SE = SD / sqrt(n)):
SE = SD / sqrt(n)
CI = mean ± 1.96 × SEMDE (minimum detectable effect) обратно зависит от SD:
MDE ∝ SD / sqrt(n)Чем выше SD — тем больше выборка нужна. Именно поэтому метрики с тяжёлым хвостом (чек, время на сайте) требуют огромных выборок.
В SQL
-- Postgres
SELECT
VARIANCE(salary) AS var_sample, -- sample variance
VAR_POP(salary) AS var_pop, -- population variance
STDDEV(salary) AS sd_sample, -- sample SD
STDDEV_POP(salary) AS sd_pop -- population SD
FROM employees;VARIANCE / STDDEV в большинстве СУБД — sample (n-1).
В Python
import numpy as np
import pandas as pd
x = [50, 60, 70, 80, 90]
np.var(x) # 200 (population, делит на n)
np.var(x, ddof=1) # 250 (sample, делит на n-1)
np.std(x) # ≈14.14 (population)
np.std(x, ddof=1) # ≈15.81 (sample)
pd.Series(x).var() # 250 (по умолчанию sample)
pd.Series(x).std() # ≈15.81Частые ошибки
Ошибка 1. Interpret variance напрямую
«Variance зарплаты — 250 тыс² рублей» — непонятно. Используйте SD.
Ошибка 2. Путать sample и population
В учебниках и практике разные формулы. Уточняйте, какой тип.
Ошибка 3. SD без mean
«SD = 100» — много это или мало? Зависит от mean. Используйте CV для сравнений.
Ошибка 4. Складывать SD
SD(X + Y) ≠ SD(X) + SD(Y) — неверно
Var(X + Y) = Var(X) + Var(Y) — верно (для независимых)
SD(X + Y) = sqrt(Var(X) + Var(Y))Связанные темы
- Медиана vs среднее
- Percentile в SQL — шпаргалка
- Что такое t-test простыми словами
- Размер выборки для A/B
FAQ
Что использовать для отчёта?
SD — понятнее бизнесу («плюс-минус столько-то»). Variance — для формул и статистики.
Sample или population?
В аналитике практически всегда sample (n-1), потому что работаем с выборкой.
Чем SD отличается от SE?
SD — разброс данных. SE (standard error) — разброс оценки (mean). SE = SD / sqrt(n).
Можно ли сравнивать SD у разных датасетов?
Только если масштаб одинаковый. Иначе — coefficient of variation.
Тренируйте статистику — откройте тренажёр с 1500+ вопросами для собесов.