Меры центра: среднее, медиана, мода

Три способа ответить на вопрос «какое значение типично» — и каждый подходит для своей ситуации.

Мера центра — одно число, представляющее «середину» набора данных. Главные три: среднее арифметическое, медиана и мода.

Среднее арифметическое

Самая известная мера: сложить все значения и поделить на их количество. Формула простыми словами: сумма всех чисел, делённая на сколько их.

from statistics import mean

data = [10, 20, 30, 40, 50]
print("Сумма:", sum(data))
print("Количество:", len(data))
print("Среднее вручную:", sum(data) / len(data))
print("Среднее через statistics:", mean(data))

Вывод:

Сумма: 150
Количество: 5
Среднее вручную: 30.0
Среднее через statistics: 30

Среднее учитывает каждое значение, поэтому оно чувствительно: один огромный выброс заметно сдвигает его. В этом и сила (использует все данные), и слабость (легко искажается аномалиями).

Медиана — серединное значение

Медиана — это значение, которое стоит ровно посередине, если выстроить данные по возрастанию. Половина чисел меньше неё, половина больше. Если элементов чётное число, берут среднее двух центральных.

from statistics import median

print("Нечётное число элементов:")
print(median([1, 2, 3, 4, 5]))          # центральный — 3

print("Чётное число элементов:")
print(median([1, 2, 3, 4]))             # среднее 2 и 3

Вывод:

Нечётное число элементов:
3
Чётное число элементов:
2.5

Медиана смотрит только на позицию, а не на величину значений, поэтому она устойчива к выбросам. Вот почему доходы и цены на жильё описывают медианой, а не средним.

Среднее против медианы: дуэль с выбросом

Добавим к скромным зарплатам одного миллиардера и посмотрим, что станет с обеими мерами.

from statistics import mean, median

salaries = [40, 45, 50, 55, 60]
print("Без выброса -> среднее:", mean(salaries), "медиана:", median(salaries))

salaries_out = [40, 45, 50, 55, 60, 5000]   # пришёл топ-менеджер
print("С выбросом  -> среднее:", mean(salaries_out), "медиана:", median(salaries_out))

Вывод:

Без выброса -> среднее: 50 медиана: 50
С выбросом  -> среднее: 875 медиана: 52.5

Один выброс взвинтил среднее с 50 до 875 — оно перестало описывать типичного сотрудника. А медиана сдвинулась всего до 52.5 и осталась честной. Правило: есть выбросы или скошенное распределение — берите медиану.

Мода — самое частое значение

Мода — значение, которое встречается чаще остальных. Это единственная мера центра, которая работает с категориями: «самый популярный товар», «самый частый цвет». Для числовых данных мода тоже бывает полезна, но реже.

from statistics import mode, multimode

sizes = ["M", "L", "M", "S", "M", "L"]
print("Мода размеров:", mode(sizes))

# Если несколько одинаково частых значений — multimode вернёт все
votes = [1, 1, 2, 2, 3]
print("Все моды:", multimode(votes))

Вывод:

Мода размеров: M
Все моды: [1, 2]

Обратите внимание: mode вернёт первое из самых частых значений, а multimode — список всех. Если у данных две вершины (бимодальность), это важный сигнал: возможно, перед вами смесь двух разных групп.

Что выбрать: шпаргалка

СитуацияМера центра
Симметричные данные без выбросовсреднее
Есть выбросы / скошенность (доходы, цены)медиана
Категориальные данныемода

Итог

  • Среднее использует все значения, но чувствительно к выбросам.
  • Медиана — серединное значение, устойчива к выбросам и скошенности.
  • Мода — самое частое значение, единственная мера для категорий.
  • Большой разрыв между средним и медианой — признак выбросов или скошенного распределения.
Проверьте себя
1. Какая мера центра наиболее устойчива к выбросам?
AСреднее арифметическое
BМедиана
CМода
DВсе одинаково устойчивы
2. Для данных о доходах населения (есть очень богатые) что лучше использовать?
AСреднее, потому что оно учитывает всех
BМедиану, потому что доходы скошены и есть выбросы
CМоду, потому что доход — категория
DЛюбую — результат будет одинаков
3. Какая мера центра подходит для категориальных данных (например, размер одежды)?
AСреднее
BМедиана
CМода
DСтандартное отклонение
4. О чём говорит большой разрыв между средним и медианой?
AОб ошибке в вычислениях
BО том, что данные симметричны
CО выбросах или скошенности распределения
DО том, что выборка слишком мала
Поддержать проект