Медиана простыми словами
Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.
Короткое объяснение
Медиана — значение, которое делит отсортированную выборку пополам. Половина значений выше, половина ниже.
Пример
Зарплаты 5 сотрудников: 50, 60, 70, 80, 500 тыс.
Сортируем (уже): 50, 60, 70, 80, 500.
- Медиана = 70 (среднее значение)
- Среднее (mean) = (50+60+70+80+500)/5 = 152
Медиана — более «типичная» зарплата. Mean искажён выбросом (500).
Для чётного количества
Зарплаты: 50, 60, 70, 80.
Сортируем. Середина — между 60 и 70:
Медиана = (60 + 70) / 2 = 65Medianа vs Среднее
| Mean | Median | |
|---|---|---|
| Определение | сумма / количество | середина сортированной выборки |
| Чувствительность к выбросам | высокая | низкая |
| Удобна для | нормальных данных | скошенных / с выбросами |
| Вычисление | быстрое | требует сортировки |
Когда использовать медиану
1. Скошенные данные
Зарплаты, чеки, LTV — распределения с тяжёлым хвостом. Медиана даёт «типичного» клиента.
2. С выбросами
Один кит не искажает медиану.
3. Для «типичного» пользователя
«Сколько типичный клиент тратит?» — медиана. «Сколько в среднем приходится на клиента?» — mean.
Когда использовать среднее
1. Симметричные / нормальные данные
Рост, IQ — mean и median близки.
2. Суммарные расчёты
Total revenue = mean × count. Через медиану так не работает.
3. Для статистических тестов
t-test, ANOVA — для mean.
В SQL
Postgres / Snowflake / Oracle
SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY salary) AS median
FROM employees;MySQL 8+
SELECT AVG(salary) AS median
FROM (
SELECT salary, ROW_NUMBER() OVER (ORDER BY salary) AS rn, COUNT(*) OVER () AS cnt
FROM employees
) t
WHERE rn IN (FLOOR((cnt + 1) / 2), CEIL((cnt + 1) / 2));BigQuery
SELECT PERCENTILE_CONT(salary, 0.5) OVER() AS median
FROM employees
LIMIT 1;В Python
import numpy as np
import pandas as pd
np.median([50, 60, 70, 80, 500]) # 70
pd.Series(data).median() # 70
# квантили
np.percentile(data, 50) # медиана
np.percentile(data, [25, 50, 75]) # квартилиВ A/B-тестах
Для метрик с тяжёлым хвостом (чек, время сессии):
# mean (обманчив)
control_mean = np.mean(control_amount) # 2000
test_mean = np.mean(test_amount) # 2050 → 2.5% рост
# median (реальнее)
control_median = np.median(control_amount) # 800
test_median = np.median(test_amount) # 810 → 1.25% ростРазница в mean может быть из-за нескольких китов, а не реального изменения для типичного пользователя.
Статистический тест для медиан: Mann-Whitney U или bootstrap.
Проблемы медианы
1. Нечувствительна к крайностям
Один клиент потратил миллион → не отражается на медиане. Если бизнес это важно — смотрите и mean, и P95.
2. Сложнее вычислять
Требует сортировки → O(n log n). На больших данных — дольше.
3. Не всегда однозначна
При чётном количестве — среднее двух центральных. Или берут любое из двух (Disc).
4. Нельзя складывать
Mean можно усреднять по группам через sum. Median — нельзя (не аддитивна).
На собесе
«Что такое медиана?» Середина отсортированной выборки.
«Когда использовать вместо среднего?» Для скошенных данных и при наличии выбросов.
«Что такое mean если median разные?» Данные скошены. Есть тяжёлый хвост.
«Как посчитать в SQL?» PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY col).
Связанные метрики
- Mean (среднее)
- Mode (мода) — самое частое значение
- Percentiles: P25 (Q1), P50 (median), P75 (Q3), P95, P99
- IQR = P75 − P25 (inter-quartile range)
Частые ошибки
1. Использовать mean везде
На скошенных данных mean обманывает. Типичная ошибка на собесах.
2. Median без контекста
«Медиана 70K» ок, но лучше показать распределение.
3. Складывать медианы
Median(A + B) ≠ Median(A) + Median(B). Не аддитивна.
4. Использовать median для A/B-теста с обычным t-test
Нужен Mann-Whitney U или bootstrap для сравнения медиан.
Связанные темы
FAQ
Mean или median?
Зависит от данных. Нормальные → mean. Скошенные → median.
Как посчитать в Excel?
=MEDIAN(range).
Обе метрики вместе?
Да, часто полезно. Mean показывает «в среднем», median — «типично».
Median чувствительна к количеству данных?
Меньше, чем mean. Но для очень маленьких выборок (n < 10) обе могут быть нестабильны.
Тренируйте статистику — откройте тренажёр с 1500+ вопросами для собесов.