Почему нельзя усреднять средние: пример со средним чеком

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

Графитовые весы с разным количеством оранжевых шаров — метафора веса групп

Два правильных числа могут дать неправильный итог

Представим условную сеть из двух магазинов. В первом за день сделали 10 покупок со средним чеком 1 000 рублей. Во втором — 90 покупок со средним чеком 200 рублей. Руководитель складывает два средних значения и делит пополам. Получается 600 рублей. Но это не средний чек всех покупателей сети.

Ошибка возникает не из-за сбоя загрузки и не из-за округления. Каждому магазину дали одинаковое влияние на итог, хотя число покупок различается в девять раз. Чтобы правильно объединить показатели, нужно сначала решить, что именно мы усредняем: магазины или отдельные покупки.

Посчитаем на исходных суммах

Первый магазин получил 10 000 рублей, второй — 18 000. Вместе это 28 000 рублей за 100 покупок. Общий средний чек составляет 280 рублей. Он ближе к 200, потому что большинство покупок совершили во втором магазине. Все числа в этом примере условные.

Результат 600 рублей тоже имеет смысл, но отвечает на другой вопрос: каково среднее значение двух показателей магазинов, если каждый магазин считать одной равноправной единицей. Называть его средним чеком покупок всей сети было бы неверно. Одинаковое слово «среднее» скрывает разные объекты сравнения.

Что означает вес группы

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

В справочнике NIST по взвешенному среднему описано, как учитывать вес каждого наблюдения. В нашем примере эту идею проще применить через общую выручку и общее число покупок: сложить исходные суммы, сложить количества и затем получить один показатель.

Когда обычное усреднение подходит

Если группы одинаковы по числу наблюдений и показатель посчитан по одинаковым правилам, среднее групповых средних совпадёт с общим средним. Например, у обоих магазинов было по 10 покупок. Тогда каждый действительно представляет одинаковую часть общего набора.

Другой случай — задача намеренно придаёт одинаковый вес подразделениям. Так можно сравнивать типичный показатель филиала, но название отчёта должно это объяснять. Нельзя незаметно переключаться между равным весом магазинов и равным весом покупок: пользователь получит разные ответы под одной подписью.

Какие данные сохранить для следующего отчёта

Одного готового среднего часто недостаточно. Вместе с ним полезно хранить исходную сумму, количество наблюдений, период и правила отбора. Если завтра попросят объединить неделю или несколько регионов, эти составляющие позволят пересчитать показатель, а не усреднять округлённые дневные значения.

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

Проверьте также пропущенные значения: в документации PostgreSQL об агрегатах среднее вычисляется по непустым значениям, а подсчёт всех строк и подсчёт заполненных значений различаются. Знаменатель должен соответствовать тем наблюдениям, по которым получена сумма.

Что спросить у автора расчёта

Уточните, какая единица стоит за одной записью, что считается покупкой и как учитываются возвраты. Проверьте, не смешаны ли разные валюты и периоды. Затем попросите показать общую сумму и количество событий, из которых получен итог. Такой разговор обычно полезнее спора о том, какой инструмент считает лучше.

Для проверки достаточно небольшого условного примера с заметно разными размерами групп. Если отчёт даёт каждому магазину одинаковый вес, это сразу станет видно. Исправлять нужно правило объединения и описание показателя, а затем уже проверять его реализацию во всех отчётах.

Читайте также

Что изучать дальше

Если хотите разобраться в работе с данными системно, посмотрите программу «Data Engineer для начинающих» в NovaData. Сравните темы и требования к подготовке со своими задачами: этот пример помогает сформулировать вопросы, с которыми можно прийти на обучение.

Data Engineer для начинающих
Курс
Доступ сразу
Data Engineer для начинающих

Освойте Data Engineering с нуля: научитесь собирать, хранить и обрабатывать данные. Практика на каждом этапе — опыт не нужен.

С нуля до junior
Теория и практика
Диплом по окончании
12 990
₽/мес
УЗНАТЬ ПОДРОБНЕЕ

Источники

Читайте также

Обучить команду или нанять специалиста по данным: как выбрать
47

Обучить команду или нанять специалиста по данным: как выбрать

Как руководителю определить, какие навыки развивать внутри команды, когда нужна новая роль и почему обучение и найм часто дополняют друг друга.
Вертикальное и горизонтальное масштабирование данных: в чём разница
46

Вертикальное и горизонтальное масштабирование данных: в чём разница

Когда системе добавляют мощность одного сервера, когда делят работу между несколькими и почему увеличение ресурсов само по себе не решает любую проблему.
Журнал изменений данных: как выяснить, кто и когда изменил набор
42

Журнал изменений данных: как выяснить, кто и когда изменил набор

Что можно узнать из журнала действий с данными, как он помогает разбирать ошибки и почему его записи не показывают всю историю сами по себе.

Занятия проходят
в Нова Дата СДО

Вебинары, практика и общение с преподавателем — в одном окне браузера.

Посмотреть интерфейс платформы
Календарь обучения в Нова Дата СДО
Курсы студента в Нова Дата СДО
Редактор кода для практики в Нова Дата СДО
Вебинары и расписание Ваши курсы Код в браузере
Нова Дата СДО — в реестре российского ПОРеестровая запись № 34931
Заявка отправлена
Отправим вам подборку курсов в течение 5 минут. С вами также свяжется наш специалист и даст карьерную консультацию.
Персональный промокод
На курс «Инженер по парсингу данных»
Введите код при оплате, чтобы применить скидку к программе.