Мода простыми словами
Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.
Зачем знать моду
Мода — одна из трёх мер центральной тенденции (mean, median, mode). На собесе спрашивают про все три: «когда какая лучше?». Mean — для symmetric. Median — для скошенных. Mode — для категориальных и мulti-modal.
Чаще всего аналитик использует mean и median. Mode — менее популярна, но незаменима: «какой самый частый product в корзине», «самая часто выбираемая категория», «какое время заказа пиковое». Mean не скажет — усреднит.
В статье:
- Что такое мода
- Пример расчёта
- Mode vs mean vs median
- Bimodal distributions
- Когда mode нужна
- В SQL, Python, pandas
Короткое объяснение
Мода — самое часто встречающееся значение в выборке.
Пример
Чеки: 100, 200, 200, 300, 200, 400.
- Mean = 233
- Median = 200
- Mode = 200 (встречается 3 раза)
Mode vs Mean vs Median
- Mean — среднее (чувствителен к выбросам)
- Median — середина сортированной выборки (устойчив к выбросам)
- Mode — самое частое (работает для категориальных)
Для нормального распределения все три равны.
Для скошенного — отличаются. В зарплатах обычно mean > median > mode.
Когда использовать моду
Категориальные данные
Mean и median не работают для строк. Mode — работает.
Пример: топ-категория товаров — mode.
Discrete data
Сколько детей у семей в выборке: 2 встречается чаще всего → mode = 2.
Bimodal / multi-modal
Два «горба» в распределении — две моды.
Пример: рост population. Мужчины 175см, женщины 165см — две моды.
Mean не покажет разделения.
В SQL
Нет встроенной функции MODE — ищем через GROUP BY:
SELECT
category,
COUNT(*) AS cnt
FROM orders
GROUP BY category
ORDER BY cnt DESC
LIMIT 1;Или через MODE() WITHIN GROUP (Postgres):
SELECT MODE() WITHIN GROUP (ORDER BY category) AS most_common
FROM orders;В Python
# одна мода
df['category'].mode() # Series, может вернуть несколько если multi-modal
# через scipy
from scipy import stats
stats.mode(df['category'])Проблемы моды
1. Многозначность
Если несколько значений встречаются одинаково часто — несколько мод.
2. Малая выборка
На 10 строках mode случаен.
3. Continuous data
Для continuous каждое значение уникально → mode бесполезна. Binning сначала.
Bi-modal distribution
График с двумя пиками:
/\ /\
/ \ / \
/ \ / \
/ \ / \
\/Mean — где-то посередине (плохо). Mode — показывает оба пика.
Причина: смешение двух групп. Нужно segmentize.
В продуктовой аналитике
Peak hours
Mode по часам заказа:
SELECT EXTRACT(HOUR FROM created_at) AS hour, COUNT(*)
FROM orders
GROUP BY 1
ORDER BY 2 DESC
LIMIT 1;«Пиковый час заказов — 19:00».
Top-1 category
SELECT category, COUNT(*)
FROM orders
GROUP BY 1
ORDER BY 2 DESC
LIMIT 1;Typical basket size
Если basket_size = 1 встречается чаще всего → mode = 1.
На собесе
«Что такое мода?» Самое частое значение.
«Когда использовать?» Для категориальных / дискретных / multi-modal.
«Mode vs mean?» Mean — для числовых. Mode — для frequent values.
«Multi-modal distribution?» Несколько пиков → несколько мод → есть разные subgroups.
Частые ошибки
1. Mode на continuous
Каждая точка уникальна → каждая «мода». Бесполезно.
2. Mean как default
Для категорий mean не работает. Используйте mode.
3. Mode для центра
Mode не всегда в «центре». Может быть на краю.
Связанные темы
FAQ
Mode == mean?
В normal distribution — да. В скошенных — нет.
Несколько значений с max count?
Называется multi-modal, возвращаете все.
Для цветного массива?
Да, mode работает для строк / категорий.
Mode и correlation?
Нет прямой связи. Mode — descriptive statistic.
Тренируйте статистику — откройте тренажёр с 1500+ вопросами для собесов.